All files / test/Program/services util.ts

100% Statements 12/12
100% Branches 1/1
100% Functions 3/3
100% Lines 10/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 172x   2x 2x 2x 2x     2x 4x 2x 2x   2x      
import { getRandomPort } from 'get-port-please';
 
export const mockDnsResolverFactory = (goodPort: number) => async (numBadResolutions: number, badPort?: number) => {
  let resolverCalledTimes = 0;
  const goodSrvRecord = { name: 'localhost', port: goodPort, priority: 1, weight: 1 };
  badPort ||= await getRandomPort();
 
  // Initially resolves with a failing ogmios port, then swap to the default one
  return jest.fn().mockImplementation(async () => {
    if (resolverCalledTimes < numBadResolutions) {
      resolverCalledTimes++;
      return { ...goodSrvRecord, port: badPort };
    }
    return goodSrvRecord;
  });
};