33 lines
1.1 KiB
Bash
Executable File
33 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
schema="shared/schemas/conductor-project.schema.json"
|
|
validator="./node_modules/.bin/ajv"
|
|
valid_count=0
|
|
invalid_count=0
|
|
diagnostic_count=0
|
|
|
|
for fixture in examples/project-definitions/valid-*.json; do
|
|
"$validator" validate -s "$schema" -d "$fixture" --spec=draft2020 >/dev/null
|
|
valid_count=$((valid_count + 1))
|
|
done
|
|
|
|
for fixture in \
|
|
examples/project-definitions/invalid-dropdown-option-shape.json \
|
|
examples/project-definitions/invalid-missing-required.json; do
|
|
if "$validator" validate -s "$schema" -d "$fixture" --spec=draft2020 >/dev/null 2>&1; then
|
|
echo "Expected schema rejection but fixture passed: $fixture" >&2
|
|
exit 1
|
|
fi
|
|
invalid_count=$((invalid_count + 1))
|
|
done
|
|
|
|
for fixture in \
|
|
examples/project-definitions/invalid-template-malformed.json \
|
|
examples/project-definitions/invalid-template-missing-component.json; do
|
|
"$validator" validate -s "$schema" -d "$fixture" --spec=draft2020 >/dev/null
|
|
diagnostic_count=$((diagnostic_count + 1))
|
|
done
|
|
|
|
echo "Schema matrix passed: $valid_count valid, $invalid_count expected-invalid, $diagnostic_count diagnostic-invalid."
|