Files
jsmr/JSMR.Tests/Fixtures/MariaDbContainerFixture.cs
Brian Bicknell abd5a81e3e
Some checks failed
ci / build-test (push) Failing after 8m39s
Improved performance of integration tests.
2025-11-02 13:56:34 -05:00

42 lines
1.3 KiB
C#

using DotNet.Testcontainers.Builders;
using JSMR.Tests.Fixtures;
using JSMR.Tests.Ingestion;
using Testcontainers.MariaDb;
[assembly: AssemblyFixture(typeof(MariaDbContainerFixture))]
namespace JSMR.Tests.Fixtures;
public sealed class MariaDbContainerFixture : IAsyncLifetime
{
const int MajorVersion = 10;
const int MinorVersion = 11;
const int Build = 6;
private MariaDbContainer _container = default!;
public string RootConnectionString { get; private set; } = default!;
public string TemplateDbName { get; } = "jsmr_template";
public async ValueTask InitializeAsync()
{
_container = new MariaDbBuilder()
.WithImage($"mariadb:{MajorVersion}.{MinorVersion}.{Build}")
.WithEnvironment("MARIADB_ROOT_PASSWORD", "rootpw")
.WithUsername("root")
.WithPassword("rootpw")
.WithWaitStrategy(Wait.ForUnixContainer().UntilInternalTcpPortIsAvailable(3306))
.Build();
await _container.StartAsync();
RootConnectionString = _container.GetConnectionString();
// Build the template ONCE with EF + your existing seed
await MariaDbClone.CreateTemplateAsync(
RootConnectionString,
TemplateDbName);
}
public async ValueTask DisposeAsync() => await _container.DisposeAsync();
}