Sync public scripts to 8ac7413
This commit is contained in:
parent
6d58148215
commit
2c2dfdf8e2
4 changed files with 47 additions and 1 deletions
|
|
@ -45,6 +45,7 @@ function assertNoOpenCriteria(source, name) {
|
||||||
const phase2 = read("acceptance_criteria_phase2.md");
|
const phase2 = read("acceptance_criteria_phase2.md");
|
||||||
const base = read("acceptance_criteria.md");
|
const base = read("acceptance_criteria.md");
|
||||||
const cliFirst = read("cli_acceptance_criteria.md");
|
const cliFirst = read("cli_acceptance_criteria.md");
|
||||||
|
const website = read("website_mvp_inventory.md");
|
||||||
const docsSmoke = read("scripts/docs-smoke.js");
|
const docsSmoke = read("scripts/docs-smoke.js");
|
||||||
const releaseBlockerSmoke = read("scripts/release-blocker-smoke.js");
|
const releaseBlockerSmoke = read("scripts/release-blocker-smoke.js");
|
||||||
const publicAcceptance = read("scripts/acceptance-public.sh");
|
const publicAcceptance = read("scripts/acceptance-public.sh");
|
||||||
|
|
@ -82,7 +83,35 @@ for (const [source, name] of [
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const file of ["MVP.md", "acceptance_criteria.md", "acceptance_criteria_phase2.md", "cli_acceptance_criteria.md"]) {
|
assertEveryCriterionHasStatus(website, "website_mvp_inventory.md");
|
||||||
|
assert.match(
|
||||||
|
website,
|
||||||
|
/private hosted website addendum to `acceptance_criteria\.md`, `acceptance_criteria_phase2\.md`, and `cli_acceptance_criteria\.md`/,
|
||||||
|
"website acceptance criteria must declare itself as the private hosted website addendum"
|
||||||
|
);
|
||||||
|
assert.match(
|
||||||
|
website,
|
||||||
|
/barebones functional HTML with no CSS/,
|
||||||
|
"website acceptance criteria must keep the MVP website barebones with no CSS"
|
||||||
|
);
|
||||||
|
assert.match(
|
||||||
|
website,
|
||||||
|
/Billing is not part of the MVP[\s\S]*Design-document references to billing, paid plans, or plan flags are future metadata placeholders; they do not require MVP website routes/,
|
||||||
|
"website acceptance criteria must keep billing and paid-plan placeholders outside MVP website scope"
|
||||||
|
);
|
||||||
|
assert.match(
|
||||||
|
website,
|
||||||
|
/- \[ \] \*\*Open:\*\* The private hosted website acceptance gate exists and exercises the barebones website through `disasmer\.michelpaulissen\.com`/,
|
||||||
|
"website acceptance criteria must leave the private website deployment gate explicit and open"
|
||||||
|
);
|
||||||
|
|
||||||
|
for (const file of [
|
||||||
|
"MVP.md",
|
||||||
|
"acceptance_criteria.md",
|
||||||
|
"acceptance_criteria_phase2.md",
|
||||||
|
"cli_acceptance_criteria.md",
|
||||||
|
"website_mvp_inventory.md",
|
||||||
|
]) {
|
||||||
assert(
|
assert(
|
||||||
docsSmoke.includes(`"${file}"`),
|
docsSmoke.includes(`"${file}"`),
|
||||||
`docs smoke must include ${file} as user-facing acceptance context`
|
`docs smoke must include ${file} as user-facing acceptance context`
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ node scripts/tenant-isolation-contract-smoke.js
|
||||||
node scripts/cli-error-exit-smoke.js
|
node scripts/cli-error-exit-smoke.js
|
||||||
scripts/release-source-scan.sh
|
scripts/release-source-scan.sh
|
||||||
cargo test --manifest-path private/hosted-policy/Cargo.toml
|
cargo test --manifest-path private/hosted-policy/Cargo.toml
|
||||||
|
node private/hosted-policy/scripts/hosted-signup-contract-smoke.js
|
||||||
node private/hosted-policy/scripts/prepare-public-release-dryrun-deployment.js
|
node private/hosted-policy/scripts/prepare-public-release-dryrun-deployment.js
|
||||||
node private/hosted-policy/scripts/hosted-deployment-smoke.js
|
node private/hosted-policy/scripts/hosted-deployment-smoke.js
|
||||||
node private/hosted-policy/scripts/hosted-community-smoke.js
|
node private/hosted-policy/scripts/hosted-community-smoke.js
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,21 @@ expect(
|
||||||
"billing plan flags are placeholders",
|
"billing plan flags are placeholders",
|
||||||
/Design-document references to billing, paid plans, or plan flags are future metadata placeholders; they do not require MVP CLI commands, coordinator routes, schemas, migrations, website controls, or service logic/
|
/Design-document references to billing, paid plans, or plan flags are future metadata placeholders; they do not require MVP CLI commands, coordinator routes, schemas, migrations, website controls, or service logic/
|
||||||
);
|
);
|
||||||
|
expect(
|
||||||
|
criteria,
|
||||||
|
"hosted signup remains private Authentik-backed flow",
|
||||||
|
/Hosted account creation is available only through the private hosted identity flow, backed by Authentik[\s\S]*first-login account\/project creation stays inside/
|
||||||
|
);
|
||||||
|
expect(
|
||||||
|
criteria,
|
||||||
|
"hosted signup provider and password policy criteria",
|
||||||
|
/approved external identity-provider requirement[\s\S]*disasmer_native_password_signup_allowed: false/
|
||||||
|
);
|
||||||
|
expect(
|
||||||
|
criteria,
|
||||||
|
"hosted signup sanitized failure criteria",
|
||||||
|
/Signup failures do not disclose moderation, abuse-scoring, or allow\/deny internals[\s\S]*stripping issuer, allowlist, abuse-score, moderation-note, and provider-secret details/
|
||||||
|
);
|
||||||
|
|
||||||
const lines = criterionLines(criteria);
|
const lines = criterionLines(criteria);
|
||||||
assert(lines.length > 0, "CLI-first criteria must contain criteria lines");
|
assert(lines.length > 0, "CLI-first criteria must contain criteria lines");
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ const userFacingDocs = [
|
||||||
"acceptance_criteria.md",
|
"acceptance_criteria.md",
|
||||||
"acceptance_criteria_phase2.md",
|
"acceptance_criteria_phase2.md",
|
||||||
"cli_acceptance_criteria.md",
|
"cli_acceptance_criteria.md",
|
||||||
|
"website_mvp_inventory.md",
|
||||||
].map((file) => [file, fs.readFileSync(path.join(repo, file), "utf8")]);
|
].map((file) => [file, fs.readFileSync(path.join(repo, file), "utf8")]);
|
||||||
const publicAcceptance = fs.readFileSync(
|
const publicAcceptance = fs.readFileSync(
|
||||||
path.join(repo, "scripts/acceptance-public.sh"),
|
path.join(repo, "scripts/acceptance-public.sh"),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue