90 lines
2.2 KiB
TypeScript
90 lines
2.2 KiB
TypeScript
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"
|
|
)
|
|
})
|