Files
work-club-manager/backend/WorkClub.Tests.Integration/TestResults/test-results.trx
WorkClub Automation ffc4062eba fix: exempt /api/clubs/me from tenant validation
- Add path exemption in TenantValidationMiddleware for /api/clubs/me
- Change authorization policy from RequireMember to RequireViewer
- Fix KEYCLOAK_CLIENT_ID in docker-compose.yml (workclub-app not workclub-api)
- Endpoint now works without X-Tenant-Id header as intended
- Other endpoints still protected by tenant validation

This fixes the chicken-and-egg problem where frontend needs to call
/api/clubs/me to discover available clubs before selecting a tenant.
2026-03-05 21:32:37 +01:00

3929 lines
386 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<TestRun id="1e8b6a81-a447-4885-9b32-64e68176b6c3" name="@MacBook-Pro-von-Denis 2026-03-05 21:13:20" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Times creation="2026-03-05T21:13:20.2017310+01:00" queuing="2026-03-05T21:13:20.2017310+01:00" start="2026-03-05T21:13:19.7254020+01:00" finish="2026-03-05T21:13:32.9934650+01:00" />
<TestSettings name="default" id="5bda4686-9577-4309-a16f-182950a6cb13">
<Deployment runDeploymentRoot="_MacBook-Pro-von-Denis_2026-03-05_21_13_20" />
</TestSettings>
<Results>
<UnitTestResult executionId="efb5c36e-642e-4405-b837-36d31ceb4a95" testId="2055d1ec-3792-34b3-03bd-0ed088b0a84b" testName="WorkClub.Tests.Integration.Members.MemberEndpointsTests.MemberAutoSync_NewUser_CreatesMembeRecordFromJwt" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0017367" startTime="2026-03-05T21:13:24.7864950+01:00" endTime="2026-03-05T21:13:24.7948520+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="efb5c36e-642e-4405-b837-36d31ceb4a95">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: OK
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="d79455cb-3872-4eb5-8e35-5aac495c5597" testId="76c1d23c-9e89-35ab-e4af-ea94a6ba3b52" testName="WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsMe_ReturnsOnlyUserClubs" computerName="MacBook-Pro-von-Denis" duration="00:00:04.2911490" startTime="2026-03-05T21:13:20.1801840+01:00" endTime="2026-03-05T21:13:24.6178630+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="d79455cb-3872-4eb5-8e35-5aac495c5597">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: OK
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="99baf306-89e3-48c7-b7f7-66d11dd92717" testId="83bd3b4a-816f-1dd9-179b-db1051e611cf" testName="WorkClub.Tests.Integration.SmokeTests.HealthCheck_ReturnsOk" computerName="MacBook-Pro-von-Denis" duration="00:00:04.6665409" startTime="2026-03-05T21:13:20.1802840+01:00" endTime="2026-03-05T21:13:24.8266870+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="99baf306-89e3-48c7-b7f7-66d11dd92717">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: OK
Actual: BadRequest</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="a745ed59-7423-4fec-8b05-716866c959e6" testId="e1707d09-6285-c32f-cb42-bca959c2f3f6" testName="WorkClub.Tests.Integration.Data.RlsTests.RLS_AllowsBypass_ForAdminRole" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0010000" startTime="2026-03-05T21:13:31.6437930+01:00" endTime="2026-03-05T21:13:32.9572130+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="a745ed59-7423-4fec-8b05-716866c959e6">
<Output>
<ErrorInfo>
<Message>Npgsql.PostgresException : 28P01: password authentication failed for user "app_admin"</Message>
<StackTrace> 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&lt;TResult&gt;.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.&lt;Open&gt;g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.Internal.NpgsqlConnector.&lt;Open&gt;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.&lt;Get&gt;g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlConnection.&lt;Open&gt;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</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="d8bda145-49fb-4a9a-8241-8d8737d09c5b" testId="3d0c9309-5147-fa7f-1d0d-82715cbdb2a3" testName="WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test6_InterceptorVerification_SetLocalExecuted" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0017845" startTime="2026-03-05T21:13:24.0713990+01:00" endTime="2026-03-05T21:13:24.0732930+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="d8bda145-49fb-4a9a-8241-8d8737d09c5b">
<Output>
<ErrorInfo>
<Message>Npgsql.PostgresException : 42703: column "id" of relation "clubs" does not exist
POSITION: 33</Message>
<StackTrace> 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&lt;TResult&gt;.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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="6f98e526-4402-48c6-9f1e-d5959882410c" testId="d745d391-108e-c0df-e092-89d24fd26823" testName="WorkClub.Tests.Integration.Data.RlsTests.RLS_AllowsAccess_WithCorrectTenantContext" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0010000" startTime="2026-03-05T21:13:30.1693120+01:00" endTime="2026-03-05T21:13:31.6435290+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="6f98e526-4402-48c6-9f1e-d5959882410c">
<Output>
<ErrorInfo>
<Message>Npgsql.PostgresException : 28P01: password authentication failed for user "app_admin"</Message>
<StackTrace> 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&lt;TResult&gt;.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.&lt;Open&gt;g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.Internal.NpgsqlConnector.&lt;Open&gt;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.&lt;Get&gt;g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlConnection.&lt;Open&gt;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</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="86aaebcb-1e29-41ff-947d-c69b0423fa35" testId="6667a918-d555-55b3-0cbf-6eb12c382f81" testName="WorkClub.Tests.Integration.Tasks.TaskCrudTests.UpdateTask_ValidTransition_UpdatesTask" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0060047" startTime="2026-03-05T21:13:24.7862740+01:00" endTime="2026-03-05T21:13:24.7965840+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="86aaebcb-1e29-41ff-947d-c69b0423fa35">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: OK
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="5eae2e3f-4a73-4b33-8f6f-2a1e3d4ef387" testId="215e75ae-4b92-806d-1502-bd4eb8c278e8" testName="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.CreateShift_AsViewer_ReturnsForbidden" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0121821" startTime="2026-03-05T21:13:24.7521260+01:00" endTime="2026-03-05T21:13:24.7703000+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="5eae2e3f-4a73-4b33-8f6f-2a1e3d4ef387" />
<UnitTestResult executionId="80918de6-d22d-4feb-9392-3f1e8f468985" testId="840a46a7-f166-4b2c-e53d-6cea4228a164" testName="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.UpdateShift_AsManager_UpdatesShift" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0093107" startTime="2026-03-05T21:13:24.7240220+01:00" endTime="2026-03-05T21:13:24.7366390+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="80918de6-d22d-4feb-9392-3f1e8f468985">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: OK
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="4f1e6f67-543c-4ea6-9326-c64ddebecdb0" testId="9386db13-b528-ed24-15b6-2fa77edaab7d" testName="WorkClub.Tests.Integration.Auth.AuthorizationTests.AdminCanAccessAdminEndpoints_Returns200" computerName="MacBook-Pro-von-Denis" duration="00:00:00.5201823" startTime="2026-03-05T21:13:20.0559550+01:00" endTime="2026-03-05T21:13:20.5797860+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="4f1e6f67-543c-4ea6-9326-c64ddebecdb0">
<Output>
<ErrorInfo>
<Message>Npgsql.PostgresException : 28P01: password authentication failed for user "app"</Message>
<StackTrace> 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&lt;TResult&gt;.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.&lt;Open&gt;g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.Internal.NpgsqlConnector.&lt;Open&gt;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.&lt;Get&gt;g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlConnection.&lt;Open&gt;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.&lt;Main&gt;$(String[] args) in /Users/mastermito/Dev/opencode/backend/WorkClub.Api/Program.cs:line 82
at Program.&lt;Main&gt;(String[] args)
at InvokeStub_Program.&lt;Main&gt;(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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="1579d1da-cc1a-46c9-b84a-91a704f3d662" testId="a77421d5-dd29-3613-8578-340e084213cf" testName="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_WhenFull_ReturnsConflict" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0128516" startTime="2026-03-05T21:13:24.8100690+01:00" endTime="2026-03-05T21:13:24.8271790+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="1579d1da-cc1a-46c9-b84a-91a704f3d662">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: Conflict
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="72ec8a27-a089-4b85-8c01-6d46691db541" testId="3ad792ab-e0ed-b77e-bc18-a9d3dc4d0ae2" testName="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.GetShift_ById_ReturnsShiftWithSignupList" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0109550" startTime="2026-03-05T21:13:24.6656470+01:00" endTime="2026-03-05T21:13:24.6815050+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="72ec8a27-a089-4b85-8c01-6d46691db541">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: OK
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="53dd6e88-61c8-4590-9018-2bf61aa26a32" testId="9ebfc940-629a-a544-616b-a29df42bfb22" testName="WorkClub.Tests.Integration.Data.MigrationTests.Migration_CreatesTenantIsolationPolicy" computerName="MacBook-Pro-von-Denis" duration="00:00:00.1955214" startTime="2026-03-05T21:13:27.5995170+01:00" endTime="2026-03-05T21:13:29.8082800+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="53dd6e88-61c8-4590-9018-2bf61aa26a32">
<Output>
<ErrorInfo>
<Message>Should have at least 5 tenant_isolation policies</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="c2d5618e-bdc0-4800-b87e-67925b3f29cb" testId="6dc96203-2349-342e-028b-825a95999ae9" testName="WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test2_NoContext_NoData_RlsBlocksEverything" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0124245" startTime="2026-03-05T21:13:24.0586540+01:00" endTime="2026-03-05T21:13:24.0617200+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="c2d5618e-bdc0-4800-b87e-67925b3f29cb">
<Output>
<ErrorInfo>
<Message>Npgsql.PostgresException : 42703: column "id" of relation "clubs" does not exist
POSITION: 33</Message>
<StackTrace> 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&lt;TResult&gt;.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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="fe58bd3c-8876-4f13-b7ad-e20bc42df08b" testId="5b7a8cfa-5b45-6c19-c724-934118466ab8" testName="WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsCurrent_DifferentTenant_ReturnsDifferentClub" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0186593" startTime="2026-03-05T21:13:24.6824020+01:00" endTime="2026-03-05T21:13:24.7137580+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="fe58bd3c-8876-4f13-b7ad-e20bc42df08b">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: OK
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="18182050-1937-474e-8101-9f787108efcf" testId="c8992673-4b49-270f-0a6e-f7c596e7d6cc" testName="WorkClub.Tests.Integration.Auth.AuthorizationTests.UnauthenticatedUser_Returns401" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0519730" startTime="2026-03-05T21:13:20.8777550+01:00" endTime="2026-03-05T21:13:20.9278200+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="18182050-1937-474e-8101-9f787108efcf">
<Output>
<ErrorInfo>
<Message>Npgsql.PostgresException : 28P01: password authentication failed for user "app"</Message>
<StackTrace> 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&lt;TResult&gt;.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.&lt;Open&gt;g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.Internal.NpgsqlConnector.&lt;Open&gt;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.&lt;Get&gt;g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlConnection.&lt;Open&gt;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.&lt;Main&gt;$(String[] args) in /Users/mastermito/Dev/opencode/backend/WorkClub.Api/Program.cs:line 82
at Program.&lt;Main&gt;(String[] args)
at InvokeStub_Program.&lt;Main&gt;(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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="558aa53c-bd54-4922-a046-5ad388c296be" testId="b5e31c34-df55-50b1-ea20-a4a1de0258d6" testName="WorkClub.Tests.Integration.Tasks.TaskCrudTests.CreateTask_AsViewer_ReturnsForbidden" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0023920" startTime="2026-03-05T21:13:24.8279200+01:00" endTime="2026-03-05T21:13:24.8326810+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="558aa53c-bd54-4922-a046-5ad388c296be" />
<UnitTestResult executionId="44b288c7-7348-4076-89f9-192d702cdc7a" testId="192b5114-9dc4-8f7d-52df-d7f64ea18055" testName="WorkClub.Tests.Integration.Tasks.TaskCrudTests.UpdateTask_ConcurrentModification_ReturnsConflict" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0031663" startTime="2026-03-05T21:13:24.8328060+01:00" endTime="2026-03-05T21:13:24.8373690+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="44b288c7-7348-4076-89f9-192d702cdc7a">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: OK
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="d9b0f0c4-f15a-41e6-8b84-27d6ad380aff" testId="21448d7d-3994-db1a-002f-42eecc94217c" testName="WorkClub.Tests.Integration.Data.RlsTests.RLS_HandlesShiftSignups_WithSubquery" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0010000" startTime="2026-03-05T21:13:27.2472110+01:00" endTime="2026-03-05T21:13:28.8245390+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="d9b0f0c4-f15a-41e6-8b84-27d6ad380aff">
<Output>
<ErrorInfo>
<Message>Npgsql.PostgresException : 28P01: password authentication failed for user "app_admin"</Message>
<StackTrace> 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&lt;TResult&gt;.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.&lt;Open&gt;g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.Internal.NpgsqlConnector.&lt;Open&gt;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.&lt;Get&gt;g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlConnection.&lt;Open&gt;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</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="49336982-d862-4881-a14c-afb609a7f405" testId="5b3efcaf-b84f-2a0f-a580-f2162c6195d4" testName="WorkClub.Tests.Integration.Tasks.TaskCrudTests.DeleteTask_AsAdmin_DeletesTask" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0106074" startTime="2026-03-05T21:13:24.8129510+01:00" endTime="2026-03-05T21:13:24.8275900+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="49336982-d862-4881-a14c-afb609a7f405">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: NoContent
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="aa07cd09-3ac1-4476-bea8-8380980d1260" testId="1cb8f909-a8f0-4a6f-d470-8302e028a6fd" testName="WorkClub.Tests.Integration.Data.RlsTests.RLS_CountsCorrectly_PerTenant" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0010000" startTime="2026-03-05T21:13:28.8248340+01:00" endTime="2026-03-05T21:13:30.1687300+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="aa07cd09-3ac1-4476-bea8-8380980d1260">
<Output>
<ErrorInfo>
<Message>Npgsql.PostgresException : 28P01: password authentication failed for user "app_admin"</Message>
<StackTrace> 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&lt;TResult&gt;.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.&lt;Open&gt;g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.Internal.NpgsqlConnector.&lt;Open&gt;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.&lt;Get&gt;g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlConnection.&lt;Open&gt;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</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="3297ce23-9a57-40aa-9ffd-8ce113b752af" testId="eb4c8721-5b4c-f6cb-6d59-1f31968e1358" testName="WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsMe_ForManagerUser_ReturnsOnlyOneClub" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0032393" startTime="2026-03-05T21:13:24.7148430+01:00" endTime="2026-03-05T21:13:24.7267490+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="3297ce23-9a57-40aa-9ffd-8ce113b752af">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: OK
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="fe1f5971-1101-4369-9ca5-27b51f244a5e" testId="ec3eb4af-90fe-6502-55f8-89916844a5da" testName="WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsMe_Unauthenticated_ReturnsUnauthorized" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0035259" startTime="2026-03-05T21:13:24.6549420+01:00" endTime="2026-03-05T21:13:24.6697830+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="fe1f5971-1101-4369-9ca5-27b51f244a5e">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: Unauthorized
Actual: BadRequest</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="3f8882ef-c54a-4a1c-bc95-f35ab985cfa8" testId="112f428e-6e71-0c68-2759-cce41e4867a7" testName="WorkClub.Tests.Integration.Tasks.TaskCrudTests.ListTasks_ReturnsOnlyTenantTasks" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0052779" startTime="2026-03-05T21:13:24.8377150+01:00" endTime="2026-03-05T21:13:24.8448540+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="3f8882ef-c54a-4a1c-bc95-f35ab985cfa8">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: OK
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="954f18dd-734d-406a-adc1-16d673f99d9a" testId="23dfb3b1-01ad-4aae-648e-20438f072d9f" testName="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.DeleteShift_AsManager_ReturnsForbidden" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0069335" startTime="2026-03-05T21:13:24.7706570+01:00" endTime="2026-03-05T21:13:24.7792750+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="954f18dd-734d-406a-adc1-16d673f99d9a" />
<UnitTestResult executionId="bc02c0bc-0077-4be7-bda6-b8e035b89797" testId="a60fda2a-d916-57a1-ae75-9a8aeafedfca" testName="WorkClub.Tests.Integration.Tasks.TaskCrudTests.ListTasks_FilterByStatus_ReturnsFilteredResults" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0049439" startTime="2026-03-05T21:13:24.7717670+01:00" endTime="2026-03-05T21:13:24.7859990+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="bc02c0bc-0077-4be7-bda6-b8e035b89797">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: OK
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="4ceeeea8-0af8-4ead-9722-06090d29b4ba" testId="2d5dd145-399b-69b5-daa7-78ee280eff04" testName="WorkClub.Tests.Integration.Middleware.TenantValidationTests.Request_WithoutTenantIdHeader_Returns400" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0027156" startTime="2026-03-05T21:13:20.3975870+01:00" endTime="2026-03-05T21:13:20.3979670+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="4ceeeea8-0af8-4ead-9722-06090d29b4ba" />
<UnitTestResult executionId="83252c27-9e5f-4e23-94ee-ace75a2765a3" testId="152749f9-0204-ef1a-19f3-af0eb489c6e7" testName="WorkClub.Tests.Integration.Middleware.TenantValidationTests.Request_WithoutAuthentication_Returns401" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0104238" startTime="2026-03-05T21:13:20.3692860+01:00" endTime="2026-03-05T21:13:20.3799470+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="83252c27-9e5f-4e23-94ee-ace75a2765a3" />
<UnitTestResult executionId="01630166-26c6-4797-a1d1-52dbee8f07e3" testId="ee6a4929-5fa3-ba58-c49a-0ec5b2ba4ec8" testName="WorkClub.Tests.Integration.Tasks.TaskCrudTests.CreateTask_AsManager_ReturnsCreatedWithOpenStatus" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0031344" startTime="2026-03-05T21:13:24.7969590+01:00" endTime="2026-03-05T21:13:24.8026640+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="01630166-26c6-4797-a1d1-52dbee8f07e3">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: Created
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="f39bedee-6a49-4e72-a575-ea4b19a38a0a" testId="0434f4c8-5d7d-0216-0a7a-a59c54695bdc" testName="WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMemberById_ExistingMember_ReturnsMemberDetail" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0494204" startTime="2026-03-05T21:13:24.7276100+01:00" endTime="2026-03-05T21:13:24.7863050+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="f39bedee-6a49-4e72-a575-ea4b19a38a0a">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: OK
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="e483efb4-2009-4057-89e0-b6cdb5c17680" testId="3289ec04-9373-ba6b-b086-fa63bfe75ac3" testName="WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsCurrent_ReturnsCurrentTenantClub" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0032110" startTime="2026-03-05T21:13:24.6700750+01:00" endTime="2026-03-05T21:13:24.6821370+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="e483efb4-2009-4057-89e0-b6cdb5c17680">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: OK
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="0c2d6743-d916-40a6-b5cc-37713204c7d7" testId="8ad3cb81-a4ed-cede-e678-f6e30ff1f996" testName="WorkClub.Tests.Integration.Data.RlsTests.RLS_BlocksAccess_WithoutTenantContext" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0010000" startTime="2026-03-05T21:13:20.0559130+01:00" endTime="2026-03-05T21:13:24.7660010+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="0c2d6743-d916-40a6-b5cc-37713204c7d7">
<Output>
<ErrorInfo>
<Message>Npgsql.PostgresException : 28P01: password authentication failed for user "app_admin"</Message>
<StackTrace> 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&lt;TResult&gt;.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.&lt;Open&gt;g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.Internal.NpgsqlConnector.&lt;Open&gt;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.&lt;Get&gt;g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlConnection.&lt;Open&gt;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</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="a8a9121f-20e6-4cb1-8a29-231d5e06e195" testId="aeb77c48-db54-acda-2a49-34f71bc9de86" testName="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.CancelSignup_BeforeShift_ReturnsOk" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0038137" startTime="2026-03-05T21:13:24.7873300+01:00" endTime="2026-03-05T21:13:24.7943390+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="a8a9121f-20e6-4cb1-8a29-231d5e06e195">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: OK
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="849cbe79-dd83-41cb-880f-1d62ed84fd84" testId="61f90a13-1c35-64a7-3d01-60ebb2cf1053" testName="WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMemberById_WrongTenant_ReturnsNotFound" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0079060" startTime="2026-03-05T21:13:24.7952090+01:00" endTime="2026-03-05T21:13:24.8104860+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="849cbe79-dd83-41cb-880f-1d62ed84fd84">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: NotFound
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="41c45b41-4127-4cfc-b4af-96d6759aefb6" testId="409c3fc8-1754-6c6a-c605-09c53fe3a626" testName="WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMembers_DifferentTenant_ReturnsDifferentMembers" computerName="MacBook-Pro-von-Denis" duration="00:00:04.5309418" startTime="2026-03-05T21:13:20.1802080+01:00" endTime="2026-03-05T21:13:24.7107540+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="41c45b41-4127-4cfc-b4af-96d6759aefb6">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: OK
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="520eee39-255b-462c-b7bb-54ae730294eb" testId="d94193dd-13e2-a651-463c-f65ac015d799" testName="WorkClub.Tests.Integration.Data.MigrationTests.Migration_CreatesCorrectIndexes" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0402598" startTime="2026-03-05T21:13:29.8085090+01:00" endTime="2026-03-05T21:13:31.4414330+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="520eee39-255b-462c-b7bb-54ae730294eb" />
<UnitTestResult executionId="054d13ce-c50c-466c-8bf3-146517f6d387" testId="0383fb61-9ded-ee3d-35ac-422938e4cfd5" testName="WorkClub.Tests.Integration.Tasks.TaskCrudTests.UpdateTask_InvalidTransition_ReturnsUnprocessableEntity" computerName="MacBook-Pro-von-Denis" duration="00:00:04.6061378" startTime="2026-03-05T21:13:20.1802180+01:00" endTime="2026-03-05T21:13:24.7713380+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="054d13ce-c50c-466c-8bf3-146517f6d387">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: UnprocessableEntity
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="d056b444-80a7-4014-9c86-380ed032086c" testId="fb9e2352-7915-4f20-0d90-000b134d9c10" testName="WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test3_InsertProtection_CrossTenantInsertBlocked" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0017085" startTime="2026-03-05T21:13:24.0693030+01:00" endTime="2026-03-05T21:13:24.0709860+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="d056b444-80a7-4014-9c86-380ed032086c">
<Output>
<ErrorInfo>
<Message>Npgsql.PostgresException : 42703: column "id" of relation "clubs" does not exist
POSITION: 33</Message>
<StackTrace> 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&lt;TResult&gt;.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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="541a6bb6-d620-4aa3-8f2f-5132fe51c762" testId="3ae149c1-47ac-a010-7100-28f17012b1e0" testName="WorkClub.Tests.Integration.Data.RlsTests.RLS_IsolatesData_AcrossTenants" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0010000" startTime="2026-03-05T21:13:24.7665690+01:00" endTime="2026-03-05T21:13:27.2443690+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="541a6bb6-d620-4aa3-8f2f-5132fe51c762">
<Output>
<ErrorInfo>
<Message>Npgsql.PostgresException : 28P01: password authentication failed for user "app_admin"</Message>
<StackTrace> 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&lt;TResult&gt;.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.&lt;Open&gt;g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.Internal.NpgsqlConnector.&lt;Open&gt;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.&lt;Get&gt;g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlConnection.&lt;Open&gt;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</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="8123d9ef-0437-4efe-aa8b-bdb3e55662ba" testId="30b147ac-9839-ccb3-5621-ce2f3bea6eaa" testName="WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMembers_ReturnsOnlyCurrentTenantMembers" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0017383" startTime="2026-03-05T21:13:24.8110340+01:00" endTime="2026-03-05T21:13:24.8290820+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="8123d9ef-0437-4efe-aa8b-bdb3e55662ba">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: OK
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="796e61e0-4a09-4f2e-9c64-2428da3ceebd" testId="45ce9a58-3d0c-a89b-a04a-e6d8deb87b14" testName="WorkClub.Tests.Integration.Data.MigrationTests.Migration_AppliesSuccessfully_CreatesAllTables" computerName="MacBook-Pro-von-Denis" duration="00:00:00.1868267" startTime="2026-03-05T21:13:20.0552910+01:00" endTime="2026-03-05T21:13:24.9352680+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="796e61e0-4a09-4f2e-9c64-2428da3ceebd" />
<UnitTestResult executionId="4c85f43c-2bb0-41a8-ac63-32fb143c20dd" testId="eb7c1867-3669-2fc6-9c5e-ce545321fc09" testName="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_Duplicate_ReturnsConflict" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0040593" startTime="2026-03-05T21:13:24.7794220+01:00" endTime="2026-03-05T21:13:24.7869320+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="4c85f43c-2bb0-41a8-ac63-32fb143c20dd">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: Conflict
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="d7fb6536-7f48-462c-a2f6-a21fbc6020fb" testId="5fe90c99-0da1-2f16-12f0-fd3295db7944" testName="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_ForPastShift_ReturnsUnprocessableEntity" computerName="MacBook-Pro-von-Denis" duration="00:00:04.4761052" startTime="2026-03-05T21:13:20.1802990+01:00" endTime="2026-03-05T21:13:24.6506500+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="d7fb6536-7f48-462c-a2f6-a21fbc6020fb">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: UnprocessableEntity
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="75b2c338-af69-412a-8c79-7d25efc3b8b8" testId="345cc2f8-1245-60be-fb3e-cdb1a2df5c48" testName="WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMembers_AsViewer_ReturnsForbidden" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0034917" startTime="2026-03-05T21:13:24.7110600+01:00" endTime="2026-03-05T21:13:24.7274200+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="75b2c338-af69-412a-8c79-7d25efc3b8b8" />
<UnitTestResult executionId="7456a486-7bc4-4fcd-a602-c6f6434ce58f" testId="3e1957e0-7528-5d22-b567-2dfa2ec4ec67" testName="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.CreateShift_AsManager_ReturnsCreated" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0044478" startTime="2026-03-05T21:13:24.7370770+01:00" endTime="2026-03-05T21:13:24.7518310+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="7456a486-7bc4-4fcd-a602-c6f6434ce58f">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: Created
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="2cca396e-739b-40fe-a2c3-089389c79067" testId="17ca2668-fccb-6742-e995-ad9b413052cb" testName="WorkClub.Tests.Integration.Data.MigrationTests.Migration_EnablesRowLevelSecurity" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0757766" startTime="2026-03-05T21:13:24.9355270+01:00" endTime="2026-03-05T21:13:27.5989960+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="2cca396e-739b-40fe-a2c3-089389c79067">
<Output>
<ErrorInfo>
<Message>RLS should be enabled on clubs</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="7e1c7f77-72cd-4f3f-b898-447a27a9c88b" testId="f7e06d09-9656-ad6b-f83c-8cf420c78bda" testName="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_ConcurrentLastSlot_HandlesRaceCondition" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0091621" startTime="2026-03-05T21:13:24.7946210+01:00" endTime="2026-03-05T21:13:24.8097930+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="7e1c7f77-72cd-4f3f-b898-447a27a9c88b">
<Output>
<ErrorInfo>
<Message>Assert.Contains() Failure: Item not found in collection
Collection: [Forbidden, Forbidden]
Not found: OK</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="5597b6be-e940-4b53-b05d-90ec1bbc86f5" testId="a114f138-9969-de42-a7ab-774451f1a2b7" testName="WorkClub.Tests.Integration.Tasks.TaskCrudTests.DeleteTask_AsManager_ReturnsForbidden" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0073820" startTime="2026-03-05T21:13:24.8029280+01:00" endTime="2026-03-05T21:13:24.8127170+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="5597b6be-e940-4b53-b05d-90ec1bbc86f5" />
<UnitTestResult executionId="7c81147f-5fad-4ea6-9919-a02a0f52e8ce" testId="c3d92de7-d40b-54fc-06aa-cb6eb28d267f" testName="WorkClub.Tests.Integration.Tasks.TaskCrudTests.GetTask_ById_ReturnsTaskDetail" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0033388" startTime="2026-03-05T21:13:24.8451420+01:00" endTime="2026-03-05T21:13:24.8566420+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="7c81147f-5fad-4ea6-9919-a02a0f52e8ce">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: OK
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="8b9a5fb0-adb5-46c8-a018-080028678978" testId="d88554e9-6cf0-0106-8eef-15bdfcc77cf5" testName="WorkClub.Tests.Integration.Middleware.TenantValidationTests.Request_WithNonMemberTenantId_Returns403" computerName="MacBook-Pro-von-Denis" duration="00:00:00.3110755" startTime="2026-03-05T21:13:20.0559460+01:00" endTime="2026-03-05T21:13:20.3688890+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="8b9a5fb0-adb5-46c8-a018-080028678978" />
<UnitTestResult executionId="c55a93b3-b7bc-4103-9e99-914a5245f886" testId="ac18818d-c5f3-b1c0-6139-0264be457f92" testName="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.ListShifts_WithDateFilter_ReturnsFilteredShifts" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0066610" startTime="2026-03-05T21:13:24.6513790+01:00" endTime="2026-03-05T21:13:24.6651140+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="c55a93b3-b7bc-4103-9e99-914a5245f886">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: OK
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="21e76824-9b17-4e0e-a5a8-414c92641d73" testId="87f90367-14b4-31b0-3c67-7a5e1e25cc40" testName="WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsCurrent_NoTenantContext_ReturnsBadRequest" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0038183" startTime="2026-03-05T21:13:24.6181760+01:00" endTime="2026-03-05T21:13:24.6545780+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="21e76824-9b17-4e0e-a5a8-414c92641d73" />
<UnitTestResult executionId="501710ba-56d4-42b0-ab4c-b9b3da4ab3fc" testId="ba039c18-0fd0-5c70-7979-94eaafbc9ab7" testName="WorkClub.Tests.Integration.Auth.AuthorizationTests.MemberCannotAccessAdminEndpoints_Returns403" computerName="MacBook-Pro-von-Denis" duration="00:00:00.1102198" startTime="2026-03-05T21:13:20.5807800+01:00" endTime="2026-03-05T21:13:20.6906990+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="501710ba-56d4-42b0-ab4c-b9b3da4ab3fc">
<Output>
<ErrorInfo>
<Message>Npgsql.PostgresException : 28P01: password authentication failed for user "app"</Message>
<StackTrace> 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&lt;TResult&gt;.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.&lt;Open&gt;g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.Internal.NpgsqlConnector.&lt;Open&gt;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.&lt;Get&gt;g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlConnection.&lt;Open&gt;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.&lt;Main&gt;$(String[] args) in /Users/mastermito/Dev/opencode/backend/WorkClub.Api/Program.cs:line 82
at Program.&lt;Main&gt;(String[] args)
at InvokeStub_Program.&lt;Main&gt;(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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="fb30912d-bc06-4045-af76-9939b6bcdd90" testId="f754b80a-1bcd-9d81-02a1-ecb7c11f3363" testName="WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test5_CrossTenantHeaderSpoof_MiddlewareBlocks" computerName="MacBook-Pro-von-Denis" duration="00:00:03.8878408" startTime="2026-03-05T21:13:20.1802270+01:00" endTime="2026-03-05T21:13:24.0484790+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="fb30912d-bc06-4045-af76-9939b6bcdd90">
<Output>
<ErrorInfo>
<Message>Npgsql.PostgresException : 42703: column "id" of relation "clubs" does not exist
POSITION: 33</Message>
<StackTrace> 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&lt;TResult&gt;.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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="c09dca59-b926-4d43-add2-52cdf9d56984" testId="553a5fe6-a3a9-dbae-4e26-be8b6e76fecf" testName="WorkClub.Tests.Integration.Auth.AuthorizationTests.HealthEndpointsArePublic_NoAuthRequired" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0802264" startTime="2026-03-05T21:13:20.7952610+01:00" endTime="2026-03-05T21:13:20.8748340+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="c09dca59-b926-4d43-add2-52cdf9d56984">
<Output>
<ErrorInfo>
<Message>Npgsql.PostgresException : 28P01: password authentication failed for user "app"</Message>
<StackTrace> 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&lt;TResult&gt;.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.&lt;Open&gt;g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.Internal.NpgsqlConnector.&lt;Open&gt;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.&lt;Get&gt;g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlConnection.&lt;Open&gt;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.&lt;Main&gt;$(String[] args) in /Users/mastermito/Dev/opencode/backend/WorkClub.Api/Program.cs:line 82
at Program.&lt;Main&gt;(String[] args)
at InvokeStub_Program.&lt;Main&gt;(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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="58beb176-88ec-4dc9-9099-fb36d5553054" testId="2a601025-6931-b8ab-f865-d403ebb33ae6" testName="WorkClub.Tests.Integration.Middleware.TenantValidationTests.Request_WithValidTenantId_Returns200" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0077532" startTime="2026-03-05T21:13:20.3800680+01:00" endTime="2026-03-05T21:13:20.3947800+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="58beb176-88ec-4dc9-9099-fb36d5553054">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: OK
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="c37388ec-00d6-47b1-a15b-4b6cd71dbffc" testId="58a06a78-d935-bf2e-64f4-acc904aef240" testName="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_WithCapacity_ReturnsOk" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0207173" startTime="2026-03-05T21:13:24.6820680+01:00" endTime="2026-03-05T21:13:24.7124890+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="c37388ec-00d6-47b1-a15b-4b6cd71dbffc">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: OK
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="8146654d-28fe-46bc-8cfd-8b24ba2d11c8" testId="ecb6e325-505d-1dbf-13f6-4620011e89b9" testName="WorkClub.Tests.Integration.Members.MemberEndpointsTests.MemberAutoSync_ExistingUser_DoesNotDuplicate" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0150507" startTime="2026-03-05T21:13:24.8369200+01:00" endTime="2026-03-05T21:13:24.8568750+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="8146654d-28fe-46bc-8cfd-8b24ba2d11c8">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: OK
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="e8389b08-bdff-448a-b128-19024128c2ce" testId="5e18c555-1e51-eb97-32db-13a18df22460" testName="WorkClub.Tests.Integration.Auth.AuthorizationTests.ViewerCanOnlyRead_PostReturns403" computerName="MacBook-Pro-von-Denis" duration="00:00:00.1013536" startTime="2026-03-05T21:13:20.6920560+01:00" endTime="2026-03-05T21:13:20.7939230+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="e8389b08-bdff-448a-b128-19024128c2ce">
<Output>
<ErrorInfo>
<Message>Npgsql.PostgresException : 28P01: password authentication failed for user "app"</Message>
<StackTrace> 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&lt;TResult&gt;.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.&lt;Open&gt;g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.Internal.NpgsqlConnector.&lt;Open&gt;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.&lt;Get&gt;g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlConnection.&lt;Open&gt;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.&lt;Main&gt;$(String[] args) in /Users/mastermito/Dev/opencode/backend/WorkClub.Api/Program.cs:line 82
at Program.&lt;Main&gt;(String[] args)
at InvokeStub_Program.&lt;Main&gt;(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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="1a5722b1-720a-4f81-8d73-fffb42288b68" testId="f7bce7af-f30e-9cb0-04b3-5d6a17389576" testName="WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMembersMe_ReturnsCurrentUserMembership" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0015188" startTime="2026-03-05T21:13:24.8297240+01:00" endTime="2026-03-05T21:13:24.8364480+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="1a5722b1-720a-4f81-8d73-fffb42288b68">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: OK
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="1fef8732-5c11-450f-afda-2d1a432daa65" testId="9f2d81f3-db55-49fc-3dba-9c7612e0a013" testName="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.DeleteShift_AsAdmin_DeletesShift" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0043359" startTime="2026-03-05T21:13:24.7129490+01:00" endTime="2026-03-05T21:13:24.7233840+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="1fef8732-5c11-450f-afda-2d1a432daa65">
<Output>
<ErrorInfo>
<Message>Assert.Equal() Failure: Values differ
Expected: NoContent
Actual: Forbidden</Message>
<StackTrace> 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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="76892d61-c47e-4e93-9bb5-cbcdcd216a25" testId="98b479c7-b2aa-0f80-eb27-fe10b52155c9" testName="WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test4_ConcurrentRequests_ConnectionPoolSafety" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0021178" startTime="2026-03-05T21:13:24.0668010+01:00" endTime="2026-03-05T21:13:24.0688900+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="76892d61-c47e-4e93-9bb5-cbcdcd216a25">
<Output>
<ErrorInfo>
<Message>Npgsql.PostgresException : 42703: column "id" of relation "clubs" does not exist
POSITION: 33</Message>
<StackTrace> 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&lt;TResult&gt;.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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="e5ca4b53-ff60-4a52-87e6-98867eea3385" testId="0900ba18-1bc6-a7bb-d143-9ae68bb6e46f" testName="WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test1_CompleteIsolation_TenantsSeeOnlyTheirData" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0041297" startTime="2026-03-05T21:13:24.0621510+01:00" endTime="2026-03-05T21:13:24.0663210+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="e5ca4b53-ff60-4a52-87e6-98867eea3385">
<Output>
<ErrorInfo>
<Message>Npgsql.PostgresException : 42703: column "id" of relation "clubs" does not exist
POSITION: 33</Message>
<StackTrace> 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&lt;TResult&gt;.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 ---</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
<UnitTestResult executionId="c3a2e47b-b43a-4817-a1c2-5befb323bff5" testId="e4aa11f9-d053-ca69-ed2b-bb3a36281c20" testName="WorkClub.Tests.Integration.UnitTest1.Test1" computerName="MacBook-Pro-von-Denis" duration="00:00:00.0014613" startTime="2026-03-05T21:13:20.0559330+01:00" endTime="2026-03-05T21:13:20.0601440+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="c3a2e47b-b43a-4817-a1c2-5befb323bff5" />
</Results>
<TestDefinitions>
<UnitTest name="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_WithCapacity_ReturnsOk" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="58a06a78-d935-bf2e-64f4-acc904aef240">
<Execution id="c37388ec-00d6-47b1-a15b-4b6cd71dbffc" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Shifts.ShiftCrudTests" name="SignUpForShift_WithCapacity_ReturnsOk" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Data.RlsTests.RLS_BlocksAccess_WithoutTenantContext" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="8ad3cb81-a4ed-cede-e678-f6e30ff1f996">
<Execution id="0c2d6743-d916-40a6-b5cc-37713204c7d7" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Data.RlsTests" name="RLS_BlocksAccess_WithoutTenantContext" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsMe_ForManagerUser_ReturnsOnlyOneClub" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="eb4c8721-5b4c-f6cb-6d59-1f31968e1358">
<Execution id="3297ce23-9a57-40aa-9ffd-8ce113b752af" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Clubs.ClubEndpointsTests" name="GetClubsMe_ForManagerUser_ReturnsOnlyOneClub" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsCurrent_NoTenantContext_ReturnsBadRequest" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="87f90367-14b4-31b0-3c67-7a5e1e25cc40">
<Execution id="21e76824-9b17-4e0e-a5a8-414c92641d73" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Clubs.ClubEndpointsTests" name="GetClubsCurrent_NoTenantContext_ReturnsBadRequest" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMembers_AsViewer_ReturnsForbidden" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="345cc2f8-1245-60be-fb3e-cdb1a2df5c48">
<Execution id="75b2c338-af69-412a-8c79-7d25efc3b8b8" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Members.MemberEndpointsTests" name="GetMembers_AsViewer_ReturnsForbidden" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsMe_ReturnsOnlyUserClubs" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="76c1d23c-9e89-35ab-e4af-ea94a6ba3b52">
<Execution id="d79455cb-3872-4eb5-8e35-5aac495c5597" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Clubs.ClubEndpointsTests" name="GetClubsMe_ReturnsOnlyUserClubs" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMemberById_WrongTenant_ReturnsNotFound" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="61f90a13-1c35-64a7-3d01-60ebb2cf1053">
<Execution id="849cbe79-dd83-41cb-880f-1d62ed84fd84" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Members.MemberEndpointsTests" name="GetMemberById_WrongTenant_ReturnsNotFound" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Data.RlsTests.RLS_AllowsBypass_ForAdminRole" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="e1707d09-6285-c32f-cb42-bca959c2f3f6">
<Execution id="a745ed59-7423-4fec-8b05-716866c959e6" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Data.RlsTests" name="RLS_AllowsBypass_ForAdminRole" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Data.RlsTests.RLS_AllowsAccess_WithCorrectTenantContext" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="d745d391-108e-c0df-e092-89d24fd26823">
<Execution id="6f98e526-4402-48c6-9f1e-d5959882410c" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Data.RlsTests" name="RLS_AllowsAccess_WithCorrectTenantContext" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsCurrent_ReturnsCurrentTenantClub" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="3289ec04-9373-ba6b-b086-fa63bfe75ac3">
<Execution id="e483efb4-2009-4057-89e0-b6cdb5c17680" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Clubs.ClubEndpointsTests" name="GetClubsCurrent_ReturnsCurrentTenantClub" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Tasks.TaskCrudTests.ListTasks_FilterByStatus_ReturnsFilteredResults" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="a60fda2a-d916-57a1-ae75-9a8aeafedfca">
<Execution id="bc02c0bc-0077-4be7-bda6-b8e035b89797" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Tasks.TaskCrudTests" name="ListTasks_FilterByStatus_ReturnsFilteredResults" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.UpdateShift_AsManager_UpdatesShift" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="840a46a7-f166-4b2c-e53d-6cea4228a164">
<Execution id="80918de6-d22d-4feb-9392-3f1e8f468985" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Shifts.ShiftCrudTests" name="UpdateShift_AsManager_UpdatesShift" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Tasks.TaskCrudTests.UpdateTask_ValidTransition_UpdatesTask" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="6667a918-d555-55b3-0cbf-6eb12c382f81">
<Execution id="86aaebcb-1e29-41ff-947d-c69b0423fa35" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Tasks.TaskCrudTests" name="UpdateTask_ValidTransition_UpdatesTask" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_ForPastShift_ReturnsUnprocessableEntity" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="5fe90c99-0da1-2f16-12f0-fd3295db7944">
<Execution id="d7fb6536-7f48-462c-a2f6-a21fbc6020fb" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Shifts.ShiftCrudTests" name="SignUpForShift_ForPastShift_ReturnsUnprocessableEntity" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMembers_DifferentTenant_ReturnsDifferentMembers" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="409c3fc8-1754-6c6a-c605-09c53fe3a626">
<Execution id="41c45b41-4127-4cfc-b4af-96d6759aefb6" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Members.MemberEndpointsTests" name="GetMembers_DifferentTenant_ReturnsDifferentMembers" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsMe_Unauthenticated_ReturnsUnauthorized" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="ec3eb4af-90fe-6502-55f8-89916844a5da">
<Execution id="fe1f5971-1101-4369-9ca5-27b51f244a5e" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Clubs.ClubEndpointsTests" name="GetClubsMe_Unauthenticated_ReturnsUnauthorized" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Tasks.TaskCrudTests.DeleteTask_AsManager_ReturnsForbidden" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="a114f138-9969-de42-a7ab-774451f1a2b7">
<Execution id="5597b6be-e940-4b53-b05d-90ec1bbc86f5" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Tasks.TaskCrudTests" name="DeleteTask_AsManager_ReturnsForbidden" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Tasks.TaskCrudTests.CreateTask_AsViewer_ReturnsForbidden" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="b5e31c34-df55-50b1-ea20-a4a1de0258d6">
<Execution id="558aa53c-bd54-4922-a046-5ad388c296be" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Tasks.TaskCrudTests" name="CreateTask_AsViewer_ReturnsForbidden" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Tasks.TaskCrudTests.UpdateTask_ConcurrentModification_ReturnsConflict" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="192b5114-9dc4-8f7d-52df-d7f64ea18055">
<Execution id="44b288c7-7348-4076-89f9-192d702cdc7a" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Tasks.TaskCrudTests" name="UpdateTask_ConcurrentModification_ReturnsConflict" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Data.MigrationTests.Migration_AppliesSuccessfully_CreatesAllTables" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="45ce9a58-3d0c-a89b-a04a-e6d8deb87b14">
<Execution id="796e61e0-4a09-4f2e-9c64-2428da3ceebd" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Data.MigrationTests" name="Migration_AppliesSuccessfully_CreatesAllTables" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Tasks.TaskCrudTests.CreateTask_AsManager_ReturnsCreatedWithOpenStatus" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="ee6a4929-5fa3-ba58-c49a-0ec5b2ba4ec8">
<Execution id="01630166-26c6-4797-a1d1-52dbee8f07e3" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Tasks.TaskCrudTests" name="CreateTask_AsManager_ReturnsCreatedWithOpenStatus" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMembersMe_ReturnsCurrentUserMembership" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="f7bce7af-f30e-9cb0-04b3-5d6a17389576">
<Execution id="1a5722b1-720a-4f81-8d73-fffb42288b68" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Members.MemberEndpointsTests" name="GetMembersMe_ReturnsCurrentUserMembership" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMembers_ReturnsOnlyCurrentTenantMembers" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="30b147ac-9839-ccb3-5621-ce2f3bea6eaa">
<Execution id="8123d9ef-0437-4efe-aa8b-bdb3e55662ba" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Members.MemberEndpointsTests" name="GetMembers_ReturnsOnlyCurrentTenantMembers" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test6_InterceptorVerification_SetLocalExecuted" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="3d0c9309-5147-fa7f-1d0d-82715cbdb2a3">
<Execution id="d8bda145-49fb-4a9a-8241-8d8737d09c5b" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests" name="Test6_InterceptorVerification_SetLocalExecuted" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_ConcurrentLastSlot_HandlesRaceCondition" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="f7e06d09-9656-ad6b-f83c-8cf420c78bda">
<Execution id="7e1c7f77-72cd-4f3f-b898-447a27a9c88b" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Shifts.ShiftCrudTests" name="SignUpForShift_ConcurrentLastSlot_HandlesRaceCondition" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.SmokeTests.HealthCheck_ReturnsOk" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="83bd3b4a-816f-1dd9-179b-db1051e611cf">
<Execution id="99baf306-89e3-48c7-b7f7-66d11dd92717" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.SmokeTests" name="HealthCheck_ReturnsOk" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Auth.AuthorizationTests.UnauthenticatedUser_Returns401" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="c8992673-4b49-270f-0a6e-f7c596e7d6cc">
<Execution id="18182050-1937-474e-8101-9f787108efcf" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Auth.AuthorizationTests" name="UnauthenticatedUser_Returns401" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Auth.AuthorizationTests.MemberCannotAccessAdminEndpoints_Returns403" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="ba039c18-0fd0-5c70-7979-94eaafbc9ab7">
<Execution id="501710ba-56d4-42b0-ab4c-b9b3da4ab3fc" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Auth.AuthorizationTests" name="MemberCannotAccessAdminEndpoints_Returns403" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Tasks.TaskCrudTests.GetTask_ById_ReturnsTaskDetail" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="c3d92de7-d40b-54fc-06aa-cb6eb28d267f">
<Execution id="7c81147f-5fad-4ea6-9919-a02a0f52e8ce" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Tasks.TaskCrudTests" name="GetTask_ById_ReturnsTaskDetail" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.CreateShift_AsViewer_ReturnsForbidden" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="215e75ae-4b92-806d-1502-bd4eb8c278e8">
<Execution id="5eae2e3f-4a73-4b33-8f6f-2a1e3d4ef387" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Shifts.ShiftCrudTests" name="CreateShift_AsViewer_ReturnsForbidden" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_WhenFull_ReturnsConflict" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="a77421d5-dd29-3613-8578-340e084213cf">
<Execution id="1579d1da-cc1a-46c9-b84a-91a704f3d662" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Shifts.ShiftCrudTests" name="SignUpForShift_WhenFull_ReturnsConflict" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.UnitTest1.Test1" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="e4aa11f9-d053-ca69-ed2b-bb3a36281c20">
<Execution id="c3a2e47b-b43a-4817-a1c2-5befb323bff5" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.UnitTest1" name="Test1" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.ListShifts_WithDateFilter_ReturnsFilteredShifts" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="ac18818d-c5f3-b1c0-6139-0264be457f92">
<Execution id="c55a93b3-b7bc-4103-9e99-914a5245f886" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Shifts.ShiftCrudTests" name="ListShifts_WithDateFilter_ReturnsFilteredShifts" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Middleware.TenantValidationTests.Request_WithNonMemberTenantId_Returns403" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="d88554e9-6cf0-0106-8eef-15bdfcc77cf5">
<Execution id="8b9a5fb0-adb5-46c8-a018-080028678978" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Middleware.TenantValidationTests" name="Request_WithNonMemberTenantId_Returns403" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.DeleteShift_AsManager_ReturnsForbidden" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="23dfb3b1-01ad-4aae-648e-20438f072d9f">
<Execution id="954f18dd-734d-406a-adc1-16d673f99d9a" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Shifts.ShiftCrudTests" name="DeleteShift_AsManager_ReturnsForbidden" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Middleware.TenantValidationTests.Request_WithoutAuthentication_Returns401" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="152749f9-0204-ef1a-19f3-af0eb489c6e7">
<Execution id="83252c27-9e5f-4e23-94ee-ace75a2765a3" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Middleware.TenantValidationTests" name="Request_WithoutAuthentication_Returns401" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Tasks.TaskCrudTests.ListTasks_ReturnsOnlyTenantTasks" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="112f428e-6e71-0c68-2759-cce41e4867a7">
<Execution id="3f8882ef-c54a-4a1c-bc95-f35ab985cfa8" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Tasks.TaskCrudTests" name="ListTasks_ReturnsOnlyTenantTasks" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Auth.AuthorizationTests.ViewerCanOnlyRead_PostReturns403" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="5e18c555-1e51-eb97-32db-13a18df22460">
<Execution id="e8389b08-bdff-448a-b128-19024128c2ce" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Auth.AuthorizationTests" name="ViewerCanOnlyRead_PostReturns403" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test2_NoContext_NoData_RlsBlocksEverything" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="6dc96203-2349-342e-028b-825a95999ae9">
<Execution id="c2d5618e-bdc0-4800-b87e-67925b3f29cb" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests" name="Test2_NoContext_NoData_RlsBlocksEverything" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Data.MigrationTests.Migration_CreatesCorrectIndexes" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="d94193dd-13e2-a651-463c-f65ac015d799">
<Execution id="520eee39-255b-462c-b7bb-54ae730294eb" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Data.MigrationTests" name="Migration_CreatesCorrectIndexes" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test1_CompleteIsolation_TenantsSeeOnlyTheirData" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="0900ba18-1bc6-a7bb-d143-9ae68bb6e46f">
<Execution id="e5ca4b53-ff60-4a52-87e6-98867eea3385" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests" name="Test1_CompleteIsolation_TenantsSeeOnlyTheirData" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMemberById_ExistingMember_ReturnsMemberDetail" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="0434f4c8-5d7d-0216-0a7a-a59c54695bdc">
<Execution id="f39bedee-6a49-4e72-a575-ea4b19a38a0a" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Members.MemberEndpointsTests" name="GetMemberById_ExistingMember_ReturnsMemberDetail" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.CancelSignup_BeforeShift_ReturnsOk" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="aeb77c48-db54-acda-2a49-34f71bc9de86">
<Execution id="a8a9121f-20e6-4cb1-8a29-231d5e06e195" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Shifts.ShiftCrudTests" name="CancelSignup_BeforeShift_ReturnsOk" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Tasks.TaskCrudTests.UpdateTask_InvalidTransition_ReturnsUnprocessableEntity" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="0383fb61-9ded-ee3d-35ac-422938e4cfd5">
<Execution id="054d13ce-c50c-466c-8bf3-146517f6d387" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Tasks.TaskCrudTests" name="UpdateTask_InvalidTransition_ReturnsUnprocessableEntity" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Middleware.TenantValidationTests.Request_WithValidTenantId_Returns200" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="2a601025-6931-b8ab-f865-d403ebb33ae6">
<Execution id="58beb176-88ec-4dc9-9099-fb36d5553054" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Middleware.TenantValidationTests" name="Request_WithValidTenantId_Returns200" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test5_CrossTenantHeaderSpoof_MiddlewareBlocks" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="f754b80a-1bcd-9d81-02a1-ecb7c11f3363">
<Execution id="fb30912d-bc06-4045-af76-9939b6bcdd90" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests" name="Test5_CrossTenantHeaderSpoof_MiddlewareBlocks" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsCurrent_DifferentTenant_ReturnsDifferentClub" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="5b7a8cfa-5b45-6c19-c724-934118466ab8">
<Execution id="fe58bd3c-8876-4f13-b7ad-e20bc42df08b" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Clubs.ClubEndpointsTests" name="GetClubsCurrent_DifferentTenant_ReturnsDifferentClub" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Data.MigrationTests.Migration_CreatesTenantIsolationPolicy" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="9ebfc940-629a-a544-616b-a29df42bfb22">
<Execution id="53dd6e88-61c8-4590-9018-2bf61aa26a32" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Data.MigrationTests" name="Migration_CreatesTenantIsolationPolicy" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Data.RlsTests.RLS_IsolatesData_AcrossTenants" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="3ae149c1-47ac-a010-7100-28f17012b1e0">
<Execution id="541a6bb6-d620-4aa3-8f2f-5132fe51c762" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Data.RlsTests" name="RLS_IsolatesData_AcrossTenants" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Members.MemberEndpointsTests.MemberAutoSync_NewUser_CreatesMembeRecordFromJwt" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="2055d1ec-3792-34b3-03bd-0ed088b0a84b">
<Execution id="efb5c36e-642e-4405-b837-36d31ceb4a95" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Members.MemberEndpointsTests" name="MemberAutoSync_NewUser_CreatesMembeRecordFromJwt" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test4_ConcurrentRequests_ConnectionPoolSafety" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="98b479c7-b2aa-0f80-eb27-fe10b52155c9">
<Execution id="76892d61-c47e-4e93-9bb5-cbcdcd216a25" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests" name="Test4_ConcurrentRequests_ConnectionPoolSafety" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.GetShift_ById_ReturnsShiftWithSignupList" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="3ad792ab-e0ed-b77e-bc18-a9d3dc4d0ae2">
<Execution id="72ec8a27-a089-4b85-8c01-6d46691db541" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Shifts.ShiftCrudTests" name="GetShift_ById_ReturnsShiftWithSignupList" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Auth.AuthorizationTests.HealthEndpointsArePublic_NoAuthRequired" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="553a5fe6-a3a9-dbae-4e26-be8b6e76fecf">
<Execution id="c09dca59-b926-4d43-add2-52cdf9d56984" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Auth.AuthorizationTests" name="HealthEndpointsArePublic_NoAuthRequired" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Middleware.TenantValidationTests.Request_WithoutTenantIdHeader_Returns400" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="2d5dd145-399b-69b5-daa7-78ee280eff04">
<Execution id="4ceeeea8-0af8-4ead-9722-06090d29b4ba" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Middleware.TenantValidationTests" name="Request_WithoutTenantIdHeader_Returns400" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Auth.AuthorizationTests.AdminCanAccessAdminEndpoints_Returns200" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="9386db13-b528-ed24-15b6-2fa77edaab7d">
<Execution id="4f1e6f67-543c-4ea6-9326-c64ddebecdb0" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Auth.AuthorizationTests" name="AdminCanAccessAdminEndpoints_Returns200" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Data.MigrationTests.Migration_EnablesRowLevelSecurity" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="17ca2668-fccb-6742-e995-ad9b413052cb">
<Execution id="2cca396e-739b-40fe-a2c3-089389c79067" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Data.MigrationTests" name="Migration_EnablesRowLevelSecurity" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Members.MemberEndpointsTests.MemberAutoSync_ExistingUser_DoesNotDuplicate" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="ecb6e325-505d-1dbf-13f6-4620011e89b9">
<Execution id="8146654d-28fe-46bc-8cfd-8b24ba2d11c8" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Members.MemberEndpointsTests" name="MemberAutoSync_ExistingUser_DoesNotDuplicate" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.DeleteShift_AsAdmin_DeletesShift" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="9f2d81f3-db55-49fc-3dba-9c7612e0a013">
<Execution id="1fef8732-5c11-450f-afda-2d1a432daa65" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Shifts.ShiftCrudTests" name="DeleteShift_AsAdmin_DeletesShift" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_Duplicate_ReturnsConflict" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="eb7c1867-3669-2fc6-9c5e-ce545321fc09">
<Execution id="4c85f43c-2bb0-41a8-ac63-32fb143c20dd" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Shifts.ShiftCrudTests" name="SignUpForShift_Duplicate_ReturnsConflict" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test3_InsertProtection_CrossTenantInsertBlocked" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="fb9e2352-7915-4f20-0d90-000b134d9c10">
<Execution id="d056b444-80a7-4014-9c86-380ed032086c" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests" name="Test3_InsertProtection_CrossTenantInsertBlocked" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Shifts.ShiftCrudTests.CreateShift_AsManager_ReturnsCreated" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="3e1957e0-7528-5d22-b567-2dfa2ec4ec67">
<Execution id="7456a486-7bc4-4fcd-a602-c6f6434ce58f" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Shifts.ShiftCrudTests" name="CreateShift_AsManager_ReturnsCreated" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Data.RlsTests.RLS_CountsCorrectly_PerTenant" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="1cb8f909-a8f0-4a6f-d470-8302e028a6fd">
<Execution id="aa07cd09-3ac1-4476-bea8-8380980d1260" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Data.RlsTests" name="RLS_CountsCorrectly_PerTenant" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Tasks.TaskCrudTests.DeleteTask_AsAdmin_DeletesTask" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="5b3efcaf-b84f-2a0f-a580-f2162c6195d4">
<Execution id="49336982-d862-4881-a14c-afb609a7f405" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Tasks.TaskCrudTests" name="DeleteTask_AsAdmin_DeletesTask" />
</UnitTest>
<UnitTest name="WorkClub.Tests.Integration.Data.RlsTests.RLS_HandlesShiftSignups_WithSubquery" storage="/users/mastermito/dev/opencode/backend/workclub.tests.integration/bin/debug/net10.0/workclub.tests.integration.dll" id="21448d7d-3994-db1a-002f-42eecc94217c">
<Execution id="d9b0f0c4-f15a-41e6-8b84-27d6ad380aff" />
<TestMethod codeBase="/Users/mastermito/Dev/opencode/backend/WorkClub.Tests.Integration/bin/Debug/net10.0/WorkClub.Tests.Integration.dll" adapterTypeName="executor://xunit/VsTestRunner3/netcore/" className="WorkClub.Tests.Integration.Data.RlsTests" name="RLS_HandlesShiftSignups_WithSubquery" />
</UnitTest>
</TestDefinitions>
<TestEntries>
<TestEntry testId="2055d1ec-3792-34b3-03bd-0ed088b0a84b" executionId="efb5c36e-642e-4405-b837-36d31ceb4a95" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="76c1d23c-9e89-35ab-e4af-ea94a6ba3b52" executionId="d79455cb-3872-4eb5-8e35-5aac495c5597" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="83bd3b4a-816f-1dd9-179b-db1051e611cf" executionId="99baf306-89e3-48c7-b7f7-66d11dd92717" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="e1707d09-6285-c32f-cb42-bca959c2f3f6" executionId="a745ed59-7423-4fec-8b05-716866c959e6" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="3d0c9309-5147-fa7f-1d0d-82715cbdb2a3" executionId="d8bda145-49fb-4a9a-8241-8d8737d09c5b" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="d745d391-108e-c0df-e092-89d24fd26823" executionId="6f98e526-4402-48c6-9f1e-d5959882410c" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="6667a918-d555-55b3-0cbf-6eb12c382f81" executionId="86aaebcb-1e29-41ff-947d-c69b0423fa35" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="215e75ae-4b92-806d-1502-bd4eb8c278e8" executionId="5eae2e3f-4a73-4b33-8f6f-2a1e3d4ef387" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="840a46a7-f166-4b2c-e53d-6cea4228a164" executionId="80918de6-d22d-4feb-9392-3f1e8f468985" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="9386db13-b528-ed24-15b6-2fa77edaab7d" executionId="4f1e6f67-543c-4ea6-9326-c64ddebecdb0" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="a77421d5-dd29-3613-8578-340e084213cf" executionId="1579d1da-cc1a-46c9-b84a-91a704f3d662" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="3ad792ab-e0ed-b77e-bc18-a9d3dc4d0ae2" executionId="72ec8a27-a089-4b85-8c01-6d46691db541" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="9ebfc940-629a-a544-616b-a29df42bfb22" executionId="53dd6e88-61c8-4590-9018-2bf61aa26a32" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="6dc96203-2349-342e-028b-825a95999ae9" executionId="c2d5618e-bdc0-4800-b87e-67925b3f29cb" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="5b7a8cfa-5b45-6c19-c724-934118466ab8" executionId="fe58bd3c-8876-4f13-b7ad-e20bc42df08b" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="c8992673-4b49-270f-0a6e-f7c596e7d6cc" executionId="18182050-1937-474e-8101-9f787108efcf" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="b5e31c34-df55-50b1-ea20-a4a1de0258d6" executionId="558aa53c-bd54-4922-a046-5ad388c296be" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="192b5114-9dc4-8f7d-52df-d7f64ea18055" executionId="44b288c7-7348-4076-89f9-192d702cdc7a" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="21448d7d-3994-db1a-002f-42eecc94217c" executionId="d9b0f0c4-f15a-41e6-8b84-27d6ad380aff" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="5b3efcaf-b84f-2a0f-a580-f2162c6195d4" executionId="49336982-d862-4881-a14c-afb609a7f405" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="1cb8f909-a8f0-4a6f-d470-8302e028a6fd" executionId="aa07cd09-3ac1-4476-bea8-8380980d1260" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="eb4c8721-5b4c-f6cb-6d59-1f31968e1358" executionId="3297ce23-9a57-40aa-9ffd-8ce113b752af" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="ec3eb4af-90fe-6502-55f8-89916844a5da" executionId="fe1f5971-1101-4369-9ca5-27b51f244a5e" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="112f428e-6e71-0c68-2759-cce41e4867a7" executionId="3f8882ef-c54a-4a1c-bc95-f35ab985cfa8" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="23dfb3b1-01ad-4aae-648e-20438f072d9f" executionId="954f18dd-734d-406a-adc1-16d673f99d9a" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="a60fda2a-d916-57a1-ae75-9a8aeafedfca" executionId="bc02c0bc-0077-4be7-bda6-b8e035b89797" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="2d5dd145-399b-69b5-daa7-78ee280eff04" executionId="4ceeeea8-0af8-4ead-9722-06090d29b4ba" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="152749f9-0204-ef1a-19f3-af0eb489c6e7" executionId="83252c27-9e5f-4e23-94ee-ace75a2765a3" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="ee6a4929-5fa3-ba58-c49a-0ec5b2ba4ec8" executionId="01630166-26c6-4797-a1d1-52dbee8f07e3" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="0434f4c8-5d7d-0216-0a7a-a59c54695bdc" executionId="f39bedee-6a49-4e72-a575-ea4b19a38a0a" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="3289ec04-9373-ba6b-b086-fa63bfe75ac3" executionId="e483efb4-2009-4057-89e0-b6cdb5c17680" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="8ad3cb81-a4ed-cede-e678-f6e30ff1f996" executionId="0c2d6743-d916-40a6-b5cc-37713204c7d7" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="aeb77c48-db54-acda-2a49-34f71bc9de86" executionId="a8a9121f-20e6-4cb1-8a29-231d5e06e195" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="61f90a13-1c35-64a7-3d01-60ebb2cf1053" executionId="849cbe79-dd83-41cb-880f-1d62ed84fd84" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="409c3fc8-1754-6c6a-c605-09c53fe3a626" executionId="41c45b41-4127-4cfc-b4af-96d6759aefb6" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="d94193dd-13e2-a651-463c-f65ac015d799" executionId="520eee39-255b-462c-b7bb-54ae730294eb" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="0383fb61-9ded-ee3d-35ac-422938e4cfd5" executionId="054d13ce-c50c-466c-8bf3-146517f6d387" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="fb9e2352-7915-4f20-0d90-000b134d9c10" executionId="d056b444-80a7-4014-9c86-380ed032086c" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="3ae149c1-47ac-a010-7100-28f17012b1e0" executionId="541a6bb6-d620-4aa3-8f2f-5132fe51c762" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="30b147ac-9839-ccb3-5621-ce2f3bea6eaa" executionId="8123d9ef-0437-4efe-aa8b-bdb3e55662ba" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="45ce9a58-3d0c-a89b-a04a-e6d8deb87b14" executionId="796e61e0-4a09-4f2e-9c64-2428da3ceebd" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="eb7c1867-3669-2fc6-9c5e-ce545321fc09" executionId="4c85f43c-2bb0-41a8-ac63-32fb143c20dd" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="5fe90c99-0da1-2f16-12f0-fd3295db7944" executionId="d7fb6536-7f48-462c-a2f6-a21fbc6020fb" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="345cc2f8-1245-60be-fb3e-cdb1a2df5c48" executionId="75b2c338-af69-412a-8c79-7d25efc3b8b8" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="3e1957e0-7528-5d22-b567-2dfa2ec4ec67" executionId="7456a486-7bc4-4fcd-a602-c6f6434ce58f" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="17ca2668-fccb-6742-e995-ad9b413052cb" executionId="2cca396e-739b-40fe-a2c3-089389c79067" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="f7e06d09-9656-ad6b-f83c-8cf420c78bda" executionId="7e1c7f77-72cd-4f3f-b898-447a27a9c88b" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="a114f138-9969-de42-a7ab-774451f1a2b7" executionId="5597b6be-e940-4b53-b05d-90ec1bbc86f5" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="c3d92de7-d40b-54fc-06aa-cb6eb28d267f" executionId="7c81147f-5fad-4ea6-9919-a02a0f52e8ce" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="d88554e9-6cf0-0106-8eef-15bdfcc77cf5" executionId="8b9a5fb0-adb5-46c8-a018-080028678978" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="ac18818d-c5f3-b1c0-6139-0264be457f92" executionId="c55a93b3-b7bc-4103-9e99-914a5245f886" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="87f90367-14b4-31b0-3c67-7a5e1e25cc40" executionId="21e76824-9b17-4e0e-a5a8-414c92641d73" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="ba039c18-0fd0-5c70-7979-94eaafbc9ab7" executionId="501710ba-56d4-42b0-ab4c-b9b3da4ab3fc" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="f754b80a-1bcd-9d81-02a1-ecb7c11f3363" executionId="fb30912d-bc06-4045-af76-9939b6bcdd90" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="553a5fe6-a3a9-dbae-4e26-be8b6e76fecf" executionId="c09dca59-b926-4d43-add2-52cdf9d56984" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="2a601025-6931-b8ab-f865-d403ebb33ae6" executionId="58beb176-88ec-4dc9-9099-fb36d5553054" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="58a06a78-d935-bf2e-64f4-acc904aef240" executionId="c37388ec-00d6-47b1-a15b-4b6cd71dbffc" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="ecb6e325-505d-1dbf-13f6-4620011e89b9" executionId="8146654d-28fe-46bc-8cfd-8b24ba2d11c8" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="5e18c555-1e51-eb97-32db-13a18df22460" executionId="e8389b08-bdff-448a-b128-19024128c2ce" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="f7bce7af-f30e-9cb0-04b3-5d6a17389576" executionId="1a5722b1-720a-4f81-8d73-fffb42288b68" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="9f2d81f3-db55-49fc-3dba-9c7612e0a013" executionId="1fef8732-5c11-450f-afda-2d1a432daa65" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="98b479c7-b2aa-0f80-eb27-fe10b52155c9" executionId="76892d61-c47e-4e93-9bb5-cbcdcd216a25" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="0900ba18-1bc6-a7bb-d143-9ae68bb6e46f" executionId="e5ca4b53-ff60-4a52-87e6-98867eea3385" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="e4aa11f9-d053-ca69-ed2b-bb3a36281c20" executionId="c3a2e47b-b43a-4817-a1c2-5befb323bff5" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
</TestEntries>
<TestLists>
<TestList name="Ergebnisse nicht in einer Liste" id="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestList name="Alle geladenen Ergebnisse" id="19431567-8539-422a-85d7-44ee4e166bda" />
</TestLists>
<ResultSummary outcome="Failed">
<Counters total="64" executed="64" passed="12" failed="52" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
<Output>
<StdOut>[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&lt;TResult&gt;.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.&lt;Open&gt;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.&lt;Open&gt;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.&lt;Get&gt;g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
[xUnit.net 00:00:00.60] at Npgsql.NpgsqlConnection.&lt;Open&gt;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.&lt;Main&gt;$(String[] args)
[xUnit.net 00:00:00.60] at Program.&lt;Main&gt;(String[] args)
[xUnit.net 00:00:00.60] at InvokeStub_Program.&lt;Main&gt;(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&lt;TResult&gt;.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.&lt;Open&gt;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.&lt;Open&gt;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.&lt;Get&gt;g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
[xUnit.net 00:00:00.71] at Npgsql.NpgsqlConnection.&lt;Open&gt;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.&lt;Main&gt;$(String[] args)
[xUnit.net 00:00:00.71] at Program.&lt;Main&gt;(String[] args)
[xUnit.net 00:00:00.71] at InvokeStub_Program.&lt;Main&gt;(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&lt;TResult&gt;.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.&lt;Open&gt;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.&lt;Open&gt;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.&lt;Get&gt;g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
[xUnit.net 00:00:00.81] at Npgsql.NpgsqlConnection.&lt;Open&gt;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.&lt;Main&gt;$(String[] args)
[xUnit.net 00:00:00.81] at Program.&lt;Main&gt;(String[] args)
[xUnit.net 00:00:00.81] at InvokeStub_Program.&lt;Main&gt;(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&lt;TResult&gt;.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.&lt;Open&gt;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.&lt;Open&gt;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.&lt;Get&gt;g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
[xUnit.net 00:00:00.89] at Npgsql.NpgsqlConnection.&lt;Open&gt;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.&lt;Main&gt;$(String[] args)
[xUnit.net 00:00:00.89] at Program.&lt;Main&gt;(String[] args)
[xUnit.net 00:00:00.89] at InvokeStub_Program.&lt;Main&gt;(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&lt;TResult&gt;.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.&lt;Open&gt;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.&lt;Open&gt;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.&lt;Get&gt;g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
[xUnit.net 00:00:00.95] at Npgsql.NpgsqlConnection.&lt;Open&gt;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.&lt;Main&gt;$(String[] args)
[xUnit.net 00:00:00.95] at Program.&lt;Main&gt;(String[] args)
[xUnit.net 00:00:00.95] at InvokeStub_Program.&lt;Main&gt;(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&lt;TResult&gt;.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&lt;TResult&gt;.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&lt;TResult&gt;.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&lt;TResult&gt;.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&lt;TResult&gt;.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&lt;TResult&gt;.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&lt;TResult&gt;.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.&lt;Open&gt;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.&lt;Open&gt;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.&lt;Get&gt;g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
[xUnit.net 00:00:04.79] at Npgsql.NpgsqlConnection.&lt;Open&gt;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&lt;TResult&gt;.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.&lt;Open&gt;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.&lt;Open&gt;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.&lt;Get&gt;g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
[xUnit.net 00:00:07.27] at Npgsql.NpgsqlConnection.&lt;Open&gt;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&lt;TResult&gt;.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.&lt;Open&gt;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.&lt;Open&gt;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.&lt;Get&gt;g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
[xUnit.net 00:00:08.84] at Npgsql.NpgsqlConnection.&lt;Open&gt;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&lt;TResult&gt;.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.&lt;Open&gt;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.&lt;Open&gt;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.&lt;Get&gt;g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
[xUnit.net 00:00:10.19] at Npgsql.NpgsqlConnection.&lt;Open&gt;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&lt;TResult&gt;.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.&lt;Open&gt;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.&lt;Open&gt;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.&lt;Get&gt;g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
[xUnit.net 00:00:11.66] at Npgsql.NpgsqlConnection.&lt;Open&gt;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&lt;TResult&gt;.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.&lt;Open&gt;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.&lt;Open&gt;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.&lt;Get&gt;g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
[xUnit.net 00:00:12.98] at Npgsql.NpgsqlConnection.&lt;Open&gt;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
</StdOut>
</Output>
<RunInfos>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:20.3960780+01:00">
<Text>[xUnit.net 00:00:00.41] WorkClub.Tests.Integration.Middleware.TenantValidationTests.Request_WithValidTenantId_Returns200 [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:20.5808580+01:00">
<Text>[xUnit.net 00:00:00.60] WorkClub.Tests.Integration.Auth.AuthorizationTests.AdminCanAccessAdminEndpoints_Returns200 [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:20.6924950+01:00">
<Text>[xUnit.net 00:00:00.71] WorkClub.Tests.Integration.Auth.AuthorizationTests.MemberCannotAccessAdminEndpoints_Returns403 [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:20.7943760+01:00">
<Text>[xUnit.net 00:00:00.81] WorkClub.Tests.Integration.Auth.AuthorizationTests.ViewerCanOnlyRead_PostReturns403 [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:20.8754560+01:00">
<Text>[xUnit.net 00:00:00.89] WorkClub.Tests.Integration.Auth.AuthorizationTests.HealthEndpointsArePublic_NoAuthRequired [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:20.9281750+01:00">
<Text>[xUnit.net 00:00:00.95] WorkClub.Tests.Integration.Auth.AuthorizationTests.UnauthenticatedUser_Returns401 [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.0580650+01:00">
<Text>[xUnit.net 00:00:04.07] WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test5_CrossTenantHeaderSpoof_MiddlewareBlocks [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.0618950+01:00">
<Text>[xUnit.net 00:00:04.08] WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test2_NoContext_NoData_RlsBlocksEverything [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.0665650+01:00">
<Text>[xUnit.net 00:00:04.09] WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test1_CompleteIsolation_TenantsSeeOnlyTheirData [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.0690660+01:00">
<Text>[xUnit.net 00:00:04.09] WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test4_ConcurrentRequests_ConnectionPoolSafety [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.0711280+01:00">
<Text>[xUnit.net 00:00:04.09] WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test3_InsertProtection_CrossTenantInsertBlocked [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.0735240+01:00">
<Text>[xUnit.net 00:00:04.09] WorkClub.Tests.Integration.MultiTenancy.RlsIsolationTests.Test6_InterceptorVerification_SetLocalExecuted [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.6181760+01:00">
<Text>[xUnit.net 00:00:04.64] WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsMe_ReturnsOnlyUserClubs [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.6511720+01:00">
<Text>[xUnit.net 00:00:04.67] WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_ForPastShift_ReturnsUnprocessableEntity [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.6654250+01:00">
<Text>[xUnit.net 00:00:04.68] WorkClub.Tests.Integration.Shifts.ShiftCrudTests.ListShifts_WithDateFilter_ReturnsFilteredShifts [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.6699690+01:00">
<Text>[xUnit.net 00:00:04.69] WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsMe_Unauthenticated_ReturnsUnauthorized [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.6822200+01:00">
<Text>[xUnit.net 00:00:04.70] WorkClub.Tests.Integration.Shifts.ShiftCrudTests.GetShift_ById_ReturnsShiftWithSignupList [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.6826680+01:00">
<Text>[xUnit.net 00:00:04.70] WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsCurrent_ReturnsCurrentTenantClub [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.7110020+01:00">
<Text>[xUnit.net 00:00:04.73] WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMembers_DifferentTenant_ReturnsDifferentMembers [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.7130270+01:00">
<Text>[xUnit.net 00:00:04.73] WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_WithCapacity_ReturnsOk [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.7145610+01:00">
<Text>[xUnit.net 00:00:04.73] WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsCurrent_DifferentTenant_ReturnsDifferentClub [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.7241280+01:00">
<Text>[xUnit.net 00:00:04.74] WorkClub.Tests.Integration.Shifts.ShiftCrudTests.DeleteShift_AsAdmin_DeletesShift [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.7271410+01:00">
<Text>[xUnit.net 00:00:04.75] WorkClub.Tests.Integration.Clubs.ClubEndpointsTests.GetClubsMe_ForManagerUser_ReturnsOnlyOneClub [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.7369480+01:00">
<Text>[xUnit.net 00:00:04.76] WorkClub.Tests.Integration.Shifts.ShiftCrudTests.UpdateShift_AsManager_UpdatesShift [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.7521110+01:00">
<Text>[xUnit.net 00:00:04.77] WorkClub.Tests.Integration.Shifts.ShiftCrudTests.CreateShift_AsManager_ReturnsCreated [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.7668970+01:00">
<Text>[xUnit.net 00:00:04.79] WorkClub.Tests.Integration.Data.RlsTests.RLS_BlocksAccess_WithoutTenantContext [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.7716240+01:00">
<Text>[xUnit.net 00:00:04.79] WorkClub.Tests.Integration.Tasks.TaskCrudTests.UpdateTask_InvalidTransition_ReturnsUnprocessableEntity [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.7865120+01:00">
<Text>[xUnit.net 00:00:04.81] WorkClub.Tests.Integration.Tasks.TaskCrudTests.ListTasks_FilterByStatus_ReturnsFilteredResults [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.7865490+01:00">
<Text>[xUnit.net 00:00:04.81] WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMemberById_ExistingMember_ReturnsMemberDetail [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.7874740+01:00">
<Text>[xUnit.net 00:00:04.81] WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_Duplicate_ReturnsConflict [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.7945270+01:00">
<Text>[xUnit.net 00:00:04.81] WorkClub.Tests.Integration.Shifts.ShiftCrudTests.CancelSignup_BeforeShift_ReturnsOk [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.7951670+01:00">
<Text>[xUnit.net 00:00:04.81] WorkClub.Tests.Integration.Members.MemberEndpointsTests.MemberAutoSync_NewUser_CreatesMembeRecordFromJwt [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.7968020+01:00">
<Text>[xUnit.net 00:00:04.82] WorkClub.Tests.Integration.Tasks.TaskCrudTests.UpdateTask_ValidTransition_UpdatesTask [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.8028210+01:00">
<Text>[xUnit.net 00:00:04.82] WorkClub.Tests.Integration.Tasks.TaskCrudTests.CreateTask_AsManager_ReturnsCreatedWithOpenStatus [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.8099780+01:00">
<Text>[xUnit.net 00:00:04.83] WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_ConcurrentLastSlot_HandlesRaceCondition [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.8109700+01:00">
<Text>[xUnit.net 00:00:04.83] WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMemberById_WrongTenant_ReturnsNotFound [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.8269040+01:00">
<Text>[xUnit.net 00:00:04.85] WorkClub.Tests.Integration.SmokeTests.HealthCheck_ReturnsOk [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.8274260+01:00">
<Text>[xUnit.net 00:00:04.85] WorkClub.Tests.Integration.Shifts.ShiftCrudTests.SignUpForShift_WhenFull_ReturnsConflict [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.8277220+01:00">
<Text>[xUnit.net 00:00:04.85] WorkClub.Tests.Integration.Tasks.TaskCrudTests.DeleteTask_AsAdmin_DeletesTask [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.8297730+01:00">
<Text>[xUnit.net 00:00:04.85] WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMembers_ReturnsOnlyCurrentTenantMembers [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.8367220+01:00">
<Text>[xUnit.net 00:00:04.86] WorkClub.Tests.Integration.Members.MemberEndpointsTests.GetMembersMe_ReturnsCurrentUserMembership [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.8375400+01:00">
<Text>[xUnit.net 00:00:04.86] WorkClub.Tests.Integration.Tasks.TaskCrudTests.UpdateTask_ConcurrentModification_ReturnsConflict [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.8450600+01:00">
<Text>[xUnit.net 00:00:04.86] WorkClub.Tests.Integration.Tasks.TaskCrudTests.ListTasks_ReturnsOnlyTenantTasks [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.8568330+01:00">
<Text>[xUnit.net 00:00:04.88] WorkClub.Tests.Integration.Tasks.TaskCrudTests.GetTask_ById_ReturnsTaskDetail [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:24.8570490+01:00">
<Text>[xUnit.net 00:00:04.88] WorkClub.Tests.Integration.Members.MemberEndpointsTests.MemberAutoSync_ExistingUser_DoesNotDuplicate [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:27.2470320+01:00">
<Text>[xUnit.net 00:00:07.27] WorkClub.Tests.Integration.Data.RlsTests.RLS_IsolatesData_AcrossTenants [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:27.5992620+01:00">
<Text>[xUnit.net 00:00:07.62] WorkClub.Tests.Integration.Data.MigrationTests.Migration_EnablesRowLevelSecurity [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:28.8247550+01:00">
<Text>[xUnit.net 00:00:08.84] WorkClub.Tests.Integration.Data.RlsTests.RLS_HandlesShiftSignups_WithSubquery [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:29.8085130+01:00">
<Text>[xUnit.net 00:00:09.83] WorkClub.Tests.Integration.Data.MigrationTests.Migration_CreatesTenantIsolationPolicy [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:30.1689630+01:00">
<Text>[xUnit.net 00:00:10.19] WorkClub.Tests.Integration.Data.RlsTests.RLS_CountsCorrectly_PerTenant [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:31.6437020+01:00">
<Text>[xUnit.net 00:00:11.66] WorkClub.Tests.Integration.Data.RlsTests.RLS_AllowsAccess_WithCorrectTenantContext [FAIL]</Text>
</RunInfo>
<RunInfo computerName="MacBook-Pro-von-Denis" outcome="Error" timestamp="2026-03-05T21:13:32.9573960+01:00">
<Text>[xUnit.net 00:00:12.98] WorkClub.Tests.Integration.Data.RlsTests.RLS_AllowsBypass_ForAdminRole [FAIL]</Text>
</RunInfo>
</RunInfos>
</ResultSummary>
</TestRun>