update tests

This commit is contained in:
Alex committed 2026-05-08 13:04:18 -07:00
1 parent 4b4fae91c2
commit 0f662e1a65
1 file changed
+16 -16
@@ -52,7 +52,7 @@ beforeEach(() => {
// ── Contract ─────────────────────────────────────────────────────────────────
testStatusProviderContract("DNSProvider", {
create: () => new DNSProvider({} as any),
create: () => new DNSProvider(mockResolverInstance as any),
supportedType: "dns",
unsupportedType: "ping",
makeMonitor: () => makeMonitor(),
@@ -63,7 +63,7 @@ testStatusProviderContract("DNSProvider", {
describe("DNSProvider", () => {
it("returns success with results and payload on resolve", async () => {
mockResolverInstance.resolve4.mockResolvedValue(["1.2.3.4"]);
const provider = new DNSProvider({} as any);
const provider = new DNSProvider(mockResolverInstance as any);
const result = await provider.handle(makeMonitor());
@@ -88,63 +88,63 @@ describe("DNSProvider", () => {
});
it("calls setServers with the configured dnsServer", async () => {
const provider = new DNSProvider({} as any);
const provider = new DNSProvider(mockResolverInstance as any);
await provider.handle(makeMonitor({ dnsServer: "1.1.1.1" }));
expect(mockResolverInstance.setServers).toHaveBeenCalledWith(["1.1.1.1"]);
});
it("defaults to A record when dnsRecordType is not provided", async () => {
const provider = new DNSProvider({} as any);
const provider = new DNSProvider(mockResolverInstance as any);
const result = await provider.handle(makeMonitor({ dnsRecordType: undefined }));
expect(mockResolverInstance.resolve4).toHaveBeenCalledWith("example.com");
expect(result.payload?.recordType).toBe("A");
});
it("dispatches AAAA records to resolve6", async () => {
const provider = new DNSProvider({} as any);
const provider = new DNSProvider(mockResolverInstance as any);
await provider.handle(makeMonitor({ dnsRecordType: "AAAA" }));
expect(mockResolverInstance.resolve6).toHaveBeenCalledWith("example.com");
});
it("dispatches CNAME records to resolveCname", async () => {
const provider = new DNSProvider({} as any);
const provider = new DNSProvider(mockResolverInstance as any);
await provider.handle(makeMonitor({ dnsRecordType: "CNAME" }));
expect(mockResolverInstance.resolveCname).toHaveBeenCalledWith("example.com");
});
it("dispatches MX records to resolveMx", async () => {
const provider = new DNSProvider({} as any);
const provider = new DNSProvider(mockResolverInstance as any);
await provider.handle(makeMonitor({ dnsRecordType: "MX" }));
expect(mockResolverInstance.resolveMx).toHaveBeenCalledWith("example.com");
});
it("dispatches TXT records to resolveTxt", async () => {
const provider = new DNSProvider({} as any);
const provider = new DNSProvider(mockResolverInstance as any);
await provider.handle(makeMonitor({ dnsRecordType: "TXT" }));
expect(mockResolverInstance.resolveTxt).toHaveBeenCalledWith("example.com");
});
it("dispatches NS records to resolveNs", async () => {
const provider = new DNSProvider({} as any);
const provider = new DNSProvider(mockResolverInstance as any);
await provider.handle(makeMonitor({ dnsRecordType: "NS" }));
expect(mockResolverInstance.resolveNs).toHaveBeenCalledWith("example.com");
});
it("falls back to generic resolve for unrecognized record types", async () => {
const provider = new DNSProvider({} as any);
const provider = new DNSProvider(mockResolverInstance as any);
await provider.handle(makeMonitor({ dnsRecordType: "SOA" }));
expect(mockResolverInstance.resolve).toHaveBeenCalledWith("example.com", "SOA");
});
it("treats record type case-insensitively", async () => {
const provider = new DNSProvider({} as any);
const provider = new DNSProvider(mockResolverInstance as any);
await provider.handle(makeMonitor({ dnsRecordType: "mx" }));
expect(mockResolverInstance.resolveMx).toHaveBeenCalledWith("example.com");
});
it("returns failure response with NETWORK_ERROR when resolver rejects", async () => {
mockResolverInstance.resolve4.mockRejectedValue(new Error("ENOTFOUND"));
const provider = new DNSProvider({} as any);
const provider = new DNSProvider(mockResolverInstance as any);
const result = await provider.handle(makeMonitor());
@@ -170,7 +170,7 @@ describe("DNSProvider", () => {
it("stringifies non-Error rejections in failure response", async () => {
mockResolverInstance.resolve4.mockRejectedValue("DNS bombed");
const provider = new DNSProvider({} as any);
const provider = new DNSProvider(mockResolverInstance as any);
const result = await provider.handle(makeMonitor());
@@ -179,7 +179,7 @@ describe("DNSProvider", () => {
});
it("throws AppError when dnsServer is missing", async () => {
const provider = new DNSProvider({} as any);
const provider = new DNSProvider(mockResolverInstance as any);
await expect(provider.handle(makeMonitor({ dnsServer: undefined }))).rejects.toThrow("DNS server is required for DNS monitoring");
});
@@ -188,7 +188,7 @@ describe("DNSProvider", () => {
mockResolverInstance.setServers.mockImplementationOnce(() => {
throw new Error("");
});
const provider = new DNSProvider({} as any);
const provider = new DNSProvider(mockResolverInstance as any);
await expect(provider.handle(makeMonitor())).rejects.toThrow("Error performing DNS check");
});
@@ -197,7 +197,7 @@ describe("DNSProvider", () => {
mockResolverInstance.setServers.mockImplementationOnce(() => {
throw 42;
});
const provider = new DNSProvider({} as any);
const provider = new DNSProvider(mockResolverInstance as any);
await expect(provider.handle(makeMonitor())).rejects.toThrow("42");
});