fix(db): register legacy task migrations
CI - Build & Test / Backend (.NET) (push) Successful in 50s
CI - Build & Test / Backend integration (PostgreSQL/Toxiproxy) (push) Failing after 58s
CI - Build & Test / Frontend (Vue/TS) (push) Has been cancelled
CI - Build & Test / Security Check (push) Has been cancelled
CI - Build & Test / Deploy Nexus (push) Has been cancelled

This commit is contained in:
AzuTear
2026-08-01 01:44:52 +02:00
parent 3dac335767
commit bf32a7def2
5 changed files with 95 additions and 52 deletions
+19
View File
@@ -1,3 +1,7 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Nexus.Api.Data;
using Nexus.Api.Migrations;
using Xunit;
@@ -5,6 +9,21 @@ namespace Nexus.Api.Tests;
public sealed class MigrationSnapshotTests
{
[Fact]
public void Historical_task_migrations_are_discoverable()
{
var options = new DbContextOptionsBuilder<NexusDbContext>()
.UseNpgsql(
"Host=127.0.0.1;Database=nexus_migration_contract;Username=nexus;Password=unused")
.Options;
using var db = new NexusDbContext(options);
var migrations = db.GetService<IMigrationsAssembly>().Migrations.Keys;
Assert.Contains("20260618233000_AddTaskParentChild", migrations);
Assert.Contains("20260618233001_AddTaskDueDate", migrations);
Assert.Contains("20260618233002_AddActivityTaskReference", migrations);
}
[Fact]
public void Snapshot_builds_agent_provisioning_relationships()
{
@@ -140,7 +140,14 @@ public sealed class ToxiproxyAgentProvisioningIntegrationTests
var reconciled = await service.GetByIdAsync(created.Proposal.Id);
Assert.NotNull(reconciled);
Assert.Equal(AgentProposalStates.Ready, reconciled!.Status);
Assert.True(
string.Equals(
AgentProposalStates.Ready,
reconciled!.Status,
StringComparison.Ordinal),
$"Expected ready after read-only reconciliation, got "
+ $"'{reconciled.Status}' ({reconciled.Error?.Code}: "
+ $"{reconciled.Error?.Message}).");
Assert.Equal("release-analyst", reconciled.OpenClawAgentId);
Assert.Equal(1, gateway.CreateCalls);
}