using MongoDB.Driver; using StellaOps.TaskRunner.Infrastructure.Execution; using Xunit; namespace StellaOps.TaskRunner.Tests; public sealed class MongoIndexModelTests { [Fact] public void StateStore_indexes_match_contract() { var models = MongoPackRunStateStore.GetIndexModels().ToArray(); Assert.Collection(models, model => Assert.Equal("pack_runs_updatedAt_desc", model.Options.Name), model => Assert.Equal("pack_runs_tenant_updatedAt_desc", model.Options.Name)); Assert.True(models[1].Options.Sparse ?? false); } [Fact] public void LogStore_indexes_match_contract() { var models = MongoPackRunLogStore.GetIndexModels().ToArray(); Assert.Collection(models, model => { Assert.Equal("pack_run_logs_run_sequence", model.Options.Name); Assert.True(model.Options.Unique ?? false); }, model => Assert.Equal("pack_run_logs_run_timestamp", model.Options.Name)); } [Fact] public void ArtifactStore_indexes_match_contract() { var models = MongoPackRunArtifactUploader.GetIndexModels().ToArray(); Assert.Collection(models, model => { Assert.Equal("pack_artifacts_run_name", model.Options.Name); Assert.True(model.Options.Unique ?? false); }, model => Assert.Equal("pack_artifacts_run", model.Options.Name)); } [Fact] public void ApprovalStore_indexes_match_contract() { var models = MongoPackRunApprovalStore.GetIndexModels().ToArray(); Assert.Collection(models, model => { Assert.Equal("pack_run_approvals_run_approval", model.Options.Name); Assert.True(model.Options.Unique ?? false); }, model => Assert.Equal("pack_run_approvals_run_status", model.Options.Name)); } }