test: align local compose service contract

This commit is contained in:
Codex
2026-08-29 15:41:02 +02:00
parent 58ee9cffe4
commit 7f968359ac
2 changed files with 12 additions and 3 deletions
@@ -294,8 +294,8 @@ test("Windows clone contract copies the shared complete schema v3 descriptor int
expect(windows).toContain('$workspaceDestination = Join-Path $workspaceDirectory "workspace.yaml"'); expect(windows).toContain('$workspaceDestination = Join-Path $workspaceDirectory "workspace.yaml"');
expect(windows).toContain('Join-Path $workspaceEvidence "guide.md"'); expect(windows).toContain('Join-Path $workspaceEvidence "guide.md"');
expect(windows).toContain('THT_AUTH_CONFIG_ROOT=$authConfigRoot'); expect(windows).toContain('THT_AUTH_CONFIG_ROOT=$authConfigRoot');
expect(windows).toContain('"core,embedding,embedding-model-init,frontend,qdrant"'); expect(windows).toContain('"catalog-db,core,embedding,embedding-model-init,frontend,qdrant"');
expect(windows).toContain('"core,embedding,frontend,qdrant"'); expect(windows).toContain('"catalog-db,core,embedding,frontend,qdrant"');
expect(windows).not.toContain('schema_version: 3'); expect(windows).not.toContain('schema_version: 3');
expect(descriptor).toMatchObject({ expect(descriptor).toMatchObject({
workspace: { workspace: {
+10 -1
View File
@@ -9,8 +9,17 @@ def test_local_compose_uses_the_generic_external_endpoint_contract():
local = yaml.safe_load((root / "deploy/compose.local.yaml").read_text()) local = yaml.safe_load((root / "deploy/compose.local.yaml").read_text())
assert set(compose["services"]) == { assert set(compose["services"]) == {
"core", "frontend", "qdrant", "embedding", "embedding-model-init", "workspace-maintenance", "core",
"catalog-db",
"catalog-migrate",
"frontend",
"qdrant",
"embedding",
"embedding-model-init",
"workspace-maintenance",
} }
# Catalog migrations are explicit maintenance, while the catalog database is required by core.
assert compose["services"]["catalog-migrate"].get("profiles") == ["catalog-maintenance"]
# workspace-maintenance is profile-gated: it must not be part of the default local startup. # workspace-maintenance is profile-gated: it must not be part of the default local startup.
assert compose["services"]["workspace-maintenance"].get("profiles") == ["workspace-maintenance"] assert compose["services"]["workspace-maintenance"].get("profiles") == ["workspace-maintenance"]
# Authentication is controlled by the mounted configuration; the local profile # Authentication is controlled by the mounted configuration; the local profile