update tests
This commit is contained in:
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");
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user