Build, Test, and Push CFDM Docker Image / test (push) Failing after 51s
Build, Test, and Push CFDM Docker Image / build-and-push (push) Has been skipped
Build, Test, and Push CFDM Docker Image / update-wiki (push) Has been skipped
Build, Test, and Push CFDM Docker Image / create-release (push) Has been skipped
44 lines
1.3 KiB
TypeScript
44 lines
1.3 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
dnsRecordNamesMatch,
|
|
dnsNameToSubdomainLabel,
|
|
normalizeDnsRecordName,
|
|
} from "../src/subdomain.js";
|
|
|
|
const ZONE = "rkns.top";
|
|
|
|
describe("normalizeDnsRecordName", () => {
|
|
it("normalizes short labels to FQDN", () => {
|
|
expect(normalizeDnsRecordName("de", ZONE)).toBe("de.rkns.top");
|
|
expect(normalizeDnsRecordName("mhome", ZONE)).toBe("mhome.rkns.top");
|
|
});
|
|
|
|
it("keeps FQDN unchanged", () => {
|
|
expect(normalizeDnsRecordName("ihome.rkns.top", ZONE)).toBe(
|
|
"ihome.rkns.top",
|
|
);
|
|
});
|
|
|
|
it("maps apex forms to zone name", () => {
|
|
expect(normalizeDnsRecordName("@", ZONE)).toBe("rkns.top");
|
|
expect(normalizeDnsRecordName("rkns.top", ZONE)).toBe("rkns.top");
|
|
});
|
|
});
|
|
|
|
describe("dnsRecordNamesMatch", () => {
|
|
it("matches short label and FQDN for the same host", () => {
|
|
expect(dnsRecordNamesMatch("de", "de.rkns.top", ZONE)).toBe(true);
|
|
expect(dnsRecordNamesMatch("mhome", "mhome.rkns.top", ZONE)).toBe(true);
|
|
});
|
|
|
|
it("does not match different hosts", () => {
|
|
expect(dnsRecordNamesMatch("de", "mhome.rkns.top", ZONE)).toBe(false);
|
|
});
|
|
});
|
|
|
|
describe("dnsNameToSubdomainLabel", () => {
|
|
it("extracts label from FQDN", () => {
|
|
expect(dnsNameToSubdomainLabel("de.rkns.top", ZONE)).toBe("de");
|
|
});
|
|
});
|