-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
resolvers.spec.ts
91 lines (82 loc) · 2.14 KB
/
resolvers.spec.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
const mockExec = jest.fn();
import { getAddrInfoDig } from './resolvers';
import { Service } from 'mdns';
jest.mock('util', () => ({
...jest.requireActual('util'),
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
promisify: () => mockExec
}));
describe('resolvers', () => {
beforeEach(async () => {
jest.clearAllMocks();
});
it('should return a single address correctly', done => {
const service: Service = {
addresses: undefined,
flags: undefined,
fullname: undefined,
host: undefined,
interfaceIndex: undefined,
networkInterface: undefined,
port: undefined,
replyDomain: undefined,
type: undefined
};
mockExec.mockResolvedValue({ stdout: '192.168.1.20\n' });
getAddrInfoDig(service, () => {
try {
expect(service.addresses).toStrictEqual(['192.168.1.20']);
done();
} catch (e) {
done(e);
}
});
});
it('should resolve multiple addresses correctly', done => {
const service: Service = {
addresses: undefined,
flags: undefined,
fullname: undefined,
host: undefined,
interfaceIndex: undefined,
networkInterface: undefined,
port: undefined,
replyDomain: undefined,
type: undefined
};
mockExec.mockResolvedValue({ stdout: '192.168.1.20\n192.168.1.21\n' });
getAddrInfoDig(service, () => {
try {
expect(service.addresses).toStrictEqual([
'192.168.1.20',
'192.168.1.21'
]);
done();
} catch (e) {
done(e);
}
});
});
it('should pass errors to the callback', done => {
const service: Service = {
addresses: undefined,
flags: undefined,
fullname: undefined,
host: undefined,
interfaceIndex: undefined,
networkInterface: undefined,
port: undefined,
replyDomain: undefined,
type: undefined
};
mockExec.mockRejectedValue({ stdout: 'dig not found' });
getAddrInfoDig(service, e => {
try {
expect(e).not.toBeUndefined();
done();
} catch (e) {
done(e);
}
});
});
});