Visual E2E at five viewports, typecheck e2e-tests in the gate, drop unused icons
CI / full-gate (push) Successful in 3m29s
CI / full-gate (push) Successful in 3m29s
This commit is contained in:
+6
-1
@@ -32,11 +32,16 @@ test("the commit-hash image is pushed even when the gate no-ops", () => {
|
||||
test("every E2E suite the gate runs writes its artifacts as the invoking user", () => {
|
||||
// The documented hand-run commands carry the same flag (src/compose.test.ts).
|
||||
const runs = gate.split("\n").filter((l) => /docker compose .*\brun\b.*\be2e\b/.test(l));
|
||||
assert.equal(runs.length, 2, "the suite helper and the devstack run");
|
||||
assert.equal(runs.length, 3, "the e2e-tests typecheck, the suite helper and the devstack run");
|
||||
for (const line of runs)
|
||||
assert.match(line, /--user "\$\(id -u\):\$\(id -g\)"/, `runs as the caller: ${line.trim()}`);
|
||||
});
|
||||
|
||||
test("the gate typechecks e2e-tests in the runner image, where @playwright/test resolves", () => {
|
||||
assert.match(gate, /docker compose .*\brun\b.*--no-deps\b.*\be2e\b npm run typecheck/);
|
||||
assert.match(read("e2e-tests/package.json"), /"typecheck": "tsc --noEmit"/);
|
||||
});
|
||||
|
||||
test("only *.md counts as docs; a dirty tree and a rename both count as changed", () => {
|
||||
assert.ok(gate.includes("\\.md$"), "the non-docs match is a *.md suffix test");
|
||||
assert.match(gate, /git status --porcelain --no-renames/, "uncommitted code and a staged rename can never be skipped over");
|
||||
|
||||
@@ -9,12 +9,9 @@ export const ICON_NAMES: Record<string, string> = {
|
||||
"i-bell": "bell",
|
||||
"i-box": "box",
|
||||
"i-cal": "calendar",
|
||||
"i-chart": "chart-no-axes-column",
|
||||
"i-check-circle": "circle-check",
|
||||
"i-chev": "chevron-right",
|
||||
"i-cols": "columns-3",
|
||||
"i-copy": "copy",
|
||||
"i-download": "download",
|
||||
"i-edit": "pencil",
|
||||
"i-globe": "globe",
|
||||
"i-grid": "layout-grid",
|
||||
|
||||
Reference in New Issue
Block a user