Skip to content

Commit 7bf581b

Browse files
committed
add getServer spec
1 parent bd93dc3 commit 7bf581b

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

src/lib/get-server/get-server.test.js

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
jest.unstable_mockModule('chalk', () => {
2+
return {
3+
default: {
4+
magenta: (m) => m,
5+
},
6+
};
7+
});
8+
9+
const mockedExpress = () => ({
10+
use: jest.fn(),
11+
listen: jest.fn(),
12+
});
13+
const mockStatic = jest.fn();
14+
Object.defineProperty(mockedExpress, 'static', { value: mockStatic });
15+
16+
jest.unstable_mockModule('express', () => {
17+
return {
18+
default: mockedExpress,
19+
};
20+
});
21+
const getServer = (await import('.')).default;
22+
23+
describe('getServer', () => {
24+
beforeEach(() => {
25+
jest.clearAllMocks();
26+
});
27+
28+
it('returns a mock server if audit URL is defined', () => {
29+
const mockListen = jest.fn();
30+
console.log = jest.fn();
31+
32+
const { server } = getServer({ auditUrl: '/' });
33+
expect(server.listen).toBeDefined();
34+
server.listen(mockListen);
35+
expect(mockListen).toHaveBeenCalled();
36+
expect(console.log.mock.calls[0][0]).toEqual('Scanning url /');
37+
38+
expect(server.close).toBeDefined();
39+
expect(server.close()).toBeUndefined();
40+
expect(server.url).toEqual('/');
41+
});
42+
43+
it('throws an error if no audit URL and no serveDir', () => {
44+
expect(() => getServer({})).toThrow('Empty publish dir');
45+
});
46+
47+
it('returns an express server if no audit URL and a serveDir', () => {
48+
const { server } = getServer({ serveDir: 'dir' });
49+
expect(mockStatic).toHaveBeenCalled();
50+
51+
// Check we log when we start serving directory
52+
server.listen(jest.fn());
53+
expect(console.log.mock.calls[0][0]).toEqual(
54+
'Serving and scanning site from directory dir',
55+
);
56+
57+
expect(server.url).toEqual('http://localhost:5100');
58+
59+
// Check close method closes the given instance
60+
const close = jest.fn();
61+
server.close({ close });
62+
expect(close).toHaveBeenCalled();
63+
});
64+
});

0 commit comments

Comments
 (0)