using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; using Nexus.Api.Data; using Nexus.Api.Migrations; using Xunit; namespace Nexus.Api.Tests; public sealed class MigrationSnapshotTests { [Fact] public void Historical_task_migrations_are_discoverable() { var options = new DbContextOptionsBuilder() .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().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() { var model = new NexusDbContextModelSnapshot().Model; var proposal = model.FindEntityType("Nexus.Api.Data.AgentProposal"); var request = model.FindEntityType("Nexus.Api.Data.AgentProvisionRequest"); Assert.NotNull(proposal?.FindNavigation("ProvisionRequests")); Assert.NotNull(request?.FindNavigation("Proposal")); } }