Assert.Equal() Failure: Values differ Expected: OK Actual: Forbidden at WorkClub.Tests.Integration.Members.MemberEndpointsTests.MemberAutoSync_NewUser_CreatesMembeRecordFromJwt() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Members/MemberEndpointsTests.cs:line 234 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: OK Actual: Forbidden at WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsMe_ReturnsOnlyUserClubs() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Clubs/ClubEndpointsTests.cs:line 120 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: OK Actual: BadRequest at WorkClub.Tests.Integration.SmokeTests.HealthCheck_ReturnsOk() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/SmokeTests.cs:line 16 --- End of stack trace from previous location --- Npgsql.PostgresException : 28P01: password authentication failed for user "app_admin" at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) in /_/Dapper/SqlMapper.Async.cs:line 661 at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs:line 32 at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs:line 33 Npgsql.PostgresException : 42703: column "id" of relation "clubs" does not exist POSITION: 33 at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken) at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) in /_/Dapper/SqlMapper.Async.cs:line 662 at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test6_InterceptorVerification_SetLocalExecuted() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs:line 330 at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test6_InterceptorVerification_SetLocalExecuted() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs:line 363 --- End of stack trace from previous location --- Npgsql.PostgresException : 28P01: password authentication failed for user "app_admin" at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) in /_/Dapper/SqlMapper.Async.cs:line 661 at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs:line 32 at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs:line 33 Assert.Equal() Failure: Values differ Expected: OK Actual: Forbidden at WorkClub.Tests.Integration.Tasks.TaskCrudTests.UpdateTask_ValidTransition_UpdatesTask() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Tasks/TaskCrudTests.cs:line 288 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: OK Actual: Forbidden at WorkClub.Tests.Integration.Shifts.ShiftCrudTests.UpdateShift_AsManager_UpdatesShift() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Shifts/ShiftCrudTests.cs:line 251 --- End of stack trace from previous location --- Npgsql.PostgresException : 28P01: password authentication failed for user "app" at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected) at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.GetAppliedMigrationsAsync(CancellationToken cancellationToken) at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.Internal.NpgsqlHistoryRepository.GetAppliedMigrationsAsync(CancellationToken cancellationToken) at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.Internal.NpgsqlMigrator.MigrateAsync(String targetMigration, CancellationToken cancellationToken) at WorkClub.Infrastructure.Seed.SeedDataService.SeedAsync() in /Users/mastermito/Dev/opencode/backend/WorkClub.Infrastructure/Seed/SeedDataService.cs:line 25 at Program.<Main>$(String[] args) in /Users/mastermito/Dev/opencode/backend/WorkClub.Api/Program.cs:line 82 at Program.<Main>(String[] args) at InvokeStub_Program.<Main>(Object, Span`1) at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Testing.DeferredHostBuilder.DeferredHost.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Start(IHost host) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateHost(IHostBuilder builder) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.ConfigureHostBuilder(IHostBuilder hostBuilder) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.StartServer() at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(DelegatingHandler[] handlers) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(Uri baseAddress, DelegatingHandler[] handlers) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient(WebApplicationFactoryClientOptions options) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient() at WorkClub.Tests.Integration.Auth.AuthorizationTests.AdminCanAccessAdminEndpoints_Returns200() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Auth/AuthorizationTests.cs:line 25 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: Conflict Actual: Forbidden at WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_WhenFull_ReturnsConflict() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Shifts/ShiftCrudTests.cs:line 442 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: OK Actual: Forbidden at WorkClub.Tests.Integration.Shifts.ShiftCrudTests.GetShift_ById_ReturnsShiftWithSignupList() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Shifts/ShiftCrudTests.cs:line 198 --- End of stack trace from previous location --- Should have at least 5 tenant_isolation policies at WorkClub.Tests.Integration.Data.MigrationTests.Migration_CreatesTenantIsolationPolicy() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/MigrationTests.cs:line 136 at WorkClub.Tests.Integration.Data.MigrationTests.Migration_CreatesTenantIsolationPolicy() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/MigrationTests.cs:line 136 at WorkClub.Tests.Integration.Data.MigrationTests.Migration_CreatesTenantIsolationPolicy() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/MigrationTests.cs:line 136 --- End of stack trace from previous location --- Npgsql.PostgresException : 42703: column "id" of relation "clubs" does not exist POSITION: 33 at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken) at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) in /_/Dapper/SqlMapper.Async.cs:line 662 at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test2_NoContext_NoData_RlsBlocksEverything() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs:line 121 at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test2_NoContext_NoData_RlsBlocksEverything() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs:line 148 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: OK Actual: Forbidden at WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsCurrent_DifferentTenant_ReturnsDifferentClub() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Clubs/ClubEndpointsTests.cs:line 188 --- End of stack trace from previous location --- Npgsql.PostgresException : 28P01: password authentication failed for user "app" at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected) at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.GetAppliedMigrationsAsync(CancellationToken cancellationToken) at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.Internal.NpgsqlHistoryRepository.GetAppliedMigrationsAsync(CancellationToken cancellationToken) at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.Internal.NpgsqlMigrator.MigrateAsync(String targetMigration, CancellationToken cancellationToken) at WorkClub.Infrastructure.Seed.SeedDataService.SeedAsync() in /Users/mastermito/Dev/opencode/backend/WorkClub.Infrastructure/Seed/SeedDataService.cs:line 25 at Program.<Main>$(String[] args) in /Users/mastermito/Dev/opencode/backend/WorkClub.Api/Program.cs:line 82 at Program.<Main>(String[] args) at InvokeStub_Program.<Main>(Object, Span`1) at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Testing.DeferredHostBuilder.DeferredHost.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Start(IHost host) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateHost(IHostBuilder builder) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.ConfigureHostBuilder(IHostBuilder hostBuilder) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.StartServer() at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(DelegatingHandler[] handlers) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(Uri baseAddress, DelegatingHandler[] handlers) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient(WebApplicationFactoryClientOptions options) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient() at WorkClub.Tests.Integration.Auth.AuthorizationTests.UnauthenticatedUser_Returns401() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Auth/AuthorizationTests.cs:line 74 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: OK Actual: Forbidden at WorkClub.Tests.Integration.Tasks.TaskCrudTests.UpdateTask_ConcurrentModification_ReturnsConflict() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Tasks/TaskCrudTests.cs:line 371 --- End of stack trace from previous location --- Npgsql.PostgresException : 28P01: password authentication failed for user "app_admin" at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) in /_/Dapper/SqlMapper.Async.cs:line 661 at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs:line 32 at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs:line 33 Assert.Equal() Failure: Values differ Expected: NoContent Actual: Forbidden at WorkClub.Tests.Integration.Tasks.TaskCrudTests.DeleteTask_AsAdmin_DeletesTask() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Tasks/TaskCrudTests.cs:line 427 --- End of stack trace from previous location --- Npgsql.PostgresException : 28P01: password authentication failed for user "app_admin" at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) in /_/Dapper/SqlMapper.Async.cs:line 661 at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs:line 32 at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs:line 33 Assert.Equal() Failure: Values differ Expected: OK Actual: Forbidden at WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsMe_ForManagerUser_ReturnsOnlyOneClub() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Clubs/ClubEndpointsTests.cs:line 143 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: Unauthorized Actual: BadRequest at WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsMe_Unauthenticated_ReturnsUnauthorized() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Clubs/ClubEndpointsTests.cs:line 219 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: OK Actual: Forbidden at WorkClub.Tests.Integration.Tasks.TaskCrudTests.ListTasks_ReturnsOnlyTenantTasks() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Tasks/TaskCrudTests.cs:line 141 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: OK Actual: Forbidden at WorkClub.Tests.Integration.Tasks.TaskCrudTests.ListTasks_FilterByStatus_ReturnsFilteredResults() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Tasks/TaskCrudTests.cs:line 195 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: Created Actual: Forbidden at WorkClub.Tests.Integration.Tasks.TaskCrudTests.CreateTask_AsManager_ReturnsCreatedWithOpenStatus() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Tasks/TaskCrudTests.cs:line 50 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: OK Actual: Forbidden at WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMemberById_ExistingMember_ReturnsMemberDetail() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Members/MemberEndpointsTests.cs:line 175 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: OK Actual: Forbidden at WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsCurrent_ReturnsCurrentTenantClub() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Clubs/ClubEndpointsTests.cs:line 165 --- End of stack trace from previous location --- Npgsql.PostgresException : 28P01: password authentication failed for user "app_admin" at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) in /_/Dapper/SqlMapper.Async.cs:line 661 at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs:line 32 at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs:line 33 Assert.Equal() Failure: Values differ Expected: OK Actual: Forbidden at WorkClub.Tests.Integration.Shifts.ShiftCrudTests.CancelSignup_BeforeShift_ReturnsOk() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Shifts/ShiftCrudTests.cs:line 583 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: NotFound Actual: Forbidden at WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMemberById_WrongTenant_ReturnsNotFound() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Members/MemberEndpointsTests.cs:line 200 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: OK Actual: Forbidden at WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMembers_DifferentTenant_ReturnsDifferentMembers() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Members/MemberEndpointsTests.cs:line 138 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: UnprocessableEntity Actual: Forbidden at WorkClub.Tests.Integration.Tasks.TaskCrudTests.UpdateTask_InvalidTransition_ReturnsUnprocessableEntity() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Tasks/TaskCrudTests.cs:line 335 --- End of stack trace from previous location --- Npgsql.PostgresException : 42703: column "id" of relation "clubs" does not exist POSITION: 33 at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken) at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) in /_/Dapper/SqlMapper.Async.cs:line 662 at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test3_InsertProtection_CrossTenantInsertBlocked() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs:line 161 at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test3_InsertProtection_CrossTenantInsertBlocked() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs:line 189 --- End of stack trace from previous location --- Npgsql.PostgresException : 28P01: password authentication failed for user "app_admin" at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) in /_/Dapper/SqlMapper.Async.cs:line 661 at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs:line 32 at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs:line 33 Assert.Equal() Failure: Values differ Expected: OK Actual: Forbidden at WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMembers_ReturnsOnlyCurrentTenantMembers() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Members/MemberEndpointsTests.cs:line 119 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: Conflict Actual: Forbidden at WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_Duplicate_ReturnsConflict() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Shifts/ShiftCrudTests.cs:line 533 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: UnprocessableEntity Actual: Forbidden at WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_ForPastShift_ReturnsUnprocessableEntity() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Shifts/ShiftCrudTests.cs:line 482 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: Created Actual: Forbidden at WorkClub.Tests.Integration.Shifts.ShiftCrudTests.CreateShift_AsManager_ReturnsCreated() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Shifts/ShiftCrudTests.cs:line 53 --- End of stack trace from previous location --- RLS should be enabled on clubs at WorkClub.Tests.Integration.Data.MigrationTests.Migration_EnablesRowLevelSecurity() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/MigrationTests.cs:line 111 at WorkClub.Tests.Integration.Data.MigrationTests.Migration_EnablesRowLevelSecurity() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/MigrationTests.cs:line 109 at WorkClub.Tests.Integration.Data.MigrationTests.Migration_EnablesRowLevelSecurity() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/MigrationTests.cs:line 109 --- End of stack trace from previous location --- Assert.Contains() Failure: Item not found in collection Collection: [Forbidden, Forbidden] Not found: OK at WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_ConcurrentLastSlot_HandlesRaceCondition() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Shifts/ShiftCrudTests.cs:line 650 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: OK Actual: Forbidden at WorkClub.Tests.Integration.Tasks.TaskCrudTests.GetTask_ById_ReturnsTaskDetail() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Tasks/TaskCrudTests.cs:line 239 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: OK Actual: Forbidden at WorkClub.Tests.Integration.Shifts.ShiftCrudTests.ListShifts_WithDateFilter_ReturnsFilteredShifts() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Shifts/ShiftCrudTests.cs:line 141 --- End of stack trace from previous location --- Npgsql.PostgresException : 28P01: password authentication failed for user "app" at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected) at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.GetAppliedMigrationsAsync(CancellationToken cancellationToken) at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.Internal.NpgsqlHistoryRepository.GetAppliedMigrationsAsync(CancellationToken cancellationToken) at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.Internal.NpgsqlMigrator.MigrateAsync(String targetMigration, CancellationToken cancellationToken) at WorkClub.Infrastructure.Seed.SeedDataService.SeedAsync() in /Users/mastermito/Dev/opencode/backend/WorkClub.Infrastructure/Seed/SeedDataService.cs:line 25 at Program.<Main>$(String[] args) in /Users/mastermito/Dev/opencode/backend/WorkClub.Api/Program.cs:line 82 at Program.<Main>(String[] args) at InvokeStub_Program.<Main>(Object, Span`1) at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Testing.DeferredHostBuilder.DeferredHost.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Start(IHost host) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateHost(IHostBuilder builder) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.ConfigureHostBuilder(IHostBuilder hostBuilder) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.StartServer() at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(DelegatingHandler[] handlers) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(Uri baseAddress, DelegatingHandler[] handlers) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient(WebApplicationFactoryClientOptions options) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient() at WorkClub.Tests.Integration.Auth.AuthorizationTests.MemberCannotAccessAdminEndpoints_Returns403() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Auth/AuthorizationTests.cs:line 41 --- End of stack trace from previous location --- Npgsql.PostgresException : 42703: column "id" of relation "clubs" does not exist POSITION: 33 at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken) at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) in /_/Dapper/SqlMapper.Async.cs:line 662 at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test5_CrossTenantHeaderSpoof_MiddlewareBlocks() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs:line 299 at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test5_CrossTenantHeaderSpoof_MiddlewareBlocks() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs:line 317 --- End of stack trace from previous location --- Npgsql.PostgresException : 28P01: password authentication failed for user "app" at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected) at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.GetAppliedMigrationsAsync(CancellationToken cancellationToken) at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.Internal.NpgsqlHistoryRepository.GetAppliedMigrationsAsync(CancellationToken cancellationToken) at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.Internal.NpgsqlMigrator.MigrateAsync(String targetMigration, CancellationToken cancellationToken) at WorkClub.Infrastructure.Seed.SeedDataService.SeedAsync() in /Users/mastermito/Dev/opencode/backend/WorkClub.Infrastructure/Seed/SeedDataService.cs:line 25 at Program.<Main>$(String[] args) in /Users/mastermito/Dev/opencode/backend/WorkClub.Api/Program.cs:line 82 at Program.<Main>(String[] args) at InvokeStub_Program.<Main>(Object, Span`1) at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Testing.DeferredHostBuilder.DeferredHost.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Start(IHost host) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateHost(IHostBuilder builder) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.ConfigureHostBuilder(IHostBuilder hostBuilder) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.StartServer() at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(DelegatingHandler[] handlers) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(Uri baseAddress, DelegatingHandler[] handlers) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient(WebApplicationFactoryClientOptions options) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient() at WorkClub.Tests.Integration.Auth.AuthorizationTests.HealthEndpointsArePublic_NoAuthRequired() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Auth/AuthorizationTests.cs:line 88 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: OK Actual: Forbidden at WorkClub.Tests.Integration.Middleware.TenantValidationTests.Request_WithValidTenantId_Returns200() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Middleware/TenantValidationTests.cs:line 45 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: OK Actual: Forbidden at WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_WithCapacity_ReturnsOk() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Shifts/ShiftCrudTests.cs:line 384 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: OK Actual: Forbidden at WorkClub.Tests.Integration.Members.MemberEndpointsTests.MemberAutoSync_ExistingUser_DoesNotDuplicate() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Members/MemberEndpointsTests.cs:line 260 --- End of stack trace from previous location --- Npgsql.PostgresException : 28P01: password authentication failed for user "app" at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected) at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.GetAppliedMigrationsAsync(CancellationToken cancellationToken) at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.Internal.NpgsqlHistoryRepository.GetAppliedMigrationsAsync(CancellationToken cancellationToken) at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.Internal.NpgsqlMigrator.MigrateAsync(String targetMigration, CancellationToken cancellationToken) at WorkClub.Infrastructure.Seed.SeedDataService.SeedAsync() in /Users/mastermito/Dev/opencode/backend/WorkClub.Infrastructure/Seed/SeedDataService.cs:line 25 at Program.<Main>$(String[] args) in /Users/mastermito/Dev/opencode/backend/WorkClub.Api/Program.cs:line 82 at Program.<Main>(String[] args) at InvokeStub_Program.<Main>(Object, Span`1) at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Testing.DeferredHostBuilder.DeferredHost.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Start(IHost host) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateHost(IHostBuilder builder) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.ConfigureHostBuilder(IHostBuilder hostBuilder) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.StartServer() at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(DelegatingHandler[] handlers) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(Uri baseAddress, DelegatingHandler[] handlers) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient(WebApplicationFactoryClientOptions options) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient() at WorkClub.Tests.Integration.Auth.AuthorizationTests.ViewerCanOnlyRead_PostReturns403() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Auth/AuthorizationTests.cs:line 57 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: OK Actual: Forbidden at WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMembersMe_ReturnsCurrentUserMembership() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Members/MemberEndpointsTests.cs:line 214 --- End of stack trace from previous location --- Assert.Equal() Failure: Values differ Expected: NoContent Actual: Forbidden at WorkClub.Tests.Integration.Shifts.ShiftCrudTests.DeleteShift_AsAdmin_DeletesShift() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Shifts/ShiftCrudTests.cs:line 296 --- End of stack trace from previous location --- Npgsql.PostgresException : 42703: column "id" of relation "clubs" does not exist POSITION: 33 at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken) at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) in /_/Dapper/SqlMapper.Async.cs:line 662 at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test4_ConcurrentRequests_ConnectionPoolSafety() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs:line 202 at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test4_ConcurrentRequests_ConnectionPoolSafety() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs:line 287 --- End of stack trace from previous location --- Npgsql.PostgresException : 42703: column "id" of relation "clubs" does not exist POSITION: 33 at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken) at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) in /_/Dapper/SqlMapper.Async.cs:line 662 at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test1_CompleteIsolation_TenantsSeeOnlyTheirData() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs:line 45 at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test1_CompleteIsolation_TenantsSeeOnlyTheirData() in /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs:line 108 --- End of stack trace from previous location --- [xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v3.1.4+50e68bbb8b (64-bit .NET 10.0.0) [xUnit.net 00:00:00.03] Discovering: WorkClub.Tests.Integration [xUnit.net 00:00:00.05] Discovered: WorkClub.Tests.Integration [xUnit.net 00:00:00.06] Starting: WorkClub.Tests.Integration [testcontainers.org 00:00:00.06] Connected to Docker: Host: unix:///var/run/docker.sock Server Version: 29.2.1 Kernel Version: 6.12.72-linuxkit API Version: 1.53 Operating System: Docker Desktop Total Memory: 7.65 GB info: Microsoft.Hosting.Lifetime[0] Application started. Press Ctrl+C to shut down. info: Microsoft.Hosting.Lifetime[0] Hosting environment: Testing info: Microsoft.Hosting.Lifetime[0] Content root path: /Users/mastermito/Dev/opencode/backend/WorkClub.Api warn: Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware[3] Failed to determine the https port for redirect. info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/test info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/test info: WorkClub.Tests.Integration.Middleware.TestAuthHandler[12] AuthenticationScheme: TestScheme was challenged. info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/test info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/test [xUnit.net 00:00:00.41] Assert.Equal() Failure: Values differ [xUnit.net 00:00:00.41] Expected: OK [xUnit.net 00:00:00.42] Actual: Forbidden [xUnit.net 00:00:00.42] Stack Trace: [xUnit.net 00:00:00.42] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Middleware/TenantValidationTests.cs(45,0): at WorkClub.Tests.Integration.Middleware.TenantValidationTests.Request_WithValidTenantId_Returns200() [xUnit.net 00:00:00.42] --- End of stack trace from previous location --- info: Microsoft.Hosting.Lifetime[0] Application is shutting down... [testcontainers.org 00:00:00.41] Docker container 6ca119fca1c5 created [testcontainers.org 00:00:00.43] Start Docker container 6ca119fca1c5 fail: Microsoft.EntityFrameworkCore.Database.Connection[20004] An error occurred using the connection to database 'workclub' on server 'tcp://localhost:5432'. [xUnit.net 00:00:00.60] Npgsql.PostgresException : 28P01: password authentication failed for user "app" [xUnit.net 00:00:00.60] Stack Trace: [xUnit.net 00:00:00.60] at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) [xUnit.net 00:00:00.60] at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) [xUnit.net 00:00:00.60] at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.60] at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.60] at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.60] at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.60] at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.60] at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.60] at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.60] at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.60] at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) [xUnit.net 00:00:00.60] at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) [xUnit.net 00:00:00.60] at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected) [xUnit.net 00:00:00.60] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) [xUnit.net 00:00:00.60] at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.GetAppliedMigrationsAsync(CancellationToken cancellationToken) [xUnit.net 00:00:00.60] at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.Internal.NpgsqlHistoryRepository.GetAppliedMigrationsAsync(CancellationToken cancellationToken) [xUnit.net 00:00:00.60] at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.Internal.NpgsqlMigrator.MigrateAsync(String targetMigration, CancellationToken cancellationToken) [xUnit.net 00:00:00.60] /Users/mastermito/Dev/opencode/backend/WorkClub.Infrastructure/Seed/SeedDataService.cs(25,0): at WorkClub.Infrastructure.Seed.SeedDataService.SeedAsync() [xUnit.net 00:00:00.60] /Users/mastermito/Dev/opencode/backend/WorkClub.Api/Program.cs(82,0): at Program.<Main>$(String[] args) [xUnit.net 00:00:00.60] at Program.<Main>(String[] args) [xUnit.net 00:00:00.60] at InvokeStub_Program.<Main>(Object, Span`1) [xUnit.net 00:00:00.60] at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) [xUnit.net 00:00:00.60] --- End of stack trace from previous location --- [xUnit.net 00:00:00.60] at Microsoft.AspNetCore.Mvc.Testing.DeferredHostBuilder.DeferredHost.StartAsync(CancellationToken cancellationToken) [xUnit.net 00:00:00.60] at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Start(IHost host) [xUnit.net 00:00:00.60] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateHost(IHostBuilder builder) [xUnit.net 00:00:00.60] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.ConfigureHostBuilder(IHostBuilder hostBuilder) [xUnit.net 00:00:00.60] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.StartServer() [xUnit.net 00:00:00.60] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(DelegatingHandler[] handlers) [xUnit.net 00:00:00.60] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(Uri baseAddress, DelegatingHandler[] handlers) [xUnit.net 00:00:00.60] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient(WebApplicationFactoryClientOptions options) [xUnit.net 00:00:00.60] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient() [xUnit.net 00:00:00.60] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Auth/AuthorizationTests.cs(25,0): at WorkClub.Tests.Integration.Auth.AuthorizationTests.AdminCanAccessAdminEndpoints_Returns200() [xUnit.net 00:00:00.60] --- End of stack trace from previous location --- fail: Microsoft.EntityFrameworkCore.Database.Connection[20004] An error occurred using the connection to database 'workclub' on server 'tcp://localhost:5432'. [xUnit.net 00:00:00.71] Npgsql.PostgresException : 28P01: password authentication failed for user "app" [xUnit.net 00:00:00.71] Stack Trace: [xUnit.net 00:00:00.71] at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) [xUnit.net 00:00:00.71] at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) [xUnit.net 00:00:00.71] at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.71] at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.71] at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.71] at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.71] at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.71] at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.71] at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.71] at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.71] at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) [xUnit.net 00:00:00.71] at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) [xUnit.net 00:00:00.71] at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected) [xUnit.net 00:00:00.71] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) [xUnit.net 00:00:00.71] at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.GetAppliedMigrationsAsync(CancellationToken cancellationToken) [xUnit.net 00:00:00.71] at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.Internal.NpgsqlHistoryRepository.GetAppliedMigrationsAsync(CancellationToken cancellationToken) [xUnit.net 00:00:00.71] at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.Internal.NpgsqlMigrator.MigrateAsync(String targetMigration, CancellationToken cancellationToken) [xUnit.net 00:00:00.71] /Users/mastermito/Dev/opencode/backend/WorkClub.Infrastructure/Seed/SeedDataService.cs(25,0): at WorkClub.Infrastructure.Seed.SeedDataService.SeedAsync() [xUnit.net 00:00:00.71] /Users/mastermito/Dev/opencode/backend/WorkClub.Api/Program.cs(82,0): at Program.<Main>$(String[] args) [xUnit.net 00:00:00.71] at Program.<Main>(String[] args) [xUnit.net 00:00:00.71] at InvokeStub_Program.<Main>(Object, Span`1) [xUnit.net 00:00:00.71] at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) [xUnit.net 00:00:00.71] --- End of stack trace from previous location --- [xUnit.net 00:00:00.71] at Microsoft.AspNetCore.Mvc.Testing.DeferredHostBuilder.DeferredHost.StartAsync(CancellationToken cancellationToken) [xUnit.net 00:00:00.71] at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Start(IHost host) [xUnit.net 00:00:00.71] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateHost(IHostBuilder builder) [xUnit.net 00:00:00.71] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.ConfigureHostBuilder(IHostBuilder hostBuilder) [xUnit.net 00:00:00.71] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.StartServer() [xUnit.net 00:00:00.71] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(DelegatingHandler[] handlers) [xUnit.net 00:00:00.71] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(Uri baseAddress, DelegatingHandler[] handlers) [xUnit.net 00:00:00.71] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient(WebApplicationFactoryClientOptions options) [xUnit.net 00:00:00.71] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient() [xUnit.net 00:00:00.71] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Auth/AuthorizationTests.cs(41,0): at WorkClub.Tests.Integration.Auth.AuthorizationTests.MemberCannotAccessAdminEndpoints_Returns403() [xUnit.net 00:00:00.71] --- End of stack trace from previous location --- fail: Microsoft.EntityFrameworkCore.Database.Connection[20004] An error occurred using the connection to database 'workclub' on server 'tcp://localhost:5432'. [xUnit.net 00:00:00.81] Npgsql.PostgresException : 28P01: password authentication failed for user "app" [xUnit.net 00:00:00.81] Stack Trace: [xUnit.net 00:00:00.81] at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) [xUnit.net 00:00:00.81] at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) [xUnit.net 00:00:00.81] at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.81] at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.81] at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.81] at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.81] at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.81] at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.81] at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.81] at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.81] at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) [xUnit.net 00:00:00.81] at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) [xUnit.net 00:00:00.81] at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected) [xUnit.net 00:00:00.81] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) [xUnit.net 00:00:00.81] at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.GetAppliedMigrationsAsync(CancellationToken cancellationToken) [xUnit.net 00:00:00.81] at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.Internal.NpgsqlHistoryRepository.GetAppliedMigrationsAsync(CancellationToken cancellationToken) [xUnit.net 00:00:00.81] at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.Internal.NpgsqlMigrator.MigrateAsync(String targetMigration, CancellationToken cancellationToken) [xUnit.net 00:00:00.81] /Users/mastermito/Dev/opencode/backend/WorkClub.Infrastructure/Seed/SeedDataService.cs(25,0): at WorkClub.Infrastructure.Seed.SeedDataService.SeedAsync() [xUnit.net 00:00:00.81] /Users/mastermito/Dev/opencode/backend/WorkClub.Api/Program.cs(82,0): at Program.<Main>$(String[] args) [xUnit.net 00:00:00.81] at Program.<Main>(String[] args) [xUnit.net 00:00:00.81] at InvokeStub_Program.<Main>(Object, Span`1) [xUnit.net 00:00:00.81] at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) [xUnit.net 00:00:00.81] --- End of stack trace from previous location --- [xUnit.net 00:00:00.81] at Microsoft.AspNetCore.Mvc.Testing.DeferredHostBuilder.DeferredHost.StartAsync(CancellationToken cancellationToken) [xUnit.net 00:00:00.81] at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Start(IHost host) [xUnit.net 00:00:00.81] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateHost(IHostBuilder builder) [xUnit.net 00:00:00.81] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.ConfigureHostBuilder(IHostBuilder hostBuilder) [xUnit.net 00:00:00.81] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.StartServer() [xUnit.net 00:00:00.81] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(DelegatingHandler[] handlers) [xUnit.net 00:00:00.81] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(Uri baseAddress, DelegatingHandler[] handlers) [xUnit.net 00:00:00.81] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient(WebApplicationFactoryClientOptions options) [xUnit.net 00:00:00.81] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient() [xUnit.net 00:00:00.81] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Auth/AuthorizationTests.cs(57,0): at WorkClub.Tests.Integration.Auth.AuthorizationTests.ViewerCanOnlyRead_PostReturns403() [xUnit.net 00:00:00.81] --- End of stack trace from previous location --- [testcontainers.org 00:00:00.72] Wait for Docker container 6ca119fca1c5 to complete readiness checks [testcontainers.org 00:00:00.74] Docker container 6ca119fca1c5 ready fail: Microsoft.EntityFrameworkCore.Database.Connection[20004] An error occurred using the connection to database 'workclub' on server 'tcp://localhost:5432'. [xUnit.net 00:00:00.89] Npgsql.PostgresException : 28P01: password authentication failed for user "app" [xUnit.net 00:00:00.89] Stack Trace: [xUnit.net 00:00:00.89] at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) [xUnit.net 00:00:00.89] at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) [xUnit.net 00:00:00.89] at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.89] at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.89] at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.89] at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.89] at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.89] at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.89] at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.89] at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.89] at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) [xUnit.net 00:00:00.89] at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) [xUnit.net 00:00:00.89] at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected) [xUnit.net 00:00:00.89] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) [xUnit.net 00:00:00.89] at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.GetAppliedMigrationsAsync(CancellationToken cancellationToken) [xUnit.net 00:00:00.89] at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.Internal.NpgsqlHistoryRepository.GetAppliedMigrationsAsync(CancellationToken cancellationToken) [xUnit.net 00:00:00.89] at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.Internal.NpgsqlMigrator.MigrateAsync(String targetMigration, CancellationToken cancellationToken) [xUnit.net 00:00:00.89] /Users/mastermito/Dev/opencode/backend/WorkClub.Infrastructure/Seed/SeedDataService.cs(25,0): at WorkClub.Infrastructure.Seed.SeedDataService.SeedAsync() [xUnit.net 00:00:00.89] /Users/mastermito/Dev/opencode/backend/WorkClub.Api/Program.cs(82,0): at Program.<Main>$(String[] args) [xUnit.net 00:00:00.89] at Program.<Main>(String[] args) [xUnit.net 00:00:00.89] at InvokeStub_Program.<Main>(Object, Span`1) [xUnit.net 00:00:00.89] at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) [xUnit.net 00:00:00.89] --- End of stack trace from previous location --- [xUnit.net 00:00:00.89] at Microsoft.AspNetCore.Mvc.Testing.DeferredHostBuilder.DeferredHost.StartAsync(CancellationToken cancellationToken) [xUnit.net 00:00:00.89] at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Start(IHost host) [xUnit.net 00:00:00.89] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateHost(IHostBuilder builder) [xUnit.net 00:00:00.89] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.ConfigureHostBuilder(IHostBuilder hostBuilder) [xUnit.net 00:00:00.89] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.StartServer() [xUnit.net 00:00:00.89] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(DelegatingHandler[] handlers) [xUnit.net 00:00:00.89] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(Uri baseAddress, DelegatingHandler[] handlers) [xUnit.net 00:00:00.89] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient(WebApplicationFactoryClientOptions options) [xUnit.net 00:00:00.89] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient() [xUnit.net 00:00:00.89] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Auth/AuthorizationTests.cs(88,0): at WorkClub.Tests.Integration.Auth.AuthorizationTests.HealthEndpointsArePublic_NoAuthRequired() [xUnit.net 00:00:00.89] --- End of stack trace from previous location --- fail: Microsoft.EntityFrameworkCore.Database.Connection[20004] An error occurred using the connection to database 'workclub' on server 'tcp://localhost:5432'. [xUnit.net 00:00:00.95] Npgsql.PostgresException : 28P01: password authentication failed for user "app" [xUnit.net 00:00:00.95] Stack Trace: [xUnit.net 00:00:00.95] at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) [xUnit.net 00:00:00.95] at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) [xUnit.net 00:00:00.95] at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.95] at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.95] at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.95] at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.95] at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.95] at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.95] at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.95] at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:00.95] at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) [xUnit.net 00:00:00.95] at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) [xUnit.net 00:00:00.95] at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected) [xUnit.net 00:00:00.95] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) [xUnit.net 00:00:00.95] at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.GetAppliedMigrationsAsync(CancellationToken cancellationToken) [xUnit.net 00:00:00.95] at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.Internal.NpgsqlHistoryRepository.GetAppliedMigrationsAsync(CancellationToken cancellationToken) [xUnit.net 00:00:00.95] at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.Internal.NpgsqlMigrator.MigrateAsync(String targetMigration, CancellationToken cancellationToken) [xUnit.net 00:00:00.95] /Users/mastermito/Dev/opencode/backend/WorkClub.Infrastructure/Seed/SeedDataService.cs(25,0): at WorkClub.Infrastructure.Seed.SeedDataService.SeedAsync() [xUnit.net 00:00:00.95] /Users/mastermito/Dev/opencode/backend/WorkClub.Api/Program.cs(82,0): at Program.<Main>$(String[] args) [xUnit.net 00:00:00.95] at Program.<Main>(String[] args) [xUnit.net 00:00:00.95] at InvokeStub_Program.<Main>(Object, Span`1) [xUnit.net 00:00:00.95] at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) [xUnit.net 00:00:00.95] --- End of stack trace from previous location --- [xUnit.net 00:00:00.95] at Microsoft.AspNetCore.Mvc.Testing.DeferredHostBuilder.DeferredHost.StartAsync(CancellationToken cancellationToken) [xUnit.net 00:00:00.95] at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Start(IHost host) [xUnit.net 00:00:00.95] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateHost(IHostBuilder builder) [xUnit.net 00:00:00.95] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.ConfigureHostBuilder(IHostBuilder hostBuilder) [xUnit.net 00:00:00.95] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.StartServer() [xUnit.net 00:00:00.95] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(DelegatingHandler[] handlers) [xUnit.net 00:00:00.95] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(Uri baseAddress, DelegatingHandler[] handlers) [xUnit.net 00:00:00.95] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient(WebApplicationFactoryClientOptions options) [xUnit.net 00:00:00.95] at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient() [xUnit.net 00:00:00.95] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Auth/AuthorizationTests.cs(74,0): at WorkClub.Tests.Integration.Auth.AuthorizationTests.UnauthenticatedUser_Returns401() [xUnit.net 00:00:00.95] --- End of stack trace from previous location --- [testcontainers.org 00:00:01.50] Docker container 3f19b3199cde created [testcontainers.org 00:00:01.51] Start Docker container 3f19b3199cde [testcontainers.org 00:00:01.56] Docker container 26e2798ec042 created [testcontainers.org 00:00:01.57] Start Docker container 26e2798ec042 [testcontainers.org 00:00:01.58] Docker container a68d80edb832 created [testcontainers.org 00:00:01.59] Docker container 841828f838a1 created [testcontainers.org 00:00:01.59] Docker container 2da801c80b71 created [testcontainers.org 00:00:01.60] Docker container 74f6b6765d10 created [testcontainers.org 00:00:01.60] Start Docker container a68d80edb832 [testcontainers.org 00:00:01.60] Docker container 1c2265a63596 created [testcontainers.org 00:00:01.61] Start Docker container 2da801c80b71 [testcontainers.org 00:00:01.61] Docker container dc6ea4a08f3d created [testcontainers.org 00:00:01.63] Start Docker container 841828f838a1 [testcontainers.org 00:00:01.63] Start Docker container 74f6b6765d10 [testcontainers.org 00:00:01.64] Start Docker container 1c2265a63596 [testcontainers.org 00:00:01.64] Start Docker container dc6ea4a08f3d [testcontainers.org 00:00:02.19] Wait for Docker container 3f19b3199cde to complete readiness checks [testcontainers.org 00:00:02.29] Wait for Docker container 26e2798ec042 to complete readiness checks [testcontainers.org 00:00:02.34] Wait for Docker container 1c2265a63596 to complete readiness checks [testcontainers.org 00:00:02.42] Wait for Docker container a68d80edb832 to complete readiness checks [testcontainers.org 00:00:02.46] Wait for Docker container dc6ea4a08f3d to complete readiness checks [testcontainers.org 00:00:02.55] Wait for Docker container 74f6b6765d10 to complete readiness checks [testcontainers.org 00:00:02.62] Wait for Docker container 2da801c80b71 to complete readiness checks [testcontainers.org 00:00:02.72] Wait for Docker container 841828f838a1 to complete readiness checks [testcontainers.org 00:00:03.74] Docker container 841828f838a1 ready info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (9ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT 1 info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (12ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT CASE WHEN COUNT(*) = 0 THEN FALSE ELSE TRUE END FROM pg_class AS cls JOIN pg_namespace AS ns ON ns.oid = cls.relnamespace WHERE cls.relkind IN ('r', 'v', 'm', 'f', 'p') AND ns.nspname NOT IN ('pg_catalog', 'information_schema') AND -- Exclude tables which are members of PG extensions NOT EXISTS ( SELECT 1 FROM pg_depend WHERE classid=( SELECT cls.oid FROM pg_class AS cls JOIN pg_namespace AS ns ON ns.oid = cls.relnamespace WHERE relname='pg_class' AND ns.nspname='pg_catalog' ) AND objid=cls.oid AND deptype IN ('e', 'x') ) info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE clubs ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "Name" character varying(200) NOT NULL, "SportType" integer NOT NULL, "Description" character varying(2000), "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_clubs" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE members ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "ExternalUserId" character varying(200) NOT NULL, "DisplayName" character varying(200) NOT NULL, "Email" character varying(200) NOT NULL, "Role" integer NOT NULL, "ClubId" uuid NOT NULL, "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_members" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE shift_signups ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "ShiftId" uuid NOT NULL, "MemberId" uuid NOT NULL, "SignedUpAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_shift_signups" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE shifts ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "Title" character varying(200) NOT NULL, "Description" character varying(2000), "Location" character varying(500), "StartTime" timestamp with time zone NOT NULL, "EndTime" timestamp with time zone NOT NULL, "Capacity" integer NOT NULL DEFAULT 1, "ClubId" uuid NOT NULL, "CreatedById" uuid NOT NULL, "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_shifts" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE work_items ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "Title" character varying(200) NOT NULL, "Description" character varying(2000), "Status" integer NOT NULL, "AssigneeId" uuid, "CreatedById" uuid NOT NULL, "ClubId" uuid NOT NULL, "DueDate" timestamp with time zone, "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_work_items" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_clubs_tenant_id ON clubs ("TenantId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_members_club_id ON members ("ClubId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_members_tenant_external_user ON members ("TenantId", "ExternalUserId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_members_tenant_id ON members ("TenantId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shift_signups_shift_id ON shift_signups ("ShiftId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE UNIQUE INDEX ix_shift_signups_shift_member ON shift_signups ("ShiftId", "MemberId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shift_signups_tenant_id ON shift_signups ("TenantId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shifts_club_id ON shifts ("ClubId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shifts_start_time ON shifts ("StartTime"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shifts_tenant_id ON shifts ("TenantId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_assignee_id ON work_items ("AssigneeId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_club_id ON work_items ("ClubId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_status ON work_items ("Status"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_tenant_id ON work_items ("TenantId"); info: Microsoft.Hosting.Lifetime[0] Application started. Press Ctrl+C to shut down. info: Microsoft.Hosting.Lifetime[0] Hosting environment: Test info: Microsoft.Hosting.Lifetime[0] Content root path: /Users/mastermito/Dev/opencode/backend/WorkClub.Api [xUnit.net 00:00:04.08] Npgsql.PostgresException : 42703: column "id" of relation "clubs" does not exist [xUnit.net 00:00:04.08] [xUnit.net 00:00:04.08] POSITION: 33 [xUnit.net 00:00:04.08] Stack Trace: [xUnit.net 00:00:04.08] at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) [xUnit.net 00:00:04.08] at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) [xUnit.net 00:00:04.08] at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) [xUnit.net 00:00:04.08] at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) [xUnit.net 00:00:04.08] at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) [xUnit.net 00:00:04.08] at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) [xUnit.net 00:00:04.08] at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:04.08] /_/Dapper/SqlMapper.Async.cs(662,0): at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) [xUnit.net 00:00:04.08] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs(299,0): at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test5_CrossTenantHeaderSpoof_MiddlewareBlocks() [xUnit.net 00:00:04.08] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs(317,0): at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test5_CrossTenantHeaderSpoof_MiddlewareBlocks() [xUnit.net 00:00:04.08] --- End of stack trace from previous location --- [xUnit.net 00:00:04.08] Npgsql.PostgresException : 42703: column "id" of relation "clubs" does not exist [xUnit.net 00:00:04.08] [xUnit.net 00:00:04.08] POSITION: 33 [xUnit.net 00:00:04.08] Stack Trace: [xUnit.net 00:00:04.08] at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) [xUnit.net 00:00:04.08] at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) [xUnit.net 00:00:04.08] at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) [xUnit.net 00:00:04.08] at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) [xUnit.net 00:00:04.08] at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) [xUnit.net 00:00:04.08] at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) [xUnit.net 00:00:04.08] at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:04.08] /_/Dapper/SqlMapper.Async.cs(662,0): at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) [xUnit.net 00:00:04.08] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs(121,0): at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test2_NoContext_NoData_RlsBlocksEverything() [xUnit.net 00:00:04.08] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs(148,0): at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test2_NoContext_NoData_RlsBlocksEverything() [xUnit.net 00:00:04.08] --- End of stack trace from previous location --- [xUnit.net 00:00:04.09] Npgsql.PostgresException : 42703: column "id" of relation "clubs" does not exist [xUnit.net 00:00:04.09] [xUnit.net 00:00:04.09] POSITION: 33 [xUnit.net 00:00:04.09] Stack Trace: [xUnit.net 00:00:04.09] at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) [xUnit.net 00:00:04.09] at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) [xUnit.net 00:00:04.09] at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) [xUnit.net 00:00:04.09] at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) [xUnit.net 00:00:04.09] at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) [xUnit.net 00:00:04.09] at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) [xUnit.net 00:00:04.09] at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:04.09] /_/Dapper/SqlMapper.Async.cs(662,0): at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) [xUnit.net 00:00:04.09] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs(45,0): at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test1_CompleteIsolation_TenantsSeeOnlyTheirData() [xUnit.net 00:00:04.09] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs(108,0): at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test1_CompleteIsolation_TenantsSeeOnlyTheirData() [xUnit.net 00:00:04.09] --- End of stack trace from previous location --- [xUnit.net 00:00:04.09] Npgsql.PostgresException : 42703: column "id" of relation "clubs" does not exist [xUnit.net 00:00:04.09] [xUnit.net 00:00:04.09] POSITION: 33 [xUnit.net 00:00:04.09] Stack Trace: [xUnit.net 00:00:04.09] at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) [xUnit.net 00:00:04.09] at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) [xUnit.net 00:00:04.09] at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) [xUnit.net 00:00:04.09] at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) [xUnit.net 00:00:04.09] at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) [xUnit.net 00:00:04.09] at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) [xUnit.net 00:00:04.09] at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:04.09] /_/Dapper/SqlMapper.Async.cs(662,0): at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) [xUnit.net 00:00:04.09] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs(202,0): at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test4_ConcurrentRequests_ConnectionPoolSafety() [xUnit.net 00:00:04.09] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs(287,0): at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test4_ConcurrentRequests_ConnectionPoolSafety() [xUnit.net 00:00:04.09] --- End of stack trace from previous location --- [xUnit.net 00:00:04.09] Npgsql.PostgresException : 42703: column "id" of relation "clubs" does not exist [xUnit.net 00:00:04.09] [xUnit.net 00:00:04.09] POSITION: 33 [xUnit.net 00:00:04.09] Stack Trace: [xUnit.net 00:00:04.09] at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) [xUnit.net 00:00:04.09] at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) [xUnit.net 00:00:04.09] at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) [xUnit.net 00:00:04.09] at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) [xUnit.net 00:00:04.09] at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) [xUnit.net 00:00:04.09] at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) [xUnit.net 00:00:04.09] at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:04.09] /_/Dapper/SqlMapper.Async.cs(662,0): at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) [xUnit.net 00:00:04.09] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs(161,0): at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test3_InsertProtection_CrossTenantInsertBlocked() [xUnit.net 00:00:04.09] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs(189,0): at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test3_InsertProtection_CrossTenantInsertBlocked() [xUnit.net 00:00:04.09] --- End of stack trace from previous location --- [xUnit.net 00:00:04.09] Npgsql.PostgresException : 42703: column "id" of relation "clubs" does not exist [xUnit.net 00:00:04.09] [xUnit.net 00:00:04.09] POSITION: 33 [xUnit.net 00:00:04.09] Stack Trace: [xUnit.net 00:00:04.09] at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) [xUnit.net 00:00:04.09] at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) [xUnit.net 00:00:04.09] at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) [xUnit.net 00:00:04.09] at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) [xUnit.net 00:00:04.09] at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) [xUnit.net 00:00:04.09] at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken) [xUnit.net 00:00:04.09] at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:04.09] /_/Dapper/SqlMapper.Async.cs(662,0): at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) [xUnit.net 00:00:04.09] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs(330,0): at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test6_InterceptorVerification_SetLocalExecuted() [xUnit.net 00:00:04.09] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/MultiTenancy/RlsIsolationTests.cs(363,0): at WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test6_InterceptorVerification_SetLocalExecuted() [xUnit.net 00:00:04.09] --- End of stack trace from previous location --- [testcontainers.org 00:00:03.99] Delete Docker container 841828f838a1 [testcontainers.org 00:00:04.24] Docker container 3f19b3199cde ready info: Microsoft.Hosting.Lifetime[0] Application is shutting down... info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT 1 info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT CASE WHEN COUNT(*) = 0 THEN FALSE ELSE TRUE END FROM pg_class AS cls JOIN pg_namespace AS ns ON ns.oid = cls.relnamespace WHERE cls.relkind IN ('r', 'v', 'm', 'f', 'p') AND ns.nspname NOT IN ('pg_catalog', 'information_schema') AND -- Exclude tables which are members of PG extensions NOT EXISTS ( SELECT 1 FROM pg_depend WHERE classid=( SELECT cls.oid FROM pg_class AS cls JOIN pg_namespace AS ns ON ns.oid = cls.relnamespace WHERE relname='pg_class' AND ns.nspname='pg_catalog' ) AND objid=cls.oid AND deptype IN ('e', 'x') ) info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE clubs ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "Name" character varying(200) NOT NULL, "SportType" integer NOT NULL, "Description" character varying(2000), "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_clubs" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE members ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "ExternalUserId" character varying(200) NOT NULL, "DisplayName" character varying(200) NOT NULL, "Email" character varying(200) NOT NULL, "Role" integer NOT NULL, "ClubId" uuid NOT NULL, "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_members" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE shift_signups ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "ShiftId" uuid NOT NULL, "MemberId" uuid NOT NULL, "SignedUpAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_shift_signups" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE shifts ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "Title" character varying(200) NOT NULL, "Description" character varying(2000), "Location" character varying(500), "StartTime" timestamp with time zone NOT NULL, "EndTime" timestamp with time zone NOT NULL, "Capacity" integer NOT NULL DEFAULT 1, "ClubId" uuid NOT NULL, "CreatedById" uuid NOT NULL, "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_shifts" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE work_items ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "Title" character varying(200) NOT NULL, "Description" character varying(2000), "Status" integer NOT NULL, "AssigneeId" uuid, "CreatedById" uuid NOT NULL, "ClubId" uuid NOT NULL, "DueDate" timestamp with time zone, "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_work_items" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_clubs_tenant_id ON clubs ("TenantId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_members_club_id ON members ("ClubId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_members_tenant_external_user ON members ("TenantId", "ExternalUserId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_members_tenant_id ON members ("TenantId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shift_signups_shift_id ON shift_signups ("ShiftId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE UNIQUE INDEX ix_shift_signups_shift_member ON shift_signups ("ShiftId", "MemberId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shift_signups_tenant_id ON shift_signups ("TenantId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shifts_club_id ON shifts ("ClubId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shifts_start_time ON shifts ("StartTime"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shifts_tenant_id ON shifts ("TenantId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_assignee_id ON work_items ("AssigneeId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_club_id ON work_items ("ClubId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_status ON work_items ("Status"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_tenant_id ON work_items ("TenantId"); info: Microsoft.Hosting.Lifetime[0] Application started. Press Ctrl+C to shut down. info: Microsoft.Hosting.Lifetime[0] Hosting environment: Test info: Microsoft.Hosting.Lifetime[0] Content root path: /Users/mastermito/Dev/opencode/backend/WorkClub.Api [testcontainers.org 00:00:04.33] Docker container 26e2798ec042 ready [testcontainers.org 00:00:04.39] Docker container 1c2265a63596 ready info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT 1 info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (8ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT CASE WHEN COUNT(*) = 0 THEN FALSE ELSE TRUE END FROM pg_class AS cls JOIN pg_namespace AS ns ON ns.oid = cls.relnamespace WHERE cls.relkind IN ('r', 'v', 'm', 'f', 'p') AND ns.nspname NOT IN ('pg_catalog', 'information_schema') AND -- Exclude tables which are members of PG extensions NOT EXISTS ( SELECT 1 FROM pg_depend WHERE classid=( SELECT cls.oid FROM pg_class AS cls JOIN pg_namespace AS ns ON ns.oid = cls.relnamespace WHERE relname='pg_class' AND ns.nspname='pg_catalog' ) AND objid=cls.oid AND deptype IN ('e', 'x') ) info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (4ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE clubs ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "Name" character varying(200) NOT NULL, "SportType" integer NOT NULL, "Description" character varying(2000), "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_clubs" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE members ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "ExternalUserId" character varying(200) NOT NULL, "DisplayName" character varying(200) NOT NULL, "Email" character varying(200) NOT NULL, "Role" integer NOT NULL, "ClubId" uuid NOT NULL, "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_members" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE shift_signups ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "ShiftId" uuid NOT NULL, "MemberId" uuid NOT NULL, "SignedUpAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_shift_signups" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT c."Id", c."CreatedAt", c."Description", c."Name", c."SportType", c."TenantId", c."UpdatedAt" FROM clubs AS c info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE shifts ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "Title" character varying(200) NOT NULL, "Description" character varying(2000), "Location" character varying(500), "StartTime" timestamp with time zone NOT NULL, "EndTime" timestamp with time zone NOT NULL, "Capacity" integer NOT NULL DEFAULT 1, "ClubId" uuid NOT NULL, "CreatedById" uuid NOT NULL, "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_shifts" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE work_items ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "Title" character varying(200) NOT NULL, "Description" character varying(2000), "Status" integer NOT NULL, "AssigneeId" uuid, "CreatedById" uuid NOT NULL, "ClubId" uuid NOT NULL, "DueDate" timestamp with time zone, "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_work_items" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_clubs_tenant_id ON clubs ("TenantId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT m."Id", m."ClubId", m."CreatedAt", m."DisplayName", m."Email", m."ExternalUserId", m."Role", m."TenantId", m."UpdatedAt" FROM members AS m info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_members_club_id ON members ("ClubId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_members_tenant_external_user ON members ("TenantId", "ExternalUserId"); warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (7ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_members_tenant_id ON members ("TenantId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shift_signups_shift_id ON shift_signups ("ShiftId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (4ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE UNIQUE INDEX ix_shift_signups_shift_member ON shift_signups ("ShiftId", "MemberId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shift_signups_tenant_id ON shift_signups ("TenantId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shifts_club_id ON shifts ("ClubId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shifts_start_time ON shifts ("StartTime"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (6ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shifts_tenant_id ON shifts ("TenantId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_assignee_id ON work_items ("AssigneeId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_club_id ON work_items ("ClubId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_status ON work_items ("Status"); warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_tenant_id ON work_items ("TenantId"); [testcontainers.org 00:00:04.45] Docker container a68d80edb832 ready info: Microsoft.Hosting.Lifetime[0] Application started. Press Ctrl+C to shut down. info: Microsoft.Hosting.Lifetime[0] Hosting environment: Test info: Microsoft.Hosting.Lifetime[0] Content root path: /Users/mastermito/Dev/opencode/backend/WorkClub.Api [testcontainers.org 00:00:04.49] Docker container dc6ea4a08f3d ready info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."MemberId", s."ShiftId", s."SignedUpAt", s."TenantId" FROM shift_signups AS s info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (3ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = DateTime), @p2='?', @p3='?', @p4='?' (DbType = Int32), @p5='?', @p6='?' (DbType = DateTime), @p7='?' (DbType = Guid), @p8='?' (DbType = DateTime), @p9='?', @p10='?', @p11='?' (DbType = Int32), @p12='?', @p13='?' (DbType = DateTime), @p14='?' (DbType = Guid), @p15='?' (DbType = Guid), @p16='?' (DbType = DateTime), @p17='?', @p18='?', @p19='?', @p20='?' (DbType = Int32), @p21='?', @p22='?' (DbType = DateTime), @p23='?' (DbType = Guid), @p24='?' (DbType = Guid), @p25='?' (DbType = DateTime), @p26='?', @p27='?', @p28='?', @p29='?' (DbType = Int32), @p30='?', @p31='?' (DbType = DateTime), @p32='?' (DbType = Guid), @p33='?' (DbType = Guid), @p34='?' (DbType = DateTime), @p35='?', @p36='?', @p37='?', @p38='?' (DbType = Int32), @p39='?', @p40='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6); INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p7, @p8, @p9, @p10, @p11, @p12, @p13); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p14, @p15, @p16, @p17, @p18, @p19, @p20, @p21, @p22); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p23, @p24, @p25, @p26, @p27, @p28, @p29, @p30, @p31); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p32, @p33, @p34, @p35, @p36, @p37, @p38, @p39, @p40); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."Capacity", s."ClubId", s."CreatedAt", s."CreatedById", s."Description", s."EndTime", s."Location", s.xmin, s."StartTime", s."TenantId", s."Title", s."UpdatedAt" FROM shifts AS s warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT 1 info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT CASE WHEN COUNT(*) = 0 THEN FALSE ELSE TRUE END FROM pg_class AS cls JOIN pg_namespace AS ns ON ns.oid = cls.relnamespace WHERE cls.relkind IN ('r', 'v', 'm', 'f', 'p') AND ns.nspname NOT IN ('pg_catalog', 'information_schema') AND -- Exclude tables which are members of PG extensions NOT EXISTS ( SELECT 1 FROM pg_depend WHERE classid=( SELECT cls.oid FROM pg_class AS cls JOIN pg_namespace AS ns ON ns.oid = cls.relnamespace WHERE relname='pg_class' AND ns.nspname='pg_catalog' ) AND objid=cls.oid AND deptype IN ('e', 'x') ) warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE clubs ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "Name" character varying(200) NOT NULL, "SportType" integer NOT NULL, "Description" character varying(2000), "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_clubs" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (5ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE members ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "ExternalUserId" character varying(200) NOT NULL, "DisplayName" character varying(200) NOT NULL, "Email" character varying(200) NOT NULL, "Role" integer NOT NULL, "ClubId" uuid NOT NULL, "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_members" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE shift_signups ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "ShiftId" uuid NOT NULL, "MemberId" uuid NOT NULL, "SignedUpAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_shift_signups" PRIMARY KEY ("Id") ); warn: Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware[3] Failed to determine the https port for redirect. info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/clubs/me info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (8ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Int32), @p2='?' (DbType = Guid), @p3='?' (DbType = DateTime), @p4='?' (DbType = Guid), @p5='?', @p6='?' (DbType = DateTime), @p7='?', @p8='?' (DbType = DateTime), @p9='?', @p10='?', @p11='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO shifts ("Id", "Capacity", "ClubId", "CreatedAt", "CreatedById", "Description", "EndTime", "Location", "StartTime", "TenantId", "Title", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11) RETURNING xmin; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE shifts ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "Title" character varying(200) NOT NULL, "Description" character varying(2000), "Location" character varying(500), "StartTime" timestamp with time zone NOT NULL, "EndTime" timestamp with time zone NOT NULL, "Capacity" integer NOT NULL DEFAULT 1, "ClubId" uuid NOT NULL, "CreatedById" uuid NOT NULL, "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_shifts" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE work_items ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "Title" character varying(200) NOT NULL, "Description" character varying(2000), "Status" integer NOT NULL, "AssigneeId" uuid, "CreatedById" uuid NOT NULL, "ClubId" uuid NOT NULL, "DueDate" timestamp with time zone, "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_work_items" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_clubs_tenant_id ON clubs ("TenantId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_members_club_id ON members ("ClubId"); [xUnit.net 00:00:04.64] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.64] Expected: OK [xUnit.net 00:00:04.64] Actual: Forbidden [xUnit.net 00:00:04.64] Stack Trace: [xUnit.net 00:00:04.64] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Clubs/ClubEndpointsTests.cs(120,0): at WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsMe_ReturnsOnlyUserClubs() [xUnit.net 00:00:04.64] --- End of stack trace from previous location --- info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_members_tenant_external_user ON members ("TenantId", "ExternalUserId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_members_tenant_id ON members ("TenantId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shift_signups_shift_id ON shift_signups ("ShiftId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT c."Id", c."CreatedAt", c."Description", c."Name", c."SportType", c."TenantId", c."UpdatedAt" FROM clubs AS c info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE UNIQUE INDEX ix_shift_signups_shift_member ON shift_signups ("ShiftId", "MemberId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shift_signups_tenant_id ON shift_signups ("TenantId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shifts_club_id ON shifts ("ClubId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shifts_start_time ON shifts ("StartTime"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT m."Id", m."ClubId", m."CreatedAt", m."DisplayName", m."Email", m."ExternalUserId", m."Role", m."TenantId", m."UpdatedAt" FROM members AS m info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shifts_tenant_id ON shifts ("TenantId"); warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_assignee_id ON work_items ("AssigneeId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_club_id ON work_items ("ClubId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = Guid), @p4='?' (DbType = Guid)], CommandType='Text', CommandTimeout='30'] DELETE FROM clubs WHERE "Id" = @p0; DELETE FROM clubs WHERE "Id" = @p1; DELETE FROM members WHERE "Id" = @p2; DELETE FROM members WHERE "Id" = @p3; DELETE FROM members WHERE "Id" = @p4; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_status ON work_items ("Status"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_tenant_id ON work_items ("TenantId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT 1 warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT CASE WHEN COUNT(*) = 0 THEN FALSE ELSE TRUE END FROM pg_class AS cls JOIN pg_namespace AS ns ON ns.oid = cls.relnamespace WHERE cls.relkind IN ('r', 'v', 'm', 'f', 'p') AND ns.nspname NOT IN ('pg_catalog', 'information_schema') AND -- Exclude tables which are members of PG extensions NOT EXISTS ( SELECT 1 FROM pg_depend WHERE classid=( SELECT cls.oid FROM pg_class AS cls JOIN pg_namespace AS ns ON ns.oid = cls.relnamespace WHERE relname='pg_class' AND ns.nspname='pg_catalog' ) AND objid=cls.oid AND deptype IN ('e', 'x') ) warn: Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware[3] Failed to determine the https port for redirect. info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (3ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = DateTime), @p2='?', @p3='?', @p4='?' (DbType = Int32), @p5='?', @p6='?' (DbType = DateTime), @p7='?' (DbType = Guid), @p8='?' (DbType = DateTime), @p9='?', @p10='?', @p11='?' (DbType = Int32), @p12='?', @p13='?' (DbType = DateTime), @p14='?' (DbType = Guid), @p15='?' (DbType = Guid), @p16='?' (DbType = DateTime), @p17='?', @p18='?', @p19='?', @p20='?' (DbType = Int32), @p21='?', @p22='?' (DbType = DateTime), @p23='?' (DbType = Guid), @p24='?' (DbType = Guid), @p25='?' (DbType = DateTime), @p26='?', @p27='?', @p28='?', @p29='?' (DbType = Int32), @p30='?', @p31='?' (DbType = DateTime), @p32='?' (DbType = Guid), @p33='?' (DbType = Guid), @p34='?' (DbType = DateTime), @p35='?', @p36='?', @p37='?', @p38='?' (DbType = Int32), @p39='?', @p40='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6); INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p7, @p8, @p9, @p10, @p11, @p12, @p13); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p14, @p15, @p16, @p17, @p18, @p19, @p20, @p21, @p22); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p23, @p24, @p25, @p26, @p27, @p28, @p29, @p30, @p31); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p32, @p33, @p34, @p35, @p36, @p37, @p38, @p39, @p40); info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/shifts/be7578d1-00f5-4e1d-a25b-5584e502449f/signup [xUnit.net 00:00:04.67] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.67] Expected: UnprocessableEntity [xUnit.net 00:00:04.67] Actual: Forbidden [xUnit.net 00:00:04.67] Stack Trace: [xUnit.net 00:00:04.67] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Shifts/ShiftCrudTests.cs(482,0): at WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_ForPastShift_ReturnsUnprocessableEntity() [xUnit.net 00:00:04.67] --- End of stack trace from previous location --- info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/clubs/current info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."MemberId", s."ShiftId", s."SignedUpAt", s."TenantId" FROM shift_signups AS s info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE clubs ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "Name" character varying(200) NOT NULL, "SportType" integer NOT NULL, "Description" character varying(2000), "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_clubs" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."Capacity", s."ClubId", s."CreatedAt", s."CreatedById", s."Description", s."EndTime", s."Location", s.xmin, s."StartTime", s."TenantId", s."Title", s."UpdatedAt" FROM shifts AS s warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE members ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "ExternalUserId" character varying(200) NOT NULL, "DisplayName" character varying(200) NOT NULL, "Email" character varying(200) NOT NULL, "Role" integer NOT NULL, "ClubId" uuid NOT NULL, "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_members" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT c."Id", c."CreatedAt", c."Description", c."Name", c."SportType", c."TenantId", c."UpdatedAt" FROM clubs AS c info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE shift_signups ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "ShiftId" uuid NOT NULL, "MemberId" uuid NOT NULL, "SignedUpAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_shift_signups" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Object)], CommandType='Text', CommandTimeout='30'] DELETE FROM shifts WHERE "Id" = @p0 AND xmin = @p1; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT m."Id", m."ClubId", m."CreatedAt", m."DisplayName", m."Email", m."ExternalUserId", m."Role", m."TenantId", m."UpdatedAt" FROM members AS m warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE shifts ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "Title" character varying(200) NOT NULL, "Description" character varying(2000), "Location" character varying(500), "StartTime" timestamp with time zone NOT NULL, "EndTime" timestamp with time zone NOT NULL, "Capacity" integer NOT NULL DEFAULT 1, "ClubId" uuid NOT NULL, "CreatedById" uuid NOT NULL, "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_shifts" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Int32), @p2='?' (DbType = Guid), @p3='?' (DbType = DateTime), @p4='?' (DbType = Guid), @p5='?', @p6='?' (DbType = DateTime), @p7='?', @p8='?' (DbType = DateTime), @p9='?', @p10='?', @p11='?' (DbType = DateTime), @p12='?' (DbType = Guid), @p13='?' (DbType = Int32), @p14='?' (DbType = Guid), @p15='?' (DbType = DateTime), @p16='?' (DbType = Guid), @p17='?', @p18='?' (DbType = DateTime), @p19='?', @p20='?' (DbType = DateTime), @p21='?', @p22='?', @p23='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO shifts ("Id", "Capacity", "ClubId", "CreatedAt", "CreatedById", "Description", "EndTime", "Location", "StartTime", "TenantId", "Title", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11) RETURNING xmin; INSERT INTO shifts ("Id", "Capacity", "ClubId", "CreatedAt", "CreatedById", "Description", "EndTime", "Location", "StartTime", "TenantId", "Title", "UpdatedAt") VALUES (@p12, @p13, @p14, @p15, @p16, @p17, @p18, @p19, @p20, @p21, @p22, @p23) RETURNING xmin; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE work_items ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "Title" character varying(200) NOT NULL, "Description" character varying(2000), "Status" integer NOT NULL, "AssigneeId" uuid, "CreatedById" uuid NOT NULL, "ClubId" uuid NOT NULL, "DueDate" timestamp with time zone, "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_work_items" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = Guid), @p4='?' (DbType = Guid)], CommandType='Text', CommandTimeout='30'] DELETE FROM clubs WHERE "Id" = @p0; DELETE FROM clubs WHERE "Id" = @p1; DELETE FROM members WHERE "Id" = @p2; DELETE FROM members WHERE "Id" = @p3; DELETE FROM members WHERE "Id" = @p4; warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/shifts info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_clubs_tenant_id ON clubs ("TenantId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_members_club_id ON members ("ClubId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = DateTime), @p2='?', @p3='?', @p4='?' (DbType = Int32), @p5='?', @p6='?' (DbType = DateTime), @p7='?' (DbType = Guid), @p8='?' (DbType = DateTime), @p9='?', @p10='?', @p11='?' (DbType = Int32), @p12='?', @p13='?' (DbType = DateTime), @p14='?' (DbType = Guid), @p15='?' (DbType = Guid), @p16='?' (DbType = DateTime), @p17='?', @p18='?', @p19='?', @p20='?' (DbType = Int32), @p21='?', @p22='?' (DbType = DateTime), @p23='?' (DbType = Guid), @p24='?' (DbType = Guid), @p25='?' (DbType = DateTime), @p26='?', @p27='?', @p28='?', @p29='?' (DbType = Int32), @p30='?', @p31='?' (DbType = DateTime), @p32='?' (DbType = Guid), @p33='?' (DbType = Guid), @p34='?' (DbType = DateTime), @p35='?', @p36='?', @p37='?', @p38='?' (DbType = Int32), @p39='?', @p40='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6); INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p7, @p8, @p9, @p10, @p11, @p12, @p13); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p14, @p15, @p16, @p17, @p18, @p19, @p20, @p21, @p22); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p23, @p24, @p25, @p26, @p27, @p28, @p29, @p30, @p31); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p32, @p33, @p34, @p35, @p36, @p37, @p38, @p39, @p40); [xUnit.net 00:00:04.68] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.68] Expected: OK [xUnit.net 00:00:04.68] Actual: Forbidden [xUnit.net 00:00:04.68] Stack Trace: [xUnit.net 00:00:04.68] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Shifts/ShiftCrudTests.cs(141,0): at WorkClub.Tests.Integration.Shifts.ShiftCrudTests.ListShifts_WithDateFilter_ReturnsFilteredShifts() [xUnit.net 00:00:04.68] --- End of stack trace from previous location --- info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_members_tenant_external_user ON members ("TenantId", "ExternalUserId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."MemberId", s."ShiftId", s."SignedUpAt", s."TenantId" FROM shift_signups AS s info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/clubs/me info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_members_tenant_id ON members ("TenantId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."Capacity", s."ClubId", s."CreatedAt", s."CreatedById", s."Description", s."EndTime", s."Location", s.xmin, s."StartTime", s."TenantId", s."Title", s."UpdatedAt" FROM shifts AS s info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shift_signups_shift_id ON shift_signups ("ShiftId"); warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Object), @p2='?' (DbType = Guid), @p3='?' (DbType = Object)], CommandType='Text', CommandTimeout='30'] DELETE FROM shifts WHERE "Id" = @p0 AND xmin = @p1; DELETE FROM shifts WHERE "Id" = @p2 AND xmin = @p3; info: Microsoft.Hosting.Lifetime[0] Application started. Press Ctrl+C to shut down. info: Microsoft.Hosting.Lifetime[0] Hosting environment: Test info: Microsoft.Hosting.Lifetime[0] Content root path: /Users/mastermito/Dev/opencode/backend/WorkClub.Api info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE UNIQUE INDEX ix_shift_signups_shift_member ON shift_signups ("ShiftId", "MemberId"); [xUnit.net 00:00:04.69] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.69] Expected: Unauthorized [xUnit.net 00:00:04.69] Actual: BadRequest [xUnit.net 00:00:04.69] Stack Trace: [xUnit.net 00:00:04.69] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Clubs/ClubEndpointsTests.cs(219,0): at WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsMe_Unauthenticated_ReturnsUnauthorized() [xUnit.net 00:00:04.69] --- End of stack trace from previous location --- info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shift_signups_tenant_id ON shift_signups ("TenantId"); [testcontainers.org 00:00:04.58] Delete Docker container 1c2265a63596 info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT c."Id", c."CreatedAt", c."Description", c."Name", c."SportType", c."TenantId", c."UpdatedAt" FROM clubs AS c info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shifts_club_id ON shifts ("ClubId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT m."Id", m."ClubId", m."CreatedAt", m."DisplayName", m."Email", m."ExternalUserId", m."Role", m."TenantId", m."UpdatedAt" FROM members AS m info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT m."Id", m."ClubId", m."CreatedAt", m."DisplayName", m."Email", m."ExternalUserId", m."Role", m."TenantId", m."UpdatedAt" FROM members AS m info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT c."Id", c."CreatedAt", c."Description", c."Name", c."SportType", c."TenantId", c."UpdatedAt" FROM clubs AS c warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shifts_start_time ON shifts ("StartTime"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = DateTime), @p2='?', @p3='?', @p4='?' (DbType = Int32), @p5='?', @p6='?' (DbType = DateTime), @p7='?' (DbType = Guid), @p8='?' (DbType = DateTime), @p9='?', @p10='?', @p11='?' (DbType = Int32), @p12='?', @p13='?' (DbType = DateTime), @p14='?' (DbType = Guid), @p15='?' (DbType = Guid), @p16='?' (DbType = DateTime), @p17='?', @p18='?', @p19='?', @p20='?' (DbType = Int32), @p21='?', @p22='?' (DbType = DateTime), @p23='?' (DbType = Guid), @p24='?' (DbType = Guid), @p25='?' (DbType = DateTime), @p26='?', @p27='?', @p28='?', @p29='?' (DbType = Int32), @p30='?', @p31='?' (DbType = DateTime), @p32='?' (DbType = Guid), @p33='?' (DbType = Guid), @p34='?' (DbType = DateTime), @p35='?', @p36='?', @p37='?', @p38='?' (DbType = Int32), @p39='?', @p40='?' (DbType = DateTime), @p41='?' (DbType = Guid), @p42='?' (DbType = Guid), @p43='?' (DbType = DateTime), @p44='?', @p45='?', @p46='?', @p47='?' (DbType = Int32), @p48='?', @p49='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6); INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p7, @p8, @p9, @p10, @p11, @p12, @p13); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p14, @p15, @p16, @p17, @p18, @p19, @p20, @p21, @p22); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p23, @p24, @p25, @p26, @p27, @p28, @p29, @p30, @p31); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p32, @p33, @p34, @p35, @p36, @p37, @p38, @p39, @p40); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p41, @p42, @p43, @p44, @p45, @p46, @p47, @p48, @p49); warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = Guid), @p4='?' (DbType = Guid)], CommandType='Text', CommandTimeout='30'] DELETE FROM clubs WHERE "Id" = @p0; DELETE FROM clubs WHERE "Id" = @p1; DELETE FROM members WHERE "Id" = @p2; DELETE FROM members WHERE "Id" = @p3; DELETE FROM members WHERE "Id" = @p4; warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shifts_tenant_id ON shifts ("TenantId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_assignee_id ON work_items ("AssigneeId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = DateTime), @p2='?', @p3='?', @p4='?' (DbType = Int32), @p5='?', @p6='?' (DbType = DateTime), @p7='?' (DbType = Guid), @p8='?' (DbType = DateTime), @p9='?', @p10='?', @p11='?' (DbType = Int32), @p12='?', @p13='?' (DbType = DateTime), @p14='?' (DbType = Guid), @p15='?' (DbType = Guid), @p16='?' (DbType = DateTime), @p17='?', @p18='?', @p19='?', @p20='?' (DbType = Int32), @p21='?', @p22='?' (DbType = DateTime), @p23='?' (DbType = Guid), @p24='?' (DbType = Guid), @p25='?' (DbType = DateTime), @p26='?', @p27='?', @p28='?', @p29='?' (DbType = Int32), @p30='?', @p31='?' (DbType = DateTime), @p32='?' (DbType = Guid), @p33='?' (DbType = Guid), @p34='?' (DbType = DateTime), @p35='?', @p36='?', @p37='?', @p38='?' (DbType = Int32), @p39='?', @p40='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6); INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p7, @p8, @p9, @p10, @p11, @p12, @p13); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p14, @p15, @p16, @p17, @p18, @p19, @p20, @p21, @p22); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p23, @p24, @p25, @p26, @p27, @p28, @p29, @p30, @p31); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p32, @p33, @p34, @p35, @p36, @p37, @p38, @p39, @p40); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = DateTime), @p4='?', @p5='?' (DbType = Guid), @p6='?' (DbType = Int32), @p7='?' (DbType = Guid), @p8='?' (DbType = DateTime), @p9='?' (DbType = Guid), @p10='?', @p11='?' (DbType = DateTime), @p12='?', @p13='?' (DbType = DateTime), @p14='?', @p15='?', @p16='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO shift_signups ("Id", "MemberId", "ShiftId", "SignedUpAt", "TenantId") VALUES (@p0, @p1, @p2, @p3, @p4); INSERT INTO shifts ("Id", "Capacity", "ClubId", "CreatedAt", "CreatedById", "Description", "EndTime", "Location", "StartTime", "TenantId", "Title", "UpdatedAt") VALUES (@p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14, @p15, @p16) RETURNING xmin; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_club_id ON work_items ("ClubId"); info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/clubs/current info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_status ON work_items ("Status"); info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/shifts/4841ad54-3b50-4978-b45b-63a34b4118e9 info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_tenant_id ON work_items ("TenantId"); [xUnit.net 00:00:04.70] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.70] Expected: OK [xUnit.net 00:00:04.70] Actual: Forbidden [xUnit.net 00:00:04.70] Stack Trace: [xUnit.net 00:00:04.70] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Shifts/ShiftCrudTests.cs(198,0): at WorkClub.Tests.Integration.Shifts.ShiftCrudTests.GetShift_ById_ReturnsShiftWithSignupList() [xUnit.net 00:00:04.70] --- End of stack trace from previous location --- [xUnit.net 00:00:04.70] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.70] Expected: OK [xUnit.net 00:00:04.70] Actual: Forbidden [xUnit.net 00:00:04.70] Stack Trace: [xUnit.net 00:00:04.70] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Clubs/ClubEndpointsTests.cs(165,0): at WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsCurrent_ReturnsCurrentTenantClub() [xUnit.net 00:00:04.70] --- End of stack trace from previous location --- [testcontainers.org 00:00:04.59] Docker container 74f6b6765d10 ready info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."MemberId", s."ShiftId", s."SignedUpAt", s."TenantId" FROM shift_signups AS s info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT c."Id", c."CreatedAt", c."Description", c."Name", c."SportType", c."TenantId", c."UpdatedAt" FROM clubs AS c info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT m."Id", m."ClubId", m."CreatedAt", m."DisplayName", m."Email", m."ExternalUserId", m."Role", m."TenantId", m."UpdatedAt" FROM members AS m warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."Capacity", s."ClubId", s."CreatedAt", s."CreatedById", s."Description", s."EndTime", s."Location", s.xmin, s."StartTime", s."TenantId", s."Title", s."UpdatedAt" FROM shifts AS s warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (4ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = Guid), @p4='?' (DbType = Guid)], CommandType='Text', CommandTimeout='30'] DELETE FROM clubs WHERE "Id" = @p0; DELETE FROM clubs WHERE "Id" = @p1; DELETE FROM members WHERE "Id" = @p2; DELETE FROM members WHERE "Id" = @p3; DELETE FROM members WHERE "Id" = @p4; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Object)], CommandType='Text', CommandTimeout='30'] DELETE FROM shift_signups WHERE "Id" = @p0; DELETE FROM shifts WHERE "Id" = @p1 AND xmin = @p2; warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (3ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = DateTime), @p2='?', @p3='?', @p4='?' (DbType = Int32), @p5='?', @p6='?' (DbType = DateTime), @p7='?' (DbType = Guid), @p8='?' (DbType = DateTime), @p9='?', @p10='?', @p11='?' (DbType = Int32), @p12='?', @p13='?' (DbType = DateTime), @p14='?' (DbType = Guid), @p15='?' (DbType = Guid), @p16='?' (DbType = DateTime), @p17='?', @p18='?', @p19='?', @p20='?' (DbType = Int32), @p21='?', @p22='?' (DbType = DateTime), @p23='?' (DbType = Guid), @p24='?' (DbType = Guid), @p25='?' (DbType = DateTime), @p26='?', @p27='?', @p28='?', @p29='?' (DbType = Int32), @p30='?', @p31='?' (DbType = DateTime), @p32='?' (DbType = Guid), @p33='?' (DbType = Guid), @p34='?' (DbType = DateTime), @p35='?', @p36='?', @p37='?', @p38='?' (DbType = Int32), @p39='?', @p40='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6); INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p7, @p8, @p9, @p10, @p11, @p12, @p13); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p14, @p15, @p16, @p17, @p18, @p19, @p20, @p21, @p22); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p23, @p24, @p25, @p26, @p27, @p28, @p29, @p30, @p31); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p32, @p33, @p34, @p35, @p36, @p37, @p38, @p39, @p40); warn: Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware[3] Failed to determine the https port for redirect. info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/members info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Int32), @p2='?' (DbType = Guid), @p3='?' (DbType = DateTime), @p4='?' (DbType = Guid), @p5='?', @p6='?' (DbType = DateTime), @p7='?', @p8='?' (DbType = DateTime), @p9='?', @p10='?', @p11='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO shifts ("Id", "Capacity", "ClubId", "CreatedAt", "CreatedById", "Description", "EndTime", "Location", "StartTime", "TenantId", "Title", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11) RETURNING xmin; info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/clubs/current info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/shifts/fbb0ab26-5786-4e38-9626-9365bbcd993b/signup [xUnit.net 00:00:04.73] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.73] Expected: OK [xUnit.net 00:00:04.73] Actual: Forbidden [xUnit.net 00:00:04.73] Stack Trace: [xUnit.net 00:00:04.73] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Members/MemberEndpointsTests.cs(138,0): at WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMembers_DifferentTenant_ReturnsDifferentMembers() [xUnit.net 00:00:04.73] --- End of stack trace from previous location --- [xUnit.net 00:00:04.73] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.73] Expected: OK [xUnit.net 00:00:04.73] Actual: Forbidden [xUnit.net 00:00:04.73] Stack Trace: [xUnit.net 00:00:04.73] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Shifts/ShiftCrudTests.cs(384,0): at WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_WithCapacity_ReturnsOk() [xUnit.net 00:00:04.73] --- End of stack trace from previous location --- info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT m."Id", m."ClubId", m."CreatedAt", m."DisplayName", m."Email", m."ExternalUserId", m."Role", m."TenantId", m."UpdatedAt" FROM members AS m [xUnit.net 00:00:04.73] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.73] Expected: OK [xUnit.net 00:00:04.73] Actual: Forbidden [xUnit.net 00:00:04.73] Stack Trace: [xUnit.net 00:00:04.73] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Clubs/ClubEndpointsTests.cs(188,0): at WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsCurrent_DifferentTenant_ReturnsDifferentClub() [xUnit.net 00:00:04.73] --- End of stack trace from previous location --- info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."MemberId", s."ShiftId", s."SignedUpAt", s."TenantId" FROM shift_signups AS s info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT c."Id", c."CreatedAt", c."Description", c."Name", c."SportType", c."TenantId", c."UpdatedAt" FROM clubs AS c warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT c."Id", c."CreatedAt", c."Description", c."Name", c."SportType", c."TenantId", c."UpdatedAt" FROM clubs AS c info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."Capacity", s."ClubId", s."CreatedAt", s."CreatedById", s."Description", s."EndTime", s."Location", s.xmin, s."StartTime", s."TenantId", s."Title", s."UpdatedAt" FROM shifts AS s info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT m."Id", m."ClubId", m."CreatedAt", m."DisplayName", m."Email", m."ExternalUserId", m."Role", m."TenantId", m."UpdatedAt" FROM members AS m warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = Guid), @p4='?' (DbType = Guid), @p5='?' (DbType = Guid)], CommandType='Text', CommandTimeout='30'] DELETE FROM clubs WHERE "Id" = @p0; DELETE FROM clubs WHERE "Id" = @p1; DELETE FROM members WHERE "Id" = @p2; DELETE FROM members WHERE "Id" = @p3; DELETE FROM members WHERE "Id" = @p4; DELETE FROM members WHERE "Id" = @p5; info: Microsoft.Hosting.Lifetime[0] Application started. Press Ctrl+C to shut down. info: Microsoft.Hosting.Lifetime[0] Hosting environment: Test info: Microsoft.Hosting.Lifetime[0] Content root path: /Users/mastermito/Dev/opencode/backend/WorkClub.Api info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = Guid), @p4='?' (DbType = Guid)], CommandType='Text', CommandTimeout='30'] DELETE FROM clubs WHERE "Id" = @p0; DELETE FROM clubs WHERE "Id" = @p1; DELETE FROM members WHERE "Id" = @p2; DELETE FROM members WHERE "Id" = @p3; DELETE FROM members WHERE "Id" = @p4; warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Object)], CommandType='Text', CommandTimeout='30'] DELETE FROM shifts WHERE "Id" = @p0 AND xmin = @p1; warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = DateTime), @p2='?', @p3='?', @p4='?' (DbType = Int32), @p5='?', @p6='?' (DbType = DateTime), @p7='?' (DbType = Guid), @p8='?' (DbType = DateTime), @p9='?', @p10='?', @p11='?' (DbType = Int32), @p12='?', @p13='?' (DbType = DateTime), @p14='?' (DbType = Guid), @p15='?' (DbType = Guid), @p16='?' (DbType = DateTime), @p17='?', @p18='?', @p19='?', @p20='?' (DbType = Int32), @p21='?', @p22='?' (DbType = DateTime), @p23='?' (DbType = Guid), @p24='?' (DbType = Guid), @p25='?' (DbType = DateTime), @p26='?', @p27='?', @p28='?', @p29='?' (DbType = Int32), @p30='?', @p31='?' (DbType = DateTime), @p32='?' (DbType = Guid), @p33='?' (DbType = Guid), @p34='?' (DbType = DateTime), @p35='?', @p36='?', @p37='?', @p38='?' (DbType = Int32), @p39='?', @p40='?' (DbType = DateTime), @p41='?' (DbType = Guid), @p42='?' (DbType = Guid), @p43='?' (DbType = DateTime), @p44='?', @p45='?', @p46='?', @p47='?' (DbType = Int32), @p48='?', @p49='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6); INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p7, @p8, @p9, @p10, @p11, @p12, @p13); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p14, @p15, @p16, @p17, @p18, @p19, @p20, @p21, @p22); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p23, @p24, @p25, @p26, @p27, @p28, @p29, @p30, @p31); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p32, @p33, @p34, @p35, @p36, @p37, @p38, @p39, @p40); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p41, @p42, @p43, @p44, @p45, @p46, @p47, @p48, @p49); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Int32), @p2='?' (DbType = Guid), @p3='?' (DbType = DateTime), @p4='?' (DbType = Guid), @p5='?', @p6='?' (DbType = DateTime), @p7='?', @p8='?' (DbType = DateTime), @p9='?', @p10='?', @p11='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO shifts ("Id", "Capacity", "ClubId", "CreatedAt", "CreatedById", "Description", "EndTime", "Location", "StartTime", "TenantId", "Title", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11) RETURNING xmin; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (3ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = DateTime), @p2='?', @p3='?', @p4='?' (DbType = Int32), @p5='?', @p6='?' (DbType = DateTime), @p7='?' (DbType = Guid), @p8='?' (DbType = DateTime), @p9='?', @p10='?', @p11='?' (DbType = Int32), @p12='?', @p13='?' (DbType = DateTime), @p14='?' (DbType = Guid), @p15='?' (DbType = Guid), @p16='?' (DbType = DateTime), @p17='?', @p18='?', @p19='?', @p20='?' (DbType = Int32), @p21='?', @p22='?' (DbType = DateTime), @p23='?' (DbType = Guid), @p24='?' (DbType = Guid), @p25='?' (DbType = DateTime), @p26='?', @p27='?', @p28='?', @p29='?' (DbType = Int32), @p30='?', @p31='?' (DbType = DateTime), @p32='?' (DbType = Guid), @p33='?' (DbType = Guid), @p34='?' (DbType = DateTime), @p35='?', @p36='?', @p37='?', @p38='?' (DbType = Int32), @p39='?', @p40='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6); INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p7, @p8, @p9, @p10, @p11, @p12, @p13); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p14, @p15, @p16, @p17, @p18, @p19, @p20, @p21, @p22); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p23, @p24, @p25, @p26, @p27, @p28, @p29, @p30, @p31); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p32, @p33, @p34, @p35, @p36, @p37, @p38, @p39, @p40); info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/shifts/ea88f436-b076-4b1b-8a18-864da7af87bd info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT w."Id", w."AssigneeId", w."ClubId", w."CreatedAt", w."CreatedById", w."Description", w."DueDate", w.xmin, w."Status", w."TenantId", w."Title", w."UpdatedAt" FROM work_items AS w warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges [xUnit.net 00:00:04.74] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.74] Expected: NoContent [xUnit.net 00:00:04.74] Actual: Forbidden [xUnit.net 00:00:04.74] Stack Trace: [xUnit.net 00:00:04.74] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Shifts/ShiftCrudTests.cs(296,0): at WorkClub.Tests.Integration.Shifts.ShiftCrudTests.DeleteShift_AsAdmin_DeletesShift() [xUnit.net 00:00:04.74] --- End of stack trace from previous location --- info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/clubs/me info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/members info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."MemberId", s."ShiftId", s."SignedUpAt", s."TenantId" FROM shift_signups AS s info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."Capacity", s."ClubId", s."CreatedAt", s."CreatedById", s."Description", s."EndTime", s."Location", s.xmin, s."StartTime", s."TenantId", s."Title", s."UpdatedAt" FROM shifts AS s warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges [xUnit.net 00:00:04.75] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.75] Expected: OK [xUnit.net 00:00:04.75] Actual: Forbidden [xUnit.net 00:00:04.75] Stack Trace: [xUnit.net 00:00:04.75] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Clubs/ClubEndpointsTests.cs(143,0): at WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsMe_ForManagerUser_ReturnsOnlyOneClub() [xUnit.net 00:00:04.75] --- End of stack trace from previous location --- info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Object)], CommandType='Text', CommandTimeout='30'] DELETE FROM shifts WHERE "Id" = @p0 AND xmin = @p1; warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT m."Id", m."ClubId", m."CreatedAt", m."DisplayName", m."Email", m."ExternalUserId", m."Role", m."TenantId", m."UpdatedAt" FROM members AS m info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT c."Id", c."CreatedAt", c."Description", c."Name", c."SportType", c."TenantId", c."UpdatedAt" FROM clubs AS c warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (4ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Int32), @p2='?' (DbType = Guid), @p3='?' (DbType = DateTime), @p4='?' (DbType = Guid), @p5='?', @p6='?' (DbType = DateTime), @p7='?', @p8='?' (DbType = DateTime), @p9='?', @p10='?', @p11='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO shifts ("Id", "Capacity", "ClubId", "CreatedAt", "CreatedById", "Description", "EndTime", "Location", "StartTime", "TenantId", "Title", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11) RETURNING xmin; [testcontainers.org 00:00:04.64] Delete Docker container 3f19b3199cde info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = Guid), @p4='?' (DbType = Guid), @p5='?' (DbType = Guid)], CommandType='Text', CommandTimeout='30'] DELETE FROM clubs WHERE "Id" = @p0; DELETE FROM clubs WHERE "Id" = @p1; DELETE FROM members WHERE "Id" = @p2; DELETE FROM members WHERE "Id" = @p3; DELETE FROM members WHERE "Id" = @p4; DELETE FROM members WHERE "Id" = @p5; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT 1 warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT CASE WHEN COUNT(*) = 0 THEN FALSE ELSE TRUE END FROM pg_class AS cls JOIN pg_namespace AS ns ON ns.oid = cls.relnamespace WHERE cls.relkind IN ('r', 'v', 'm', 'f', 'p') AND ns.nspname NOT IN ('pg_catalog', 'information_schema') AND -- Exclude tables which are members of PG extensions NOT EXISTS ( SELECT 1 FROM pg_depend WHERE classid=( SELECT cls.oid FROM pg_class AS cls JOIN pg_namespace AS ns ON ns.oid = cls.relnamespace WHERE relname='pg_class' AND ns.nspname='pg_catalog' ) AND objid=cls.oid AND deptype IN ('e', 'x') ) info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = DateTime), @p2='?', @p3='?', @p4='?' (DbType = Int32), @p5='?', @p6='?' (DbType = DateTime), @p7='?' (DbType = Guid), @p8='?' (DbType = DateTime), @p9='?', @p10='?', @p11='?' (DbType = Int32), @p12='?', @p13='?' (DbType = DateTime), @p14='?' (DbType = Guid), @p15='?' (DbType = Guid), @p16='?' (DbType = DateTime), @p17='?', @p18='?', @p19='?', @p20='?' (DbType = Int32), @p21='?', @p22='?' (DbType = DateTime), @p23='?' (DbType = Guid), @p24='?' (DbType = Guid), @p25='?' (DbType = DateTime), @p26='?', @p27='?', @p28='?', @p29='?' (DbType = Int32), @p30='?', @p31='?' (DbType = DateTime), @p32='?' (DbType = Guid), @p33='?' (DbType = Guid), @p34='?' (DbType = DateTime), @p35='?', @p36='?', @p37='?', @p38='?' (DbType = Int32), @p39='?', @p40='?' (DbType = DateTime), @p41='?' (DbType = Guid), @p42='?' (DbType = Guid), @p43='?' (DbType = DateTime), @p44='?', @p45='?', @p46='?', @p47='?' (DbType = Int32), @p48='?', @p49='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6); INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p7, @p8, @p9, @p10, @p11, @p12, @p13); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p14, @p15, @p16, @p17, @p18, @p19, @p20, @p21, @p22); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p23, @p24, @p25, @p26, @p27, @p28, @p29, @p30, @p31); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p32, @p33, @p34, @p35, @p36, @p37, @p38, @p39, @p40); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p41, @p42, @p43, @p44, @p45, @p46, @p47, @p48, @p49); info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/shifts/029528af-44b9-40f2-904f-83bb77bf58f2 [xUnit.net 00:00:04.76] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.76] Expected: OK [xUnit.net 00:00:04.76] Actual: Forbidden [xUnit.net 00:00:04.76] Stack Trace: [xUnit.net 00:00:04.76] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Shifts/ShiftCrudTests.cs(251,0): at WorkClub.Tests.Integration.Shifts.ShiftCrudTests.UpdateShift_AsManager_UpdatesShift() [xUnit.net 00:00:04.76] --- End of stack trace from previous location --- [testcontainers.org 00:00:04.65] Docker container 2da801c80b71 ready info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."MemberId", s."ShiftId", s."SignedUpAt", s."TenantId" FROM shift_signups AS s info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = DateTime), @p4='?' (DbType = Guid), @p5='?', @p6='?' (DbType = DateTime), @p7='?' (DbType = Int32), @p8='?', @p9='?', @p10='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO work_items ("Id", "AssigneeId", "ClubId", "CreatedAt", "CreatedById", "Description", "DueDate", "Status", "TenantId", "Title", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10) RETURNING xmin; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."Capacity", s."ClubId", s."CreatedAt", s."CreatedById", s."Description", s."EndTime", s."Location", s.xmin, s."StartTime", s."TenantId", s."Title", s."UpdatedAt" FROM shifts AS s warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (5ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Object)], CommandType='Text', CommandTimeout='30'] DELETE FROM shifts WHERE "Id" = @p0 AND xmin = @p1; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (8ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE clubs ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "Name" character varying(200) NOT NULL, "SportType" integer NOT NULL, "Description" character varying(2000), "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_clubs" PRIMARY KEY ("Id") ); info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/shifts info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE members ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "ExternalUserId" character varying(200) NOT NULL, "DisplayName" character varying(200) NOT NULL, "Email" character varying(200) NOT NULL, "Role" integer NOT NULL, "ClubId" uuid NOT NULL, "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_members" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE shift_signups ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "ShiftId" uuid NOT NULL, "MemberId" uuid NOT NULL, "SignedUpAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_shift_signups" PRIMARY KEY ("Id") ); [xUnit.net 00:00:04.77] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.77] Expected: Created [xUnit.net 00:00:04.77] Actual: Forbidden [xUnit.net 00:00:04.77] Stack Trace: [xUnit.net 00:00:04.77] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Shifts/ShiftCrudTests.cs(53,0): at WorkClub.Tests.Integration.Shifts.ShiftCrudTests.CreateShift_AsManager_ReturnsCreated() [xUnit.net 00:00:04.77] --- End of stack trace from previous location --- info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE shifts ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "Title" character varying(200) NOT NULL, "Description" character varying(2000), "Location" character varying(500), "StartTime" timestamp with time zone NOT NULL, "EndTime" timestamp with time zone NOT NULL, "Capacity" integer NOT NULL DEFAULT 1, "ClubId" uuid NOT NULL, "CreatedById" uuid NOT NULL, "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_shifts" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."MemberId", s."ShiftId", s."SignedUpAt", s."TenantId" FROM shift_signups AS s info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE TABLE work_items ( "Id" uuid NOT NULL, "TenantId" character varying(200) NOT NULL, "Title" character varying(200) NOT NULL, "Description" character varying(2000), "Status" integer NOT NULL, "AssigneeId" uuid, "CreatedById" uuid NOT NULL, "ClubId" uuid NOT NULL, "DueDate" timestamp with time zone, "CreatedAt" timestamp with time zone NOT NULL, "UpdatedAt" timestamp with time zone NOT NULL, CONSTRAINT "PK_work_items" PRIMARY KEY ("Id") ); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."Capacity", s."ClubId", s."CreatedAt", s."CreatedById", s."Description", s."EndTime", s."Location", s.xmin, s."StartTime", s."TenantId", s."Title", s."UpdatedAt" FROM shifts AS s warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_clubs_tenant_id ON clubs ("TenantId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (5ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_members_club_id ON members ("ClubId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_members_tenant_external_user ON members ("TenantId", "ExternalUserId"); [xUnit.net 00:00:04.79] Npgsql.PostgresException : 28P01: password authentication failed for user "app_admin" [xUnit.net 00:00:04.79] Stack Trace: [xUnit.net 00:00:04.79] at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) [xUnit.net 00:00:04.79] at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) [xUnit.net 00:00:04.79] at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:04.79] at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:04.79] at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:04.79] at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:04.79] at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:04.79] at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:04.79] at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:04.79] at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:04.79] /_/Dapper/SqlMapper.Async.cs(661,0): at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) [xUnit.net 00:00:04.79] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs(32,0): at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() [xUnit.net 00:00:04.79] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs(33,0): at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_members_tenant_id ON members ("TenantId"); info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/shifts info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shift_signups_shift_id ON shift_signups ("ShiftId"); warn: Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware[3] Failed to determine the https port for redirect. info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE UNIQUE INDEX ix_shift_signups_shift_member ON shift_signups ("ShiftId", "MemberId"); info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/tasks/e580fd80-1c75-4593-9774-65283d90f241 info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shift_signups_tenant_id ON shift_signups ("TenantId"); [xUnit.net 00:00:04.79] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.79] Expected: UnprocessableEntity [xUnit.net 00:00:04.79] Actual: Forbidden [xUnit.net 00:00:04.79] Stack Trace: [xUnit.net 00:00:04.79] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Tasks/TaskCrudTests.cs(335,0): at WorkClub.Tests.Integration.Tasks.TaskCrudTests.UpdateTask_InvalidTransition_ReturnsUnprocessableEntity() [xUnit.net 00:00:04.79] --- End of stack trace from previous location --- info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."MemberId", s."ShiftId", s."SignedUpAt", s."TenantId" FROM shift_signups AS s info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shifts_club_id ON shifts ("ClubId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."Capacity", s."ClubId", s."CreatedAt", s."CreatedById", s."Description", s."EndTime", s."Location", s.xmin, s."StartTime", s."TenantId", s."Title", s."UpdatedAt" FROM shifts AS s warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shifts_start_time ON shifts ("StartTime"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_shifts_tenant_id ON shifts ("TenantId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Int32), @p2='?' (DbType = Guid), @p3='?' (DbType = DateTime), @p4='?' (DbType = Guid), @p5='?', @p6='?' (DbType = DateTime), @p7='?', @p8='?' (DbType = DateTime), @p9='?', @p10='?', @p11='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO shifts ("Id", "Capacity", "ClubId", "CreatedAt", "CreatedById", "Description", "EndTime", "Location", "StartTime", "TenantId", "Title", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11) RETURNING xmin; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT w."Id", w."AssigneeId", w."ClubId", w."CreatedAt", w."CreatedById", w."Description", w."DueDate", w.xmin, w."Status", w."TenantId", w."Title", w."UpdatedAt" FROM work_items AS w info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_assignee_id ON work_items ("AssigneeId"); warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_club_id ON work_items ("ClubId"); info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/shifts/1eae48e1-67ad-4e51-806e-41716a86b4c3 info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_status ON work_items ("Status"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE INDEX ix_work_items_tenant_id ON work_items ("TenantId"); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (4ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Object)], CommandType='Text', CommandTimeout='30'] DELETE FROM work_items WHERE "Id" = @p0 AND xmin = @p1; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."MemberId", s."ShiftId", s."SignedUpAt", s."TenantId" FROM shift_signups AS s info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."Capacity", s."ClubId", s."CreatedAt", s."CreatedById", s."Description", s."EndTime", s."Location", s.xmin, s."StartTime", s."TenantId", s."Title", s."UpdatedAt" FROM shifts AS s warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (0ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Object)], CommandType='Text', CommandTimeout='30'] DELETE FROM shifts WHERE "Id" = @p0 AND xmin = @p1; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT m."Id", m."ClubId", m."CreatedAt", m."DisplayName", m."Email", m."ExternalUserId", m."Role", m."TenantId", m."UpdatedAt" FROM members AS m WHERE m."Email" = 'manager@test.com' LIMIT 1 warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = DateTime), @p4='?' (DbType = Guid), @p5='?', @p6='?' (DbType = DateTime), @p7='?' (DbType = Int32), @p8='?', @p9='?', @p10='?' (DbType = DateTime), @p11='?' (DbType = Guid), @p12='?' (DbType = Guid), @p13='?' (DbType = Guid), @p14='?' (DbType = DateTime), @p15='?' (DbType = Guid), @p16='?', @p17='?' (DbType = DateTime), @p18='?' (DbType = Int32), @p19='?', @p20='?', @p21='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO work_items ("Id", "AssigneeId", "ClubId", "CreatedAt", "CreatedById", "Description", "DueDate", "Status", "TenantId", "Title", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10) RETURNING xmin; INSERT INTO work_items ("Id", "AssigneeId", "ClubId", "CreatedAt", "CreatedById", "Description", "DueDate", "Status", "TenantId", "Title", "UpdatedAt") VALUES (@p11, @p12, @p13, @p14, @p15, @p16, @p17, @p18, @p19, @p20, @p21) RETURNING xmin; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = DateTime), @p4='?', @p5='?' (DbType = Guid), @p6='?' (DbType = Int32), @p7='?' (DbType = Guid), @p8='?' (DbType = DateTime), @p9='?' (DbType = Guid), @p10='?', @p11='?' (DbType = DateTime), @p12='?', @p13='?' (DbType = DateTime), @p14='?', @p15='?', @p16='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO shift_signups ("Id", "MemberId", "ShiftId", "SignedUpAt", "TenantId") VALUES (@p0, @p1, @p2, @p3, @p4); INSERT INTO shifts ("Id", "Capacity", "ClubId", "CreatedAt", "CreatedById", "Description", "EndTime", "Location", "StartTime", "TenantId", "Title", "UpdatedAt") VALUES (@p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14, @p15, @p16) RETURNING xmin; [xUnit.net 00:00:04.81] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.81] Expected: OK [xUnit.net 00:00:04.81] Actual: Forbidden [xUnit.net 00:00:04.81] Stack Trace: [xUnit.net 00:00:04.81] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Tasks/TaskCrudTests.cs(195,0): at WorkClub.Tests.Integration.Tasks.TaskCrudTests.ListTasks_FilterByStatus_ReturnsFilteredResults() [xUnit.net 00:00:04.81] --- End of stack trace from previous location --- [xUnit.net 00:00:04.81] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.81] Expected: OK [xUnit.net 00:00:04.81] Actual: Forbidden [xUnit.net 00:00:04.81] Stack Trace: [xUnit.net 00:00:04.81] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Members/MemberEndpointsTests.cs(175,0): at WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMemberById_ExistingMember_ReturnsMemberDetail() [xUnit.net 00:00:04.81] --- End of stack trace from previous location --- [xUnit.net 00:00:04.81] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.81] Expected: Conflict [xUnit.net 00:00:04.81] Actual: Forbidden [xUnit.net 00:00:04.81] Stack Trace: [xUnit.net 00:00:04.81] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Shifts/ShiftCrudTests.cs(533,0): at WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_Duplicate_ReturnsConflict() [xUnit.net 00:00:04.81] --- End of stack trace from previous location --- info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/tasks info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/members/84b72cfe-e9de-48e9-935a-14fccf83c645 info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/shifts/45de278d-0ec1-4d44-8698-bc4944b68f2c/signup info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT m."Id", m."ClubId", m."CreatedAt", m."DisplayName", m."Email", m."ExternalUserId", m."Role", m."TenantId", m."UpdatedAt" FROM members AS m info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT w."Id", w."AssigneeId", w."ClubId", w."CreatedAt", w."CreatedById", w."Description", w."DueDate", w.xmin, w."Status", w."TenantId", w."Title", w."UpdatedAt" FROM work_items AS w warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."MemberId", s."ShiftId", s."SignedUpAt", s."TenantId" FROM shift_signups AS s info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT c."Id", c."CreatedAt", c."Description", c."Name", c."SportType", c."TenantId", c."UpdatedAt" FROM clubs AS c warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Object), @p2='?' (DbType = Guid), @p3='?' (DbType = Object)], CommandType='Text', CommandTimeout='30'] DELETE FROM work_items WHERE "Id" = @p0 AND xmin = @p1; DELETE FROM work_items WHERE "Id" = @p2 AND xmin = @p3; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."Capacity", s."ClubId", s."CreatedAt", s."CreatedById", s."Description", s."EndTime", s."Location", s.xmin, s."StartTime", s."TenantId", s."Title", s."UpdatedAt" FROM shifts AS s warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = Guid), @p4='?' (DbType = Guid), @p5='?' (DbType = Guid)], CommandType='Text', CommandTimeout='30'] DELETE FROM clubs WHERE "Id" = @p0; DELETE FROM clubs WHERE "Id" = @p1; DELETE FROM members WHERE "Id" = @p2; DELETE FROM members WHERE "Id" = @p3; DELETE FROM members WHERE "Id" = @p4; DELETE FROM members WHERE "Id" = @p5; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (0ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Object)], CommandType='Text', CommandTimeout='30'] DELETE FROM shift_signups WHERE "Id" = @p0; DELETE FROM shifts WHERE "Id" = @p1 AND xmin = @p2; warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = DateTime), @p4='?', @p5='?' (DbType = Guid), @p6='?' (DbType = Int32), @p7='?' (DbType = Guid), @p8='?' (DbType = DateTime), @p9='?' (DbType = Guid), @p10='?', @p11='?' (DbType = DateTime), @p12='?', @p13='?' (DbType = DateTime), @p14='?', @p15='?', @p16='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO shift_signups ("Id", "MemberId", "ShiftId", "SignedUpAt", "TenantId") VALUES (@p0, @p1, @p2, @p3, @p4); INSERT INTO shifts ("Id", "Capacity", "ClubId", "CreatedAt", "CreatedById", "Description", "EndTime", "Location", "StartTime", "TenantId", "Title", "UpdatedAt") VALUES (@p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14, @p15, @p16) RETURNING xmin; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = DateTime), @p2='?', @p3='?', @p4='?' (DbType = Int32), @p5='?', @p6='?' (DbType = DateTime), @p7='?' (DbType = Guid), @p8='?' (DbType = DateTime), @p9='?', @p10='?', @p11='?' (DbType = Int32), @p12='?', @p13='?' (DbType = DateTime), @p14='?' (DbType = Guid), @p15='?' (DbType = Guid), @p16='?' (DbType = DateTime), @p17='?', @p18='?', @p19='?', @p20='?' (DbType = Int32), @p21='?', @p22='?' (DbType = DateTime), @p23='?' (DbType = Guid), @p24='?' (DbType = Guid), @p25='?' (DbType = DateTime), @p26='?', @p27='?', @p28='?', @p29='?' (DbType = Int32), @p30='?', @p31='?' (DbType = DateTime), @p32='?' (DbType = Guid), @p33='?' (DbType = Guid), @p34='?' (DbType = DateTime), @p35='?', @p36='?', @p37='?', @p38='?' (DbType = Int32), @p39='?', @p40='?' (DbType = DateTime), @p41='?' (DbType = Guid), @p42='?' (DbType = Guid), @p43='?' (DbType = DateTime), @p44='?', @p45='?', @p46='?', @p47='?' (DbType = Int32), @p48='?', @p49='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6); INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p7, @p8, @p9, @p10, @p11, @p12, @p13); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p14, @p15, @p16, @p17, @p18, @p19, @p20, @p21, @p22); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p23, @p24, @p25, @p26, @p27, @p28, @p29, @p30, @p31); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p32, @p33, @p34, @p35, @p36, @p37, @p38, @p39, @p40); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p41, @p42, @p43, @p44, @p45, @p46, @p47, @p48, @p49); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = DateTime), @p4='?' (DbType = Guid), @p5='?', @p6='?' (DbType = DateTime), @p7='?' (DbType = Int32), @p8='?', @p9='?', @p10='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO work_items ("Id", "AssigneeId", "ClubId", "CreatedAt", "CreatedById", "Description", "DueDate", "Status", "TenantId", "Title", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10) RETURNING xmin; info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/members/me info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/shifts/a3121a3f-4d5f-4ccc-8caf-260a949c166b/signup [xUnit.net 00:00:04.81] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.81] Expected: OK [xUnit.net 00:00:04.81] Actual: Forbidden [xUnit.net 00:00:04.81] Stack Trace: [xUnit.net 00:00:04.81] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Shifts/ShiftCrudTests.cs(583,0): at WorkClub.Tests.Integration.Shifts.ShiftCrudTests.CancelSignup_BeforeShift_ReturnsOk() [xUnit.net 00:00:04.81] --- End of stack trace from previous location --- info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/tasks/632cf3ef-efb3-46d1-9d20-87abdde6f365 [xUnit.net 00:00:04.81] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.81] Expected: OK [xUnit.net 00:00:04.81] Actual: Forbidden [xUnit.net 00:00:04.81] Stack Trace: [xUnit.net 00:00:04.81] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Members/MemberEndpointsTests.cs(234,0): at WorkClub.Tests.Integration.Members.MemberEndpointsTests.MemberAutoSync_NewUser_CreatesMembeRecordFromJwt() [xUnit.net 00:00:04.81] --- End of stack trace from previous location --- info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT m."Id", m."ClubId", m."CreatedAt", m."DisplayName", m."Email", m."ExternalUserId", m."Role", m."TenantId", m."UpdatedAt" FROM members AS m info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."MemberId", s."ShiftId", s."SignedUpAt", s."TenantId" FROM shift_signups AS s [xUnit.net 00:00:04.82] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.82] Expected: OK [xUnit.net 00:00:04.82] Actual: Forbidden [xUnit.net 00:00:04.82] Stack Trace: [xUnit.net 00:00:04.82] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Tasks/TaskCrudTests.cs(288,0): at WorkClub.Tests.Integration.Tasks.TaskCrudTests.UpdateTask_ValidTransition_UpdatesTask() [xUnit.net 00:00:04.82] --- End of stack trace from previous location --- info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT c."Id", c."CreatedAt", c."Description", c."Name", c."SportType", c."TenantId", c."UpdatedAt" FROM clubs AS c info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."Capacity", s."ClubId", s."CreatedAt", s."CreatedById", s."Description", s."EndTime", s."Location", s.xmin, s."StartTime", s."TenantId", s."Title", s."UpdatedAt" FROM shifts AS s warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT w."Id", w."AssigneeId", w."ClubId", w."CreatedAt", w."CreatedById", w."Description", w."DueDate", w.xmin, w."Status", w."TenantId", w."Title", w."UpdatedAt" FROM work_items AS w warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Object)], CommandType='Text', CommandTimeout='30'] DELETE FROM work_items WHERE "Id" = @p0 AND xmin = @p1; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Object)], CommandType='Text', CommandTimeout='30'] DELETE FROM shift_signups WHERE "Id" = @p0; DELETE FROM shifts WHERE "Id" = @p1 AND xmin = @p2; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = Guid), @p4='?' (DbType = Guid), @p5='?' (DbType = Guid)], CommandType='Text', CommandTimeout='30'] DELETE FROM clubs WHERE "Id" = @p0; DELETE FROM clubs WHERE "Id" = @p1; DELETE FROM members WHERE "Id" = @p2; DELETE FROM members WHERE "Id" = @p3; DELETE FROM members WHERE "Id" = @p4; DELETE FROM members WHERE "Id" = @p5; warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/tasks info: Microsoft.Hosting.Lifetime[0] Application started. Press Ctrl+C to shut down. info: Microsoft.Hosting.Lifetime[0] Hosting environment: Test info: Microsoft.Hosting.Lifetime[0] Content root path: /Users/mastermito/Dev/opencode/backend/WorkClub.Api warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = DateTime), @p2='?', @p3='?', @p4='?' (DbType = Int32), @p5='?', @p6='?' (DbType = DateTime), @p7='?' (DbType = Guid), @p8='?' (DbType = DateTime), @p9='?', @p10='?', @p11='?' (DbType = Int32), @p12='?', @p13='?' (DbType = DateTime), @p14='?' (DbType = Guid), @p15='?' (DbType = Guid), @p16='?' (DbType = DateTime), @p17='?', @p18='?', @p19='?', @p20='?' (DbType = Int32), @p21='?', @p22='?' (DbType = DateTime), @p23='?' (DbType = Guid), @p24='?' (DbType = Guid), @p25='?' (DbType = DateTime), @p26='?', @p27='?', @p28='?', @p29='?' (DbType = Int32), @p30='?', @p31='?' (DbType = DateTime), @p32='?' (DbType = Guid), @p33='?' (DbType = Guid), @p34='?' (DbType = DateTime), @p35='?', @p36='?', @p37='?', @p38='?' (DbType = Int32), @p39='?', @p40='?' (DbType = DateTime), @p41='?' (DbType = Guid), @p42='?' (DbType = Guid), @p43='?' (DbType = DateTime), @p44='?', @p45='?', @p46='?', @p47='?' (DbType = Int32), @p48='?', @p49='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6); INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p7, @p8, @p9, @p10, @p11, @p12, @p13); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p14, @p15, @p16, @p17, @p18, @p19, @p20, @p21, @p22); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p23, @p24, @p25, @p26, @p27, @p28, @p29, @p30, @p31); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p32, @p33, @p34, @p35, @p36, @p37, @p38, @p39, @p40); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p41, @p42, @p43, @p44, @p45, @p46, @p47, @p48, @p49); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = DateTime), @p4='?', @p5='?' (DbType = Guid), @p6='?' (DbType = Int32), @p7='?' (DbType = Guid), @p8='?' (DbType = DateTime), @p9='?' (DbType = Guid), @p10='?', @p11='?' (DbType = DateTime), @p12='?', @p13='?' (DbType = DateTime), @p14='?', @p15='?', @p16='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO shift_signups ("Id", "MemberId", "ShiftId", "SignedUpAt", "TenantId") VALUES (@p0, @p1, @p2, @p3, @p4); INSERT INTO shifts ("Id", "Capacity", "ClubId", "CreatedAt", "CreatedById", "Description", "EndTime", "Location", "StartTime", "TenantId", "Title", "UpdatedAt") VALUES (@p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14, @p15, @p16) RETURNING xmin; [xUnit.net 00:00:04.82] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.82] Expected: Created [xUnit.net 00:00:04.82] Actual: Forbidden [xUnit.net 00:00:04.82] Stack Trace: [xUnit.net 00:00:04.82] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Tasks/TaskCrudTests.cs(50,0): at WorkClub.Tests.Integration.Tasks.TaskCrudTests.CreateTask_AsManager_ReturnsCreatedWithOpenStatus() [xUnit.net 00:00:04.82] --- End of stack trace from previous location --- info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/shifts/bbbe20c0-f12e-4ffe-8157-4e0d82a2360f/signup info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/shifts/bbbe20c0-f12e-4ffe-8157-4e0d82a2360f/signup info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT w."Id", w."AssigneeId", w."ClubId", w."CreatedAt", w."CreatedById", w."Description", w."DueDate", w.xmin, w."Status", w."TenantId", w."Title", w."UpdatedAt" FROM work_items AS w warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT m."Id", m."ClubId", m."CreatedAt", m."DisplayName", m."Email", m."ExternalUserId", m."Role", m."TenantId", m."UpdatedAt" FROM members AS m WHERE m."TenantId" = 'tenant1' LIMIT 1 warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/members/06ab41c8-10d2-4dfe-a1ea-e8b9074c2be7 [xUnit.net 00:00:04.83] Assert.Contains() Failure: Item not found in collection [xUnit.net 00:00:04.83] Collection: [Forbidden, Forbidden] [xUnit.net 00:00:04.83] Not found: OK [xUnit.net 00:00:04.83] Stack Trace: [xUnit.net 00:00:04.83] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Shifts/ShiftCrudTests.cs(650,0): at WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_ConcurrentLastSlot_HandlesRaceCondition() [xUnit.net 00:00:04.83] --- End of stack trace from previous location --- info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = DateTime), @p4='?' (DbType = Guid), @p5='?', @p6='?' (DbType = DateTime), @p7='?' (DbType = Int32), @p8='?', @p9='?', @p10='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO work_items ("Id", "AssigneeId", "ClubId", "CreatedAt", "CreatedById", "Description", "DueDate", "Status", "TenantId", "Title", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10) RETURNING xmin; [xUnit.net 00:00:04.83] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.83] Expected: NotFound [xUnit.net 00:00:04.83] Actual: Forbidden [xUnit.net 00:00:04.83] Stack Trace: [xUnit.net 00:00:04.83] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Members/MemberEndpointsTests.cs(200,0): at WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMemberById_WrongTenant_ReturnsNotFound() [xUnit.net 00:00:04.83] --- End of stack trace from previous location --- info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."MemberId", s."ShiftId", s."SignedUpAt", s."TenantId" FROM shift_signups AS s info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/tasks/76ebbed5-8d59-4dbe-a3a4-7bccaaac22b3 info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT s."Id", s."Capacity", s."ClubId", s."CreatedAt", s."CreatedById", s."Description", s."EndTime", s."Location", s.xmin, s."StartTime", s."TenantId", s."Title", s."UpdatedAt" FROM shifts AS s warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT m."Id", m."ClubId", m."CreatedAt", m."DisplayName", m."Email", m."ExternalUserId", m."Role", m."TenantId", m."UpdatedAt" FROM members AS m info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT c."Id", c."CreatedAt", c."Description", c."Name", c."SportType", c."TenantId", c."UpdatedAt" FROM clubs AS c info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Object)], CommandType='Text', CommandTimeout='30'] DELETE FROM shift_signups WHERE "Id" = @p0; DELETE FROM shifts WHERE "Id" = @p1 AND xmin = @p2; warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT w."Id", w."AssigneeId", w."ClubId", w."CreatedAt", w."CreatedById", w."Description", w."DueDate", w.xmin, w."Status", w."TenantId", w."Title", w."UpdatedAt" FROM work_items AS w warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = Guid), @p4='?' (DbType = Guid), @p5='?' (DbType = Guid)], CommandType='Text', CommandTimeout='30'] DELETE FROM clubs WHERE "Id" = @p0; DELETE FROM clubs WHERE "Id" = @p1; DELETE FROM members WHERE "Id" = @p2; DELETE FROM members WHERE "Id" = @p3; DELETE FROM members WHERE "Id" = @p4; DELETE FROM members WHERE "Id" = @p5; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = DateTime), @p4='?', @p5='?' (DbType = Guid), @p6='?' (DbType = Int32), @p7='?' (DbType = Guid), @p8='?' (DbType = DateTime), @p9='?' (DbType = Guid), @p10='?', @p11='?' (DbType = DateTime), @p12='?', @p13='?' (DbType = DateTime), @p14='?', @p15='?', @p16='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO shift_signups ("Id", "MemberId", "ShiftId", "SignedUpAt", "TenantId") VALUES (@p0, @p1, @p2, @p3, @p4); INSERT INTO shifts ("Id", "Capacity", "ClubId", "CreatedAt", "CreatedById", "Description", "EndTime", "Location", "StartTime", "TenantId", "Title", "UpdatedAt") VALUES (@p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14, @p15, @p16) RETURNING xmin; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Object)], CommandType='Text', CommandTimeout='30'] DELETE FROM work_items WHERE "Id" = @p0 AND xmin = @p1; warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges warn: Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware[3] Failed to determine the https port for redirect. info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /health/live info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (8ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = DateTime), @p4='?' (DbType = Guid), @p5='?', @p6='?' (DbType = DateTime), @p7='?' (DbType = Int32), @p8='?', @p9='?', @p10='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO work_items ("Id", "AssigneeId", "ClubId", "CreatedAt", "CreatedById", "Description", "DueDate", "Status", "TenantId", "Title", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10) RETURNING xmin; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (8ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = DateTime), @p2='?', @p3='?', @p4='?' (DbType = Int32), @p5='?', @p6='?' (DbType = DateTime), @p7='?' (DbType = Guid), @p8='?' (DbType = DateTime), @p9='?', @p10='?', @p11='?' (DbType = Int32), @p12='?', @p13='?' (DbType = DateTime), @p14='?' (DbType = Guid), @p15='?' (DbType = Guid), @p16='?' (DbType = DateTime), @p17='?', @p18='?', @p19='?', @p20='?' (DbType = Int32), @p21='?', @p22='?' (DbType = DateTime), @p23='?' (DbType = Guid), @p24='?' (DbType = Guid), @p25='?' (DbType = DateTime), @p26='?', @p27='?', @p28='?', @p29='?' (DbType = Int32), @p30='?', @p31='?' (DbType = DateTime), @p32='?' (DbType = Guid), @p33='?' (DbType = Guid), @p34='?' (DbType = DateTime), @p35='?', @p36='?', @p37='?', @p38='?' (DbType = Int32), @p39='?', @p40='?' (DbType = DateTime), @p41='?' (DbType = Guid), @p42='?' (DbType = Guid), @p43='?' (DbType = DateTime), @p44='?', @p45='?', @p46='?', @p47='?' (DbType = Int32), @p48='?', @p49='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6); INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p7, @p8, @p9, @p10, @p11, @p12, @p13); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p14, @p15, @p16, @p17, @p18, @p19, @p20, @p21, @p22); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p23, @p24, @p25, @p26, @p27, @p28, @p29, @p30, @p31); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p32, @p33, @p34, @p35, @p36, @p37, @p38, @p39, @p40); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p41, @p42, @p43, @p44, @p45, @p46, @p47, @p48, @p49); info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/shifts/0de36cf0-2128-4d91-9058-9eeda7e29cac/signup info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/tasks/6563379e-2225-4671-b3ef-8b7953c96fe9 [xUnit.net 00:00:04.85] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.85] Expected: OK [xUnit.net 00:00:04.85] Actual: BadRequest [xUnit.net 00:00:04.85] Stack Trace: [xUnit.net 00:00:04.85] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/SmokeTests.cs(16,0): at WorkClub.Tests.Integration.SmokeTests.HealthCheck_ReturnsOk() [xUnit.net 00:00:04.85] --- End of stack trace from previous location --- [xUnit.net 00:00:04.85] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.85] Expected: Conflict [xUnit.net 00:00:04.85] Actual: Forbidden [xUnit.net 00:00:04.85] Stack Trace: [xUnit.net 00:00:04.85] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Shifts/ShiftCrudTests.cs(442,0): at WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_WhenFull_ReturnsConflict() [xUnit.net 00:00:04.85] --- End of stack trace from previous location --- [xUnit.net 00:00:04.85] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.85] Expected: NoContent [xUnit.net 00:00:04.85] Actual: Forbidden [xUnit.net 00:00:04.85] Stack Trace: [xUnit.net 00:00:04.85] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Tasks/TaskCrudTests.cs(427,0): at WorkClub.Tests.Integration.Tasks.TaskCrudTests.DeleteTask_AsAdmin_DeletesTask() info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/members [xUnit.net 00:00:04.85] --- End of stack trace from previous location --- info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT w."Id", w."AssigneeId", w."ClubId", w."CreatedAt", w."CreatedById", w."Description", w."DueDate", w.xmin, w."Status", w."TenantId", w."Title", w."UpdatedAt" FROM work_items AS w warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges [xUnit.net 00:00:04.85] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.85] Expected: OK [xUnit.net 00:00:04.85] Actual: Forbidden [xUnit.net 00:00:04.85] Stack Trace: [xUnit.net 00:00:04.85] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Members/MemberEndpointsTests.cs(119,0): at WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMembers_ReturnsOnlyCurrentTenantMembers() [xUnit.net 00:00:04.85] --- End of stack trace from previous location --- info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Object)], CommandType='Text', CommandTimeout='30'] DELETE FROM work_items WHERE "Id" = @p0 AND xmin = @p1; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT m."Id", m."ClubId", m."CreatedAt", m."DisplayName", m."Email", m."ExternalUserId", m."Role", m."TenantId", m."UpdatedAt" FROM members AS m [testcontainers.org 00:00:04.74] Delete Docker container 74f6b6765d10 [testcontainers.org 00:00:04.74] Delete Docker container 26e2798ec042 info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/tasks info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT c."Id", c."CreatedAt", c."Description", c."Name", c."SportType", c."TenantId", c."UpdatedAt" FROM clubs AS c warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = Guid), @p4='?' (DbType = Guid), @p5='?' (DbType = Guid)], CommandType='Text', CommandTimeout='30'] DELETE FROM clubs WHERE "Id" = @p0; DELETE FROM clubs WHERE "Id" = @p1; DELETE FROM members WHERE "Id" = @p2; DELETE FROM members WHERE "Id" = @p3; DELETE FROM members WHERE "Id" = @p4; DELETE FROM members WHERE "Id" = @p5; warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT w."Id", w."AssigneeId", w."ClubId", w."CreatedAt", w."CreatedById", w."Description", w."DueDate", w.xmin, w."Status", w."TenantId", w."Title", w."UpdatedAt" FROM work_items AS w warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = DateTime), @p2='?', @p3='?', @p4='?' (DbType = Int32), @p5='?', @p6='?' (DbType = DateTime), @p7='?' (DbType = Guid), @p8='?' (DbType = DateTime), @p9='?', @p10='?', @p11='?' (DbType = Int32), @p12='?', @p13='?' (DbType = DateTime), @p14='?' (DbType = Guid), @p15='?' (DbType = Guid), @p16='?' (DbType = DateTime), @p17='?', @p18='?', @p19='?', @p20='?' (DbType = Int32), @p21='?', @p22='?' (DbType = DateTime), @p23='?' (DbType = Guid), @p24='?' (DbType = Guid), @p25='?' (DbType = DateTime), @p26='?', @p27='?', @p28='?', @p29='?' (DbType = Int32), @p30='?', @p31='?' (DbType = DateTime), @p32='?' (DbType = Guid), @p33='?' (DbType = Guid), @p34='?' (DbType = DateTime), @p35='?', @p36='?', @p37='?', @p38='?' (DbType = Int32), @p39='?', @p40='?' (DbType = DateTime), @p41='?' (DbType = Guid), @p42='?' (DbType = Guid), @p43='?' (DbType = DateTime), @p44='?', @p45='?', @p46='?', @p47='?' (DbType = Int32), @p48='?', @p49='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6); INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p7, @p8, @p9, @p10, @p11, @p12, @p13); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p14, @p15, @p16, @p17, @p18, @p19, @p20, @p21, @p22); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p23, @p24, @p25, @p26, @p27, @p28, @p29, @p30, @p31); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p32, @p33, @p34, @p35, @p36, @p37, @p38, @p39, @p40); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p41, @p42, @p43, @p44, @p45, @p46, @p47, @p48, @p49); warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/members/me info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = DateTime), @p4='?' (DbType = Guid), @p5='?', @p6='?' (DbType = DateTime), @p7='?' (DbType = Int32), @p8='?', @p9='?', @p10='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO work_items ("Id", "AssigneeId", "ClubId", "CreatedAt", "CreatedById", "Description", "DueDate", "Status", "TenantId", "Title", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10) RETURNING xmin; [xUnit.net 00:00:04.86] Assert.Equal() Failure: Values differ info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/tasks/ec3aadd3-5514-4278-ac62-fd64293db228 [xUnit.net 00:00:04.86] Expected: OK [xUnit.net 00:00:04.86] Actual: Forbidden [xUnit.net 00:00:04.86] Stack Trace: [xUnit.net 00:00:04.86] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Members/MemberEndpointsTests.cs(214,0): at WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMembersMe_ReturnsCurrentUserMembership() [xUnit.net 00:00:04.86] --- End of stack trace from previous location --- info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT m."Id", m."ClubId", m."CreatedAt", m."DisplayName", m."Email", m."ExternalUserId", m."Role", m."TenantId", m."UpdatedAt" FROM members AS m [xUnit.net 00:00:04.86] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.86] Expected: OK [xUnit.net 00:00:04.86] Actual: Forbidden [xUnit.net 00:00:04.86] Stack Trace: [xUnit.net 00:00:04.86] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Tasks/TaskCrudTests.cs(371,0): at WorkClub.Tests.Integration.Tasks.TaskCrudTests.UpdateTask_ConcurrentModification_ReturnsConflict() [xUnit.net 00:00:04.86] --- End of stack trace from previous location --- info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT c."Id", c."CreatedAt", c."Description", c."Name", c."SportType", c."TenantId", c."UpdatedAt" FROM clubs AS c warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT w."Id", w."AssigneeId", w."ClubId", w."CreatedAt", w."CreatedById", w."Description", w."DueDate", w.xmin, w."Status", w."TenantId", w."Title", w."UpdatedAt" FROM work_items AS w warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = Guid), @p4='?' (DbType = Guid), @p5='?' (DbType = Guid)], CommandType='Text', CommandTimeout='30'] DELETE FROM clubs WHERE "Id" = @p0; DELETE FROM clubs WHERE "Id" = @p1; DELETE FROM members WHERE "Id" = @p2; DELETE FROM members WHERE "Id" = @p3; DELETE FROM members WHERE "Id" = @p4; DELETE FROM members WHERE "Id" = @p5; info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (0ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Object)], CommandType='Text', CommandTimeout='30'] DELETE FROM work_items WHERE "Id" = @p0 AND xmin = @p1; warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = DateTime), @p2='?', @p3='?', @p4='?' (DbType = Int32), @p5='?', @p6='?' (DbType = DateTime), @p7='?' (DbType = Guid), @p8='?' (DbType = DateTime), @p9='?', @p10='?', @p11='?' (DbType = Int32), @p12='?', @p13='?' (DbType = DateTime), @p14='?' (DbType = Guid), @p15='?' (DbType = Guid), @p16='?' (DbType = DateTime), @p17='?', @p18='?', @p19='?', @p20='?' (DbType = Int32), @p21='?', @p22='?' (DbType = DateTime), @p23='?' (DbType = Guid), @p24='?' (DbType = Guid), @p25='?' (DbType = DateTime), @p26='?', @p27='?', @p28='?', @p29='?' (DbType = Int32), @p30='?', @p31='?' (DbType = DateTime), @p32='?' (DbType = Guid), @p33='?' (DbType = Guid), @p34='?' (DbType = DateTime), @p35='?', @p36='?', @p37='?', @p38='?' (DbType = Int32), @p39='?', @p40='?' (DbType = DateTime), @p41='?' (DbType = Guid), @p42='?' (DbType = Guid), @p43='?' (DbType = DateTime), @p44='?', @p45='?', @p46='?', @p47='?' (DbType = Int32), @p48='?', @p49='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6); INSERT INTO clubs ("Id", "CreatedAt", "Description", "Name", "SportType", "TenantId", "UpdatedAt") VALUES (@p7, @p8, @p9, @p10, @p11, @p12, @p13); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p14, @p15, @p16, @p17, @p18, @p19, @p20, @p21, @p22); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p23, @p24, @p25, @p26, @p27, @p28, @p29, @p30, @p31); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p32, @p33, @p34, @p35, @p36, @p37, @p38, @p39, @p40); INSERT INTO members ("Id", "ClubId", "CreatedAt", "DisplayName", "Email", "ExternalUserId", "Role", "TenantId", "UpdatedAt") VALUES (@p41, @p42, @p43, @p44, @p45, @p46, @p47, @p48, @p49); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = DateTime), @p4='?' (DbType = Guid), @p5='?', @p6='?' (DbType = DateTime), @p7='?' (DbType = Int32), @p8='?', @p9='?', @p10='?' (DbType = DateTime), @p11='?' (DbType = Guid), @p12='?' (DbType = Guid), @p13='?' (DbType = Guid), @p14='?' (DbType = DateTime), @p15='?' (DbType = Guid), @p16='?', @p17='?' (DbType = DateTime), @p18='?' (DbType = Int32), @p19='?', @p20='?', @p21='?' (DbType = DateTime), @p22='?' (DbType = Guid), @p23='?' (DbType = Guid), @p24='?' (DbType = Guid), @p25='?' (DbType = DateTime), @p26='?' (DbType = Guid), @p27='?', @p28='?' (DbType = DateTime), @p29='?' (DbType = Int32), @p30='?', @p31='?', @p32='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO work_items ("Id", "AssigneeId", "ClubId", "CreatedAt", "CreatedById", "Description", "DueDate", "Status", "TenantId", "Title", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10) RETURNING xmin; INSERT INTO work_items ("Id", "AssigneeId", "ClubId", "CreatedAt", "CreatedById", "Description", "DueDate", "Status", "TenantId", "Title", "UpdatedAt") VALUES (@p11, @p12, @p13, @p14, @p15, @p16, @p17, @p18, @p19, @p20, @p21) RETURNING xmin; INSERT INTO work_items ("Id", "AssigneeId", "ClubId", "CreatedAt", "CreatedById", "Description", "DueDate", "Status", "TenantId", "Title", "UpdatedAt") VALUES (@p22, @p23, @p24, @p25, @p26, @p27, @p28, @p29, @p30, @p31, @p32) RETURNING xmin; info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/tasks [xUnit.net 00:00:04.86] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.86] Expected: OK [xUnit.net 00:00:04.86] Actual: Forbidden [xUnit.net 00:00:04.86] Stack Trace: [xUnit.net 00:00:04.86] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Tasks/TaskCrudTests.cs(141,0): at WorkClub.Tests.Integration.Tasks.TaskCrudTests.ListTasks_ReturnsOnlyTenantTasks() [xUnit.net 00:00:04.86] --- End of stack trace from previous location --- info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT w."Id", w."AssigneeId", w."ClubId", w."CreatedAt", w."CreatedById", w."Description", w."DueDate", w.xmin, w."Status", w."TenantId", w."Title", w."UpdatedAt" FROM work_items AS w warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (2ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Object), @p2='?' (DbType = Guid), @p3='?' (DbType = Object), @p4='?' (DbType = Guid), @p5='?' (DbType = Object)], CommandType='Text', CommandTimeout='30'] DELETE FROM work_items WHERE "Id" = @p0 AND xmin = @p1; DELETE FROM work_items WHERE "Id" = @p2 AND xmin = @p3; DELETE FROM work_items WHERE "Id" = @p4 AND xmin = @p5; warn: WorkClub.Infrastructure.Data.Interceptors.SaveChangesTenantInterceptor[0] No tenant context available for SaveChanges info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT count(*)::int FROM members AS m WHERE m."ExternalUserId" = 'admin-user-id' info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = Guid), @p3='?' (DbType = DateTime), @p4='?' (DbType = Guid), @p5='?', @p6='?' (DbType = DateTime), @p7='?' (DbType = Int32), @p8='?', @p9='?', @p10='?' (DbType = DateTime)], CommandType='Text', CommandTimeout='30'] INSERT INTO work_items ("Id", "AssigneeId", "ClubId", "CreatedAt", "CreatedById", "Description", "DueDate", "Status", "TenantId", "Title", "UpdatedAt") VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10) RETURNING xmin; info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/tasks/861571b6-6170-4fda-9b05-9b225257fc10 info: WorkClub.Api.Middleware.TenantValidationMiddleware[0] TenantValidationMiddleware: Processing request for /api/members/me [xUnit.net 00:00:04.88] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.88] Expected: OK [xUnit.net 00:00:04.88] Actual: Forbidden [xUnit.net 00:00:04.88] Stack Trace: [xUnit.net 00:00:04.88] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Tasks/TaskCrudTests.cs(239,0): at WorkClub.Tests.Integration.Tasks.TaskCrudTests.GetTask_ById_ReturnsTaskDetail() [xUnit.net 00:00:04.88] --- End of stack trace from previous location --- [xUnit.net 00:00:04.88] Assert.Equal() Failure: Values differ [xUnit.net 00:00:04.88] Expected: OK [xUnit.net 00:00:04.88] Actual: Forbidden [xUnit.net 00:00:04.88] Stack Trace: [xUnit.net 00:00:04.88] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Members/MemberEndpointsTests.cs(260,0): at WorkClub.Tests.Integration.Members.MemberEndpointsTests.MemberAutoSync_ExistingUser_DoesNotDuplicate() [xUnit.net 00:00:04.88] --- End of stack trace from previous location --- [testcontainers.org 00:00:04.77] Delete Docker container dc6ea4a08f3d [testcontainers.org 00:00:04.77] Delete Docker container a68d80edb832 info: Microsoft.Hosting.Lifetime[0] Application is shutting down... info: Microsoft.Hosting.Lifetime[0] Application is shutting down... info: Microsoft.Hosting.Lifetime[0] Application is shutting down... info: Microsoft.Hosting.Lifetime[0] Application is shutting down... info: Microsoft.Hosting.Lifetime[0] Application is shutting down... [testcontainers.org 00:00:05.87] Docker container 711da5d51dbd created [testcontainers.org 00:00:05.88] Start Docker container 711da5d51dbd [testcontainers.org 00:00:05.99] Docker container 442ee09688d5 created [testcontainers.org 00:00:06.00] Start Docker container 442ee09688d5 [testcontainers.org 00:00:06.08] Wait for Docker container 711da5d51dbd to complete readiness checks [testcontainers.org 00:00:06.21] Wait for Docker container 442ee09688d5 to complete readiness checks [testcontainers.org 00:00:07.11] Docker container 711da5d51dbd ready [xUnit.net 00:00:07.27] Npgsql.PostgresException : 28P01: password authentication failed for user "app_admin" [xUnit.net 00:00:07.27] Stack Trace: [xUnit.net 00:00:07.27] at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) [xUnit.net 00:00:07.27] at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) [xUnit.net 00:00:07.27] at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:07.27] at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:07.27] at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:07.27] at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:07.27] at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:07.27] at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:07.27] at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:07.27] at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:07.27] /_/Dapper/SqlMapper.Async.cs(661,0): at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) [xUnit.net 00:00:07.27] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs(32,0): at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() [xUnit.net 00:00:07.27] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs(33,0): at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() [testcontainers.org 00:00:07.23] Docker container 442ee09688d5 ready [testcontainers.org 00:00:07.31] Delete Docker container 442ee09688d5 [testcontainers.org 00:00:07.47] Docker container 8cb8ec1bdb48 created [testcontainers.org 00:00:07.47] Start Docker container 8cb8ec1bdb48 [xUnit.net 00:00:07.62] RLS should be enabled on clubs [xUnit.net 00:00:07.62] Stack Trace: [xUnit.net 00:00:07.62] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/MigrationTests.cs(111,0): at WorkClub.Tests.Integration.Data.MigrationTests.Migration_EnablesRowLevelSecurity() [xUnit.net 00:00:07.62] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/MigrationTests.cs(109,0): at WorkClub.Tests.Integration.Data.MigrationTests.Migration_EnablesRowLevelSecurity() [xUnit.net 00:00:07.62] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/MigrationTests.cs(109,0): at WorkClub.Tests.Integration.Data.MigrationTests.Migration_EnablesRowLevelSecurity() [xUnit.net 00:00:07.62] --- End of stack trace from previous location --- [testcontainers.org 00:00:07.71] Wait for Docker container 8cb8ec1bdb48 to complete readiness checks [testcontainers.org 00:00:08.08] Docker container 74672c9a1eee created [testcontainers.org 00:00:08.09] Start Docker container 74672c9a1eee [testcontainers.org 00:00:08.26] Wait for Docker container 74672c9a1eee to complete readiness checks [testcontainers.org 00:00:08.72] Docker container 8cb8ec1bdb48 ready [xUnit.net 00:00:08.84] Npgsql.PostgresException : 28P01: password authentication failed for user "app_admin" [xUnit.net 00:00:08.84] Stack Trace: [xUnit.net 00:00:08.84] at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) [xUnit.net 00:00:08.84] at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) [xUnit.net 00:00:08.84] at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:08.84] at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:08.84] at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:08.84] at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:08.84] at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:08.84] at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:08.84] at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:08.84] at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:08.84] /_/Dapper/SqlMapper.Async.cs(661,0): at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) [xUnit.net 00:00:08.84] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs(32,0): at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() [xUnit.net 00:00:08.84] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs(33,0): at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() [testcontainers.org 00:00:08.93] Docker container 4727debda4c6 created [testcontainers.org 00:00:08.94] Start Docker container 4727debda4c6 [testcontainers.org 00:00:09.06] Wait for Docker container 4727debda4c6 to complete readiness checks [testcontainers.org 00:00:09.27] Docker container 74672c9a1eee ready [testcontainers.org 00:00:09.47] Delete Docker container 74672c9a1eee [xUnit.net 00:00:09.83] Should have at least 5 tenant_isolation policies [xUnit.net 00:00:09.83] Stack Trace: [xUnit.net 00:00:09.83] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/MigrationTests.cs(136,0): at WorkClub.Tests.Integration.Data.MigrationTests.Migration_CreatesTenantIsolationPolicy() [xUnit.net 00:00:09.83] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/MigrationTests.cs(136,0): at WorkClub.Tests.Integration.Data.MigrationTests.Migration_CreatesTenantIsolationPolicy() [xUnit.net 00:00:09.83] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/MigrationTests.cs(136,0): at WorkClub.Tests.Integration.Data.MigrationTests.Migration_CreatesTenantIsolationPolicy() [xUnit.net 00:00:09.83] --- End of stack trace from previous location --- [testcontainers.org 00:00:09.91] Docker container 87df9ba686d1 created [testcontainers.org 00:00:09.92] Start Docker container 87df9ba686d1 [testcontainers.org 00:00:10.03] Wait for Docker container 87df9ba686d1 to complete readiness checks [testcontainers.org 00:00:10.07] Docker container 4727debda4c6 ready [xUnit.net 00:00:10.19] Npgsql.PostgresException : 28P01: password authentication failed for user "app_admin" [xUnit.net 00:00:10.19] Stack Trace: [xUnit.net 00:00:10.19] at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) [xUnit.net 00:00:10.19] at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) [xUnit.net 00:00:10.19] at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:10.19] at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:10.19] at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:10.19] at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:10.19] at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:10.19] at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:10.19] at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:10.19] at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:10.19] /_/Dapper/SqlMapper.Async.cs(661,0): at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) [xUnit.net 00:00:10.19] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs(32,0): at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() [xUnit.net 00:00:10.19] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs(33,0): at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() [testcontainers.org 00:00:10.31] Docker container ff0a18844c2e created [testcontainers.org 00:00:10.32] Start Docker container ff0a18844c2e [testcontainers.org 00:00:10.46] Wait for Docker container ff0a18844c2e to complete readiness checks [testcontainers.org 00:00:11.04] Docker container 87df9ba686d1 ready [testcontainers.org 00:00:11.09] Delete Docker container 87df9ba686d1 [testcontainers.org 00:00:11.51] Docker container ff0a18844c2e ready [xUnit.net 00:00:11.66] Npgsql.PostgresException : 28P01: password authentication failed for user "app_admin" [xUnit.net 00:00:11.66] Stack Trace: [xUnit.net 00:00:11.66] at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) [xUnit.net 00:00:11.66] at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) [xUnit.net 00:00:11.66] at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:11.66] at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:11.66] at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:11.66] at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:11.66] at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:11.66] at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:11.66] at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:11.66] at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:11.66] /_/Dapper/SqlMapper.Async.cs(661,0): at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) [xUnit.net 00:00:11.66] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs(32,0): at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() [xUnit.net 00:00:11.66] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs(33,0): at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() [testcontainers.org 00:00:11.69] Docker container 7af530be475c created [testcontainers.org 00:00:11.69] Start Docker container 7af530be475c [testcontainers.org 00:00:11.80] Wait for Docker container 7af530be475c to complete readiness checks [testcontainers.org 00:00:12.84] Docker container 7af530be475c ready [xUnit.net 00:00:12.98] Npgsql.PostgresException : 28P01: password authentication failed for user "app_admin" [xUnit.net 00:00:12.98] Stack Trace: [xUnit.net 00:00:12.98] at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) [xUnit.net 00:00:12.98] at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) [xUnit.net 00:00:12.98] at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:12.98] at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:12.98] at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:12.98] at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:12.98] at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:12.98] at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:12.98] at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:12.98] at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) [xUnit.net 00:00:12.98] /_/Dapper/SqlMapper.Async.cs(661,0): at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) [xUnit.net 00:00:12.98] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs(32,0): at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() [xUnit.net 00:00:12.98] /Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/Data/RlsTests.cs(33,0): at WorkClub.Tests.Integration.Data.RlsTests.InitializeAsync() [xUnit.net 00:00:12.98] Finished: WorkClub.Tests.Integration [xUnit.net 00:00:00.41] WorkClub.Tests.Integration.Middleware.TenantValidationTests.Request_WithValidTenantId_Returns200 [FAIL] [xUnit.net 00:00:00.60] WorkClub.Tests.Integration.Auth.AuthorizationTests.AdminCanAccessAdminEndpoints_Returns200 [FAIL] [xUnit.net 00:00:00.71] WorkClub.Tests.Integration.Auth.AuthorizationTests.MemberCannotAccessAdminEndpoints_Returns403 [FAIL] [xUnit.net 00:00:00.81] WorkClub.Tests.Integration.Auth.AuthorizationTests.ViewerCanOnlyRead_PostReturns403 [FAIL] [xUnit.net 00:00:00.89] WorkClub.Tests.Integration.Auth.AuthorizationTests.HealthEndpointsArePublic_NoAuthRequired [FAIL] [xUnit.net 00:00:00.95] WorkClub.Tests.Integration.Auth.AuthorizationTests.UnauthenticatedUser_Returns401 [FAIL] [xUnit.net 00:00:04.07] WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test5_CrossTenantHeaderSpoof_MiddlewareBlocks [FAIL] [xUnit.net 00:00:04.08] WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test2_NoContext_NoData_RlsBlocksEverything [FAIL] [xUnit.net 00:00:04.09] WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test1_CompleteIsolation_TenantsSeeOnlyTheirData [FAIL] [xUnit.net 00:00:04.09] WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test4_ConcurrentRequests_ConnectionPoolSafety [FAIL] [xUnit.net 00:00:04.09] WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test3_InsertProtection_CrossTenantInsertBlocked [FAIL] [xUnit.net 00:00:04.09] WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test6_InterceptorVerification_SetLocalExecuted [FAIL] [xUnit.net 00:00:04.64] WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsMe_ReturnsOnlyUserClubs [FAIL] [xUnit.net 00:00:04.67] WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_ForPastShift_ReturnsUnprocessableEntity [FAIL] [xUnit.net 00:00:04.68] WorkClub.Tests.Integration.Shifts.ShiftCrudTests.ListShifts_WithDateFilter_ReturnsFilteredShifts [FAIL] [xUnit.net 00:00:04.69] WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsMe_Unauthenticated_ReturnsUnauthorized [FAIL] [xUnit.net 00:00:04.70] WorkClub.Tests.Integration.Shifts.ShiftCrudTests.GetShift_ById_ReturnsShiftWithSignupList [FAIL] [xUnit.net 00:00:04.70] WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsCurrent_ReturnsCurrentTenantClub [FAIL] [xUnit.net 00:00:04.73] WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMembers_DifferentTenant_ReturnsDifferentMembers [FAIL] [xUnit.net 00:00:04.73] WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_WithCapacity_ReturnsOk [FAIL] [xUnit.net 00:00:04.73] WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsCurrent_DifferentTenant_ReturnsDifferentClub [FAIL] [xUnit.net 00:00:04.74] WorkClub.Tests.Integration.Shifts.ShiftCrudTests.DeleteShift_AsAdmin_DeletesShift [FAIL] [xUnit.net 00:00:04.75] WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsMe_ForManagerUser_ReturnsOnlyOneClub [FAIL] [xUnit.net 00:00:04.76] WorkClub.Tests.Integration.Shifts.ShiftCrudTests.UpdateShift_AsManager_UpdatesShift [FAIL] [xUnit.net 00:00:04.77] WorkClub.Tests.Integration.Shifts.ShiftCrudTests.CreateShift_AsManager_ReturnsCreated [FAIL] [xUnit.net 00:00:04.79] WorkClub.Tests.Integration.Data.RlsTests.RLS_BlocksAccess_WithoutTenantContext [FAIL] [xUnit.net 00:00:04.79] WorkClub.Tests.Integration.Tasks.TaskCrudTests.UpdateTask_InvalidTransition_ReturnsUnprocessableEntity [FAIL] [xUnit.net 00:00:04.81] WorkClub.Tests.Integration.Tasks.TaskCrudTests.ListTasks_FilterByStatus_ReturnsFilteredResults [FAIL] [xUnit.net 00:00:04.81] WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMemberById_ExistingMember_ReturnsMemberDetail [FAIL] [xUnit.net 00:00:04.81] WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_Duplicate_ReturnsConflict [FAIL] [xUnit.net 00:00:04.81] WorkClub.Tests.Integration.Shifts.ShiftCrudTests.CancelSignup_BeforeShift_ReturnsOk [FAIL] [xUnit.net 00:00:04.81] WorkClub.Tests.Integration.Members.MemberEndpointsTests.MemberAutoSync_NewUser_CreatesMembeRecordFromJwt [FAIL] [xUnit.net 00:00:04.82] WorkClub.Tests.Integration.Tasks.TaskCrudTests.UpdateTask_ValidTransition_UpdatesTask [FAIL] [xUnit.net 00:00:04.82] WorkClub.Tests.Integration.Tasks.TaskCrudTests.CreateTask_AsManager_ReturnsCreatedWithOpenStatus [FAIL] [xUnit.net 00:00:04.83] WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_ConcurrentLastSlot_HandlesRaceCondition [FAIL] [xUnit.net 00:00:04.83] WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMemberById_WrongTenant_ReturnsNotFound [FAIL] [xUnit.net 00:00:04.85] WorkClub.Tests.Integration.SmokeTests.HealthCheck_ReturnsOk [FAIL] [xUnit.net 00:00:04.85] WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_WhenFull_ReturnsConflict [FAIL] [xUnit.net 00:00:04.85] WorkClub.Tests.Integration.Tasks.TaskCrudTests.DeleteTask_AsAdmin_DeletesTask [FAIL] [xUnit.net 00:00:04.85] WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMembers_ReturnsOnlyCurrentTenantMembers [FAIL] [xUnit.net 00:00:04.86] WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMembersMe_ReturnsCurrentUserMembership [FAIL] [xUnit.net 00:00:04.86] WorkClub.Tests.Integration.Tasks.TaskCrudTests.UpdateTask_ConcurrentModification_ReturnsConflict [FAIL] [xUnit.net 00:00:04.86] WorkClub.Tests.Integration.Tasks.TaskCrudTests.ListTasks_ReturnsOnlyTenantTasks [FAIL] [xUnit.net 00:00:04.88] WorkClub.Tests.Integration.Tasks.TaskCrudTests.GetTask_ById_ReturnsTaskDetail [FAIL] [xUnit.net 00:00:04.88] WorkClub.Tests.Integration.Members.MemberEndpointsTests.MemberAutoSync_ExistingUser_DoesNotDuplicate [FAIL] [xUnit.net 00:00:07.27] WorkClub.Tests.Integration.Data.RlsTests.RLS_IsolatesData_AcrossTenants [FAIL] [xUnit.net 00:00:07.62] WorkClub.Tests.Integration.Data.MigrationTests.Migration_EnablesRowLevelSecurity [FAIL] [xUnit.net 00:00:08.84] WorkClub.Tests.Integration.Data.RlsTests.RLS_HandlesShiftSignups_WithSubquery [FAIL] [xUnit.net 00:00:09.83] WorkClub.Tests.Integration.Data.MigrationTests.Migration_CreatesTenantIsolationPolicy [FAIL] [xUnit.net 00:00:10.19] WorkClub.Tests.Integration.Data.RlsTests.RLS_CountsCorrectly_PerTenant [FAIL] [xUnit.net 00:00:11.66] WorkClub.Tests.Integration.Data.RlsTests.RLS_AllowsAccess_WithCorrectTenantContext [FAIL] [xUnit.net 00:00:12.98] WorkClub.Tests.Integration.Data.RlsTests.RLS_AllowsBypass_ForAdminRole [FAIL]