import { tap, expect } from '@push.rocks/tapbundle'; import { Dns01Handler } from '../ts/handlers/Dns01Handler.js'; tap.test('Dns01Handler prepare and cleanup calls Cloudflare and DNS functions', async () => { let setCalled = false; let removeCalled = false; // fake Cloudflare API const fakeCF: any = { convenience: { acmeSetDnsChallenge: async (_ch: any) => { setCalled = true; }, acmeRemoveDnsChallenge: async (_ch: any) => { removeCalled = true; }, }, }; // fake DNS checker const fakeDNS: any = { checkUntilAvailable: async (host: string, rr: string, val: string, count: number, interval: number) => { expect(host).toEqual('test.host'); expect(rr).toEqual('TXT'); expect(val).toEqual('token'); }, }; const handler = new Dns01Handler(fakeCF, fakeDNS); const input = { hostName: 'test.host', challenge: 'token' }; await handler.prepare(input); expect(setCalled).toEqual(true); await handler.cleanup(input); expect(removeCalled).toEqual(true); }); export default tap.start();