const test = require("node:test"); const assert = require("node:assert/strict"); const fs = require("node:fs"); const path = require("node:path"); const root = path.resolve(__dirname, ".."); test("supports the current Ubuntu LTS baselines", () => { const source = fs.readFileSync(path.join(root, "install.sh"), "utf8"); assert.match(source, /22\\.04\\|24\\.04/); }); test("official binary download resumes instead of restarting", () => { const source = fs.readFileSync(path.join(root, "install.sh"), "utf8"); assert.match(source, /--continue-at -/); assert.match(source, /sha256sum -c/); }); test("Forgejo stays on loopback and registration is disabled", () => { const ini = fs.readFileSync(path.join(root, "app.ini.template"), "utf8"); assert.match(ini, /HTTP_ADDR = 127\.0\.0\.1/); assert.match(ini, /DISABLE_REGISTRATION = true/); }); test("node belongs to zero-sense and enterprise upstream", () => { const source = fs.readFileSync(path.join(root, "install.sh"), "utf8"); assert.match(source, /DOMAIN-ZS/); assert.match(source, /AW-GZ-001/); assert.doesNotMatch(source, /owner:"ICE-GL/); }); test("secrets and recipient email are not embedded", () => { const combined = fs.readdirSync(root).filter(name => fs.statSync(path.join(root, name)).isFile()).map(name => fs.readFileSync(path.join(root, name), "utf8")).join("\n"); assert.doesNotMatch(combined, /@qq\.com|BEGIN .*PRIVATE KEY|Bearer [A-Za-z0-9]/); });