fix dns tests

This commit is contained in:
Girish Ramakrishnan
2022-02-18 11:36:14 -08:00
parent b886a35cff
commit 91dc91a390

View File

@@ -866,7 +866,7 @@ describe('dns provider', function () {
describe('route53', function () {
// do not clear this with [] but .length = 0 so we don't loose the reference in mockery
let awsAnswerQueue = [];
let awsAnswerQueue = []; // every element itself is array: [0] is error and [1] is result
let AWS_HOSTED_ZONES = null;
@@ -903,24 +903,17 @@ describe('dns provider', function () {
};
function mockery(queue) {
return function (options, callback) {
return function (options) {
expect(options).to.be.an(Object);
let elem = queue.shift();
if (!Array.isArray(elem)) throw (new Error('Mock answer required'));
// if no callback passed, return a req object with send();
if (typeof callback !== 'function') {
return {
httpRequest: { headers: {} },
send: function (callback) {
expect(callback).to.be.a(Function);
callback(elem[0], elem[1]);
}
};
} else {
callback(elem[0], elem[1]);
}
return {
promise: async function () {
const elem = queue.shift();
if (!Array.isArray(elem)) throw (new Error('Mock answer required'));
if (elem[0]) throw elem[0];
return elem[1];
}
};
};
}
@@ -1028,7 +1021,7 @@ describe('dns provider', function () {
describe('gcdns', function () {
let HOSTED_ZONES = [];
let zoneQueue = [];
let zoneQueue = []; // every element itself is array: [0] is error and [1] is result
let _OriginalGCDNS;
before(async function () {
@@ -1042,29 +1035,16 @@ describe('dns provider', function () {
};
function mockery(queue) {
return function () {
let callback = arguments[--arguments.length];
let elem = queue.shift();
return async function () {
const elem = queue.shift();
if (!Array.isArray(elem)) throw (new Error('Mock answer required'));
// if no callback passed, return a req object with send();
if (typeof callback !== 'function') {
return {
httpRequest: { headers: {} },
send: function (callback) {
expect(callback).to.be.a(Function);
callback.apply(callback, elem);
}
};
} else {
callback.apply(callback, elem);
}
if (elem[0]) throw elem[0];
return [elem[1]]; // gcdns uses second element for apiResponse
};
}
function fakeZone(name, ns, recordQueue) {
let zone = new GCDNS().zone(name.replace('.', '-'));
const zone = new GCDNS().zone(name.replace('.', '-'));
zone.metadata.dnsName = name + '.';
zone.metadata.nameServers = ns || ['8.8.8.8', '8.8.4.4'];
zone.getRecords = mockery(recordQueue || zoneQueue);