// Standalone JS port of `lib/personal-org.ts::isPersonalOrgName` // for offline verification. const PERSONAL_ORG_SUFFIX = " (Personal)"; function isPersonalOrgName(orgName) { if (!orgName) return false; return orgName.trimEnd().endsWith(PERSONAL_ORG_SUFFIX); } const cases = [ ["Bob Müller (Personal)", true, "personal account"], ["Acme GmbH", false, "company"], ["Acme (Personal) Ltd", false, "suffix in middle does not count"], ["Bob (Personal) ", true, "trailing whitespace tolerated"], ["Bob (personal)", false, "case-sensitive — lowercase doesn't match"], ["", false, "empty"], [null, false, "null"], [undefined, false, "undefined"], ["Bob (Personal)x", false, "non-trailing suffix"], [" (Personal)", true, "minimal — empty user name (degenerate but matches)"], ]; let pass = 0, fail = 0; for (const [name, expected, note] of cases) { const got = isPersonalOrgName(name); const ok = got === expected; console.log(`${ok ? "PASS" : "FAIL"} got=${got} want=${expected} [${note}] input=${JSON.stringify(name)}`); if (ok) pass++; else fail++; } console.log(`\n${pass} pass, ${fail} fail`); process.exit(fail === 0 ? 0 : 1);