34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
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(); |