feat: unify installation model catalog
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
# Regression tests for the fail-closed schema-v3-only absence gate.
|
||||
# Regression tests for the fail-closed schema-v4-only absence gate.
|
||||
set -euo pipefail
|
||||
|
||||
project_root="$(cd "$(dirname "$0")/.." && pwd -P)"
|
||||
@@ -25,7 +25,7 @@ fail() {
|
||||
}
|
||||
|
||||
write_fixture_descriptor() {
|
||||
local path="$1" workspace_key="${2:-workspace:}" schema_key="${3:- schema_version: 3}"
|
||||
local path="$1" workspace_key="${2:-workspace:}" schema_key="${3:- schema_version: 4}"
|
||||
printf '%s\n' "$workspace_key" "$schema_key" >"$path"
|
||||
cat >>"$path" <<'YAML'
|
||||
id: fixture-workspace
|
||||
@@ -36,18 +36,6 @@ dwh:
|
||||
database: warehouse
|
||||
schema: public
|
||||
supported_transports: [postgres_direct]
|
||||
semantic_index:
|
||||
vector_store:
|
||||
engine: qdrant
|
||||
collection: fixture-workspace
|
||||
dimensions: 1024
|
||||
distance: cosine
|
||||
embedding:
|
||||
provider: ollama_internal
|
||||
model: qwen3-embedding:0.6b
|
||||
dimensions: 1024
|
||||
llm_policy:
|
||||
allowed: [fixture/model]
|
||||
YAML
|
||||
}
|
||||
|
||||
@@ -62,7 +50,7 @@ seed_fixture() {
|
||||
"$real_git" -C "$fixture" init -q
|
||||
"$real_git" -C "$fixture" config user.email fixture@example.invalid
|
||||
"$real_git" -C "$fixture" config user.name Fixture
|
||||
printf '%s\n' 'export const schemaVersion = 3;' >"$fixture/backend/src/server.ts"
|
||||
printf '%s\n' 'export const schemaVersion = 4;' >"$fixture/backend/src/server.ts"
|
||||
printf '%s\n' 'export const spaced = true;' >"$fixture/backend/src/nested dir/file name.ts"
|
||||
newline_path="$fixture/backend/src/line
|
||||
break.ts"
|
||||
@@ -74,7 +62,7 @@ break.ts"
|
||||
printf '%s\n' '#!/usr/bin/env bash' 'echo operator-smoke' >"$fixture/scripts/workspace-registry-smoke.sh"
|
||||
write_fixture_descriptor "$fixture/scripts/fixtures/workspace-registry-smoke.yaml"
|
||||
write_fixture_descriptor "$fixture/scripts/fixtures/workspace-registry-windows.yaml"
|
||||
printf '%s\n' 'Write-Output "schema v3"' >"$fixture/scripts/test-windows-clone-contract.ps1"
|
||||
printf '%s\n' 'Write-Output "schema v4"' >"$fixture/scripts/test-windows-clone-contract.ps1"
|
||||
"$real_git" -C "$fixture" add .
|
||||
"$real_git" -C "$fixture" commit -qm seed
|
||||
}
|
||||
@@ -307,14 +295,14 @@ EOF
|
||||
commit_fixture powershell-bundle
|
||||
expect_pass "PowerShell non-workspace bundle"
|
||||
|
||||
# Quoted/space/indented YAML keys are real mappings; v3 passes and non-v3 fails.
|
||||
# Quoted/space/indented YAML keys are real mappings; v4 passes and non-v4 fails.
|
||||
seed_fixture
|
||||
write_fixture_descriptor \
|
||||
"$fixture/deploy/workspaces/example.yaml" \
|
||||
'"workspace" :' \
|
||||
" 'schema_version' : 3"
|
||||
commit_fixture quoted-yaml-v3
|
||||
expect_pass "quoted and indented workspace v3"
|
||||
" 'schema_version' : 4"
|
||||
commit_fixture quoted-yaml-v4
|
||||
expect_pass "quoted and indented workspace v4"
|
||||
|
||||
seed_fixture
|
||||
cat >"$fixture/deploy/workspaces/example.yaml" <<'EOF'
|
||||
@@ -325,7 +313,7 @@ commit_fixture quoted-yaml-noncanonical
|
||||
expect_rejected "quoted workspace noncanonical schema" "deploy/workspaces/example.yaml"
|
||||
|
||||
seed_fixture
|
||||
printf '%s\n' 'workspace: { schema_version: 3 }' >"$fixture/deploy/workspaces/example.yaml"
|
||||
printf '%s\n' 'workspace: { schema_version: 4 }' >"$fixture/deploy/workspaces/example.yaml"
|
||||
commit_fixture inline-workspace
|
||||
expect_rejected "inline workspace mapping" "deploy/workspaces/example.yaml"
|
||||
|
||||
@@ -388,8 +376,8 @@ printf '%s\n' 'const revision = { revision: { id: "x", state: "operational" } };
|
||||
commit_fixture revision-object-state
|
||||
expect_rejected "bounded revision object state" "backend/scripts/runtime-check.mjs"
|
||||
|
||||
# A top-level workspace descriptor has one exact schema_version: 3 key.
|
||||
for malformed in schema-v1 schema-v2 leading-zero hexadecimal multiline duplicate; do
|
||||
# A top-level workspace descriptor has one exact schema_version: 4 key.
|
||||
for malformed in schema-v1 schema-v2 schema-v3 leading-zero hexadecimal multiline duplicate; do
|
||||
seed_fixture
|
||||
case "$malformed" in
|
||||
schema-v1)
|
||||
@@ -398,17 +386,20 @@ for malformed in schema-v1 schema-v2 leading-zero hexadecimal multiline duplicat
|
||||
schema-v2)
|
||||
printf '%s\n' 'workspace:' ' schema_version: 2' >"$fixture/deploy/workspaces/example.yaml"
|
||||
;;
|
||||
schema-v3)
|
||||
printf '%s\n' 'workspace:' ' schema_version: 3' >"$fixture/deploy/workspaces/example.yaml"
|
||||
;;
|
||||
leading-zero)
|
||||
printf '%s\n' 'workspace:' ' schema_version: 02' >"$fixture/deploy/workspaces/example.yaml"
|
||||
printf '%s\n' 'workspace:' ' schema_version: 04' >"$fixture/deploy/workspaces/example.yaml"
|
||||
;;
|
||||
hexadecimal)
|
||||
printf '%s\n' 'workspace:' ' schema_version: 0x2' >"$fixture/deploy/workspaces/example.yaml"
|
||||
printf '%s\n' 'workspace:' ' schema_version: 0x4' >"$fixture/deploy/workspaces/example.yaml"
|
||||
;;
|
||||
multiline)
|
||||
printf '%s\n' 'workspace:' ' schema_version: >' ' 3' >"$fixture/deploy/workspaces/example.yaml"
|
||||
printf '%s\n' 'workspace:' ' schema_version: >' ' 4' >"$fixture/deploy/workspaces/example.yaml"
|
||||
;;
|
||||
duplicate)
|
||||
printf '%s\n' 'workspace:' ' schema_version: 3' ' schema_version: 3' >"$fixture/deploy/workspaces/example.yaml"
|
||||
printf '%s\n' 'workspace:' ' schema_version: 4' ' schema_version: 4' >"$fixture/deploy/workspaces/example.yaml"
|
||||
;;
|
||||
esac
|
||||
commit_fixture "yaml-$malformed"
|
||||
|
||||
Reference in New Issue
Block a user