import assert from "node:assert/strict" import test from "node:test" import { canonicalizeTenantDomain, manualVisibleForTenant, resolveManualsTenantDomain, tenantDomainVariants, } from "@/lib/manuals-tenant" test("canonicalizeTenantDomain strips protocol, port, path, and casing", () => { assert.equal( canonicalizeTenantDomain("HTTPS://RMV.AbundancePartners.App:443/manuals"), "rmv.abundancepartners.app" ) assert.equal(canonicalizeTenantDomain(""), "") assert.equal(canonicalizeTenantDomain(undefined), "") }) test("tenantDomainVariants includes root and www aliases", () => { assert.deepEqual(tenantDomainVariants("rmv.abundancepartners.app"), [ "rmv.abundancepartners.app", "www.rmv.abundancepartners.app", ]) assert.deepEqual(tenantDomainVariants("www.rockymountainvending.com"), [ "www.rockymountainvending.com", "rockymountainvending.com", ]) }) test("manualVisibleForTenant matches sourceDomain and siteVisibility aliases", () => { assert.equal( manualVisibleForTenant( { sourceDomain: "rmv.abundancepartners.app", }, "https://rmv.abundancepartners.app/manuals" ), true ) assert.equal( manualVisibleForTenant( { siteVisibility: ["www.rockymountainvending.com"], }, "rockymountainvending.com" ), true ) assert.equal( manualVisibleForTenant( { sourceDomain: "quickfreshvending.com", siteVisibility: ["quickfreshvending.com"], }, "rmv.abundancepartners.app" ), false ) }) test("resolveManualsTenantDomain prioritizes request host then env overrides", () => { assert.equal( resolveManualsTenantDomain({ requestHost: "rmv.abundancepartners.app", envTenantDomain: "fallback.example", envSiteDomain: "another.example", }), "rmv.abundancepartners.app" ) assert.equal( resolveManualsTenantDomain({ requestHost: "", envTenantDomain: "tenant.example", envSiteDomain: "site.example", }), "tenant.example" ) assert.equal( resolveManualsTenantDomain({ requestHost: "", envTenantDomain: "", envSiteDomain: "site.example", }), "site.example" ) })