proposal-system/api/tests/ProposalSystem.Tests/ProposalSystem.Tests.csproj

36 lines
1.6 KiB
XML
Raw Normal View History

test: bootstrap test infrastructure with critical coverage (QA-C1 through QA-C6) QA-C1: Create xUnit test project, add to solution, wire dependencies - api/tests/ProposalSystem.Tests with xUnit + FluentAssertions + NSubstitute - InMemory EF Core provider for isolated DB tests QA-C2: Proposal state machine transition tests (16 tests) - Valid: InReview->Approved, Approved->Sent, Sent->Revised - Invalid: InReview->Sent, Approved->Revised, Draft->Approved, etc. - Edge cases: idempotency, missing line items, revision line item copying - Audit and job publisher verification QA-C3: Authorization attribute tests (16 tests) - Controller-level [Authorize] on all controllers except AuthController - Role requirements: admins/sysadmins on admin actions - Dispatcher exclusion from admin/sysadmin routes - SysAdmin-only user management enforcement QA-C4: InternalApiKeyMiddleware tests (8 tests) - Valid key sets claims and calls next - Invalid key passes through to JWT (no 401/403) - Missing key/empty config disables middleware - Documents API-C1 vulnerability (key works on any path) QA-C5: ProtectedRoute and RoleGuard tests (12 tests, vitest) - ProtectedRoute: renders children when authenticated, redirects when not - RoleGuard: role-based access, dispatcher/admin/sysadmin enforcement - authSlice: setUser, logout, expired token handling QA-C6: Lambda SQS handler tests (19 tests, pytest) - pdf-generate: batch processing, failure reporting, malformed body - suggestions: batch processing, proposal-not-found skip, AI item preservation - API key caching, retry helpers Total: 107 tests (76 .NET + 12 web + 19 Python), all passing.
2026-05-27 17:31:18 -04:00
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="10.0.11" />
chore(deps): misc version bumps (#306) Bumps Microsoft.AspNetCore.Authentication.JwtBearer from 8.0.29 to 8.0.30 Bumps Microsoft.EntityFrameworkCore from 8.0.29 to 8.0.30 Bumps Microsoft.EntityFrameworkCore.Design from 8.0.29 to 8.0.30 Bumps Microsoft.EntityFrameworkCore.InMemory from 8.0.29 to 8.0.30 Bumps Microsoft.EntityFrameworkCore.Sqlite from 8.0.29 to 8.0.30 Bumps Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore from 8.0.29 to 8.0.30 Bumps Microsoft.NET.Test.Sdk from 18.8.1 to 18.9.0 Bumps NSubstitute from 6.0.0 to 6.2.0 --- updated-dependencies: - dependency-name: Microsoft.AspNetCore.Authentication.JwtBearer dependency-version: 8.0.30 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: Microsoft.EntityFrameworkCore dependency-version: 8.0.30 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: Microsoft.EntityFrameworkCore.Design dependency-version: 8.0.30 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: Microsoft.EntityFrameworkCore.InMemory dependency-version: 8.0.30 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: Microsoft.EntityFrameworkCore.Sqlite dependency-version: 8.0.30 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore dependency-version: 8.0.30 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: Microsoft.NET.Test.Sdk dependency-version: 18.9.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: api - dependency-name: NSubstitute dependency-version: 6.2.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: api ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-17 22:48:15 +00:00
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.9.0" />
test: bootstrap test infrastructure with critical coverage (QA-C1 through QA-C6) QA-C1: Create xUnit test project, add to solution, wire dependencies - api/tests/ProposalSystem.Tests with xUnit + FluentAssertions + NSubstitute - InMemory EF Core provider for isolated DB tests QA-C2: Proposal state machine transition tests (16 tests) - Valid: InReview->Approved, Approved->Sent, Sent->Revised - Invalid: InReview->Sent, Approved->Revised, Draft->Approved, etc. - Edge cases: idempotency, missing line items, revision line item copying - Audit and job publisher verification QA-C3: Authorization attribute tests (16 tests) - Controller-level [Authorize] on all controllers except AuthController - Role requirements: admins/sysadmins on admin actions - Dispatcher exclusion from admin/sysadmin routes - SysAdmin-only user management enforcement QA-C4: InternalApiKeyMiddleware tests (8 tests) - Valid key sets claims and calls next - Invalid key passes through to JWT (no 401/403) - Missing key/empty config disables middleware - Documents API-C1 vulnerability (key works on any path) QA-C5: ProtectedRoute and RoleGuard tests (12 tests, vitest) - ProtectedRoute: renders children when authenticated, redirects when not - RoleGuard: role-based access, dispatcher/admin/sysadmin enforcement - authSlice: setUser, logout, expired token handling QA-C6: Lambda SQS handler tests (19 tests, pytest) - pdf-generate: batch processing, failure reporting, malformed body - suggestions: batch processing, proposal-not-found skip, AI item preservation - API key caching, retry helpers Total: 107 tests (76 .NET + 12 web + 19 Python), all passing.
2026-05-27 17:31:18 -04:00
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="4.0.0">
test: bootstrap test infrastructure with critical coverage (QA-C1 through QA-C6) QA-C1: Create xUnit test project, add to solution, wire dependencies - api/tests/ProposalSystem.Tests with xUnit + FluentAssertions + NSubstitute - InMemory EF Core provider for isolated DB tests QA-C2: Proposal state machine transition tests (16 tests) - Valid: InReview->Approved, Approved->Sent, Sent->Revised - Invalid: InReview->Sent, Approved->Revised, Draft->Approved, etc. - Edge cases: idempotency, missing line items, revision line item copying - Audit and job publisher verification QA-C3: Authorization attribute tests (16 tests) - Controller-level [Authorize] on all controllers except AuthController - Role requirements: admins/sysadmins on admin actions - Dispatcher exclusion from admin/sysadmin routes - SysAdmin-only user management enforcement QA-C4: InternalApiKeyMiddleware tests (8 tests) - Valid key sets claims and calls next - Invalid key passes through to JWT (no 401/403) - Missing key/empty config disables middleware - Documents API-C1 vulnerability (key works on any path) QA-C5: ProtectedRoute and RoleGuard tests (12 tests, vitest) - ProtectedRoute: renders children when authenticated, redirects when not - RoleGuard: role-based access, dispatcher/admin/sysadmin enforcement - authSlice: setUser, logout, expired token handling QA-C6: Lambda SQS handler tests (19 tests, pytest) - pdf-generate: batch processing, failure reporting, malformed body - suggestions: batch processing, proposal-not-found skip, AI item preservation - API key caching, retry helpers Total: 107 tests (76 .NET + 12 web + 19 Python), all passing.
2026-05-27 17:31:18 -04:00
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
Bump Amazon.Lambda.AspNetCoreServer.Hosting and 14 others (#149) Bumps Amazon.Lambda.AspNetCoreServer.Hosting from 1.7.2 to 1.10.0 Bumps AWSSDK.DynamoDBv2 from 3.7.400 to 3.7.513.4 Bumps AWSSDK.Extensions.NETCore.Setup from 3.7.400 to 3.7.400.2 Bumps AWSSDK.S3 from 3.7.405 to 3.7.511.8 Bumps AWSSDK.SecretsManager from 3.7.500 to 3.7.504.43 Bumps AWSSDK.SQS from 3.7.500 to 3.7.502.57 Bumps FluentAssertions from 7.2.0 to 7.2.2 Bumps FluentValidation from 11.11.0 to 11.12.0 Bumps Microsoft.AspNetCore.Authentication.JwtBearer from 8.0.27 to 8.0.28 Bumps Microsoft.EntityFrameworkCore from 8.0.27 to 8.0.28 Bumps Microsoft.EntityFrameworkCore.Design from 8.0.11 to 8.0.28 Bumps Microsoft.EntityFrameworkCore.InMemory from 8.0.11 to 8.0.28 Bumps Microsoft.EntityFrameworkCore.Sqlite from 8.0.11 to 8.0.28 Bumps Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore from 8.0.27 to 8.0.28 Bumps Microsoft.NET.Test.Sdk from 17.12.0 to 17.14.1 --- updated-dependencies: - dependency-name: Amazon.Lambda.AspNetCoreServer.Hosting dependency-version: 1.10.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: api - dependency-name: AWSSDK.DynamoDBv2 dependency-version: 3.7.513.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: AWSSDK.Extensions.NETCore.Setup dependency-version: 3.7.400.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: AWSSDK.S3 dependency-version: 3.7.511.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: AWSSDK.SecretsManager dependency-version: 3.7.504.43 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: AWSSDK.SQS dependency-version: 3.7.502.57 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: FluentValidation dependency-version: 11.12.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: api - dependency-name: Microsoft.AspNetCore.Authentication.JwtBearer dependency-version: 8.0.28 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: Microsoft.EntityFrameworkCore dependency-version: 8.0.28 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: Microsoft.EntityFrameworkCore.Design dependency-version: 8.0.28 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore dependency-version: 8.0.28 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: FluentAssertions dependency-version: 7.2.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: Microsoft.EntityFrameworkCore.InMemory dependency-version: 8.0.28 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: Microsoft.EntityFrameworkCore.Sqlite dependency-version: 8.0.28 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: Microsoft.NET.Test.Sdk dependency-version: 17.14.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: api ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-18 16:13:33 -04:00
<PackageReference Include="FluentAssertions" Version="7.2.2" />
chore(deps): misc version bumps (#306) Bumps Microsoft.AspNetCore.Authentication.JwtBearer from 8.0.29 to 8.0.30 Bumps Microsoft.EntityFrameworkCore from 8.0.29 to 8.0.30 Bumps Microsoft.EntityFrameworkCore.Design from 8.0.29 to 8.0.30 Bumps Microsoft.EntityFrameworkCore.InMemory from 8.0.29 to 8.0.30 Bumps Microsoft.EntityFrameworkCore.Sqlite from 8.0.29 to 8.0.30 Bumps Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore from 8.0.29 to 8.0.30 Bumps Microsoft.NET.Test.Sdk from 18.8.1 to 18.9.0 Bumps NSubstitute from 6.0.0 to 6.2.0 --- updated-dependencies: - dependency-name: Microsoft.AspNetCore.Authentication.JwtBearer dependency-version: 8.0.30 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: Microsoft.EntityFrameworkCore dependency-version: 8.0.30 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: Microsoft.EntityFrameworkCore.Design dependency-version: 8.0.30 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: Microsoft.EntityFrameworkCore.InMemory dependency-version: 8.0.30 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: Microsoft.EntityFrameworkCore.Sqlite dependency-version: 8.0.30 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore dependency-version: 8.0.30 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: api - dependency-name: Microsoft.NET.Test.Sdk dependency-version: 18.9.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: api - dependency-name: NSubstitute dependency-version: 6.2.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: api ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-17 22:48:15 +00:00
<PackageReference Include="NSubstitute" Version="6.2.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="8.0.30" />
test: bootstrap test infrastructure with critical coverage (QA-C1 through QA-C6) QA-C1: Create xUnit test project, add to solution, wire dependencies - api/tests/ProposalSystem.Tests with xUnit + FluentAssertions + NSubstitute - InMemory EF Core provider for isolated DB tests QA-C2: Proposal state machine transition tests (16 tests) - Valid: InReview->Approved, Approved->Sent, Sent->Revised - Invalid: InReview->Sent, Approved->Revised, Draft->Approved, etc. - Edge cases: idempotency, missing line items, revision line item copying - Audit and job publisher verification QA-C3: Authorization attribute tests (16 tests) - Controller-level [Authorize] on all controllers except AuthController - Role requirements: admins/sysadmins on admin actions - Dispatcher exclusion from admin/sysadmin routes - SysAdmin-only user management enforcement QA-C4: InternalApiKeyMiddleware tests (8 tests) - Valid key sets claims and calls next - Invalid key passes through to JWT (no 401/403) - Missing key/empty config disables middleware - Documents API-C1 vulnerability (key works on any path) QA-C5: ProtectedRoute and RoleGuard tests (12 tests, vitest) - ProtectedRoute: renders children when authenticated, redirects when not - RoleGuard: role-based access, dispatcher/admin/sysadmin enforcement - authSlice: setUser, logout, expired token handling QA-C6: Lambda SQS handler tests (19 tests, pytest) - pdf-generate: batch processing, failure reporting, malformed body - suggestions: batch processing, proposal-not-found skip, AI item preservation - API key caching, retry helpers Total: 107 tests (76 .NET + 12 web + 19 Python), all passing.
2026-05-27 17:31:18 -04:00
<PackageReference Include="coverlet.collector" Version="6.0.4">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\ProposalSystem.Api\ProposalSystem.Api.csproj" />
<ProjectReference Include="..\..\src\ProposalSystem.Application\ProposalSystem.Application.csproj" />
<ProjectReference Include="..\..\src\ProposalSystem.Infrastructure\ProposalSystem.Infrastructure.csproj" />
<ProjectReference Include="..\..\src\ProposalSystem.Domain\ProposalSystem.Domain.csproj" />
</ItemGroup>
</Project>