test(db): drop a leftover test database before recreating it
A server handed in through JELLYFIN_TEST_POSTGRES outlives the run, so a second run finds the databases the first one created. Also name the failures in Jellyfin.Database.Tests.PostgreSQL the CI step steps around.
This commit is contained in:
+2
-1
@@ -46,7 +46,8 @@ steps:
|
|||||||
# the ReadWriteOnce workspace volume into service pods and schedules them on another node.
|
# the ReadWriteOnce workspace volume into service pods and schedules them on another node.
|
||||||
# Its data directory lives on the step's ephemeral storage, not on the workspace volume.
|
# Its data directory lives on the step's ephemeral storage, not on the workspace volume.
|
||||||
# Scoped to Jellyfin.Server.Tests: the three classes in Jellyfin.Database.Tests.PostgreSQL still
|
# Scoped to Jellyfin.Server.Tests: the three classes in Jellyfin.Database.Tests.PostgreSQL still
|
||||||
# start their own container, and two of their tests fail on main for unrelated reasons.
|
# start their own container, and PostgreSqlProviderTests already fails on main - on an EF 10
|
||||||
|
# scalar query and on its own data - which a third test in the class then inherits.
|
||||||
- name: postgres-migration-chain
|
- name: postgres-migration-chain
|
||||||
image: mcr.microsoft.com/dotnet/sdk:10.0
|
image: mcr.microsoft.com/dotnet/sdk:10.0
|
||||||
depends_on:
|
depends_on:
|
||||||
|
|||||||
@@ -65,6 +65,12 @@ public sealed class PostgreSqlTestServer : IAsyncDisposable
|
|||||||
public async Task<string> CreateDatabaseAsync(string name, CancellationToken cancellationToken)
|
public async Task<string> CreateDatabaseAsync(string name, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
await using var adminDataSource = new NpgsqlDataSourceBuilder(ConnectionString).Build();
|
await using var adminDataSource = new NpgsqlDataSourceBuilder(ConnectionString).Build();
|
||||||
|
|
||||||
|
// A server handed in through the environment outlives the run, so a second run finds the
|
||||||
|
// databases the first one left behind.
|
||||||
|
await using var drop = adminDataSource.CreateCommand($"DROP DATABASE IF EXISTS {name}");
|
||||||
|
await drop.ExecuteNonQueryAsync(cancellationToken).ConfigureAwait(false);
|
||||||
|
|
||||||
await using var command = adminDataSource.CreateCommand($"CREATE DATABASE {name}");
|
await using var command = adminDataSource.CreateCommand($"CREATE DATABASE {name}");
|
||||||
await command.ExecuteNonQueryAsync(cancellationToken).ConfigureAwait(false);
|
await command.ExecuteNonQueryAsync(cancellationToken).ConfigureAwait(false);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user