Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
akupiec
GitHub Repository: akupiec/mad-proxy
Path: blob/master/test/server.test.js
115 views
1
/* eslint-env jest */
2
3
const express = require('express');
4
const config = require('../src/config/config');
5
const server = require('../src/server');
6
const reverseProxy = require('../src/middlewares/reverseProxy');
7
8
jest.mock('../src/config/config', () => require('./testingConfig'));
9
jest.mock('fs');
10
jest.mock('../src/config/logger');
11
jest.mock('../src/middlewares/reverseProxy');
12
jest.mock('express', () => jest.fn());
13
14
describe('server proxy as URL', () => {
15
let listen, use, all;
16
beforeEach(function () {
17
listen = jest.fn();
18
use = jest.fn();
19
all = jest.fn();
20
reverseProxy.mockImplementation();
21
express.mockImplementation(() => ({ use, listen, all }));
22
Object.assign(config, {
23
server: {
24
port: 333,
25
},
26
proxies: [{
27
path: '/api222',
28
target: 'http://google.com',
29
cache: { enabled: true },
30
}],
31
});
32
});
33
afterEach(function () {
34
listen.mockReset();
35
use.mockReset();
36
all.mockReset();
37
express.mockReset();
38
reverseProxy.mockReset();
39
});
40
41
describe('using middleware', function () {
42
let middlewares;
43
beforeEach(function () {
44
server();
45
middlewares = use.mock.calls.map((params) => {
46
if (typeof params[0] === 'function') {
47
return params[0].name;
48
} else if (typeof params[1] === 'function') {
49
return params[1].name;
50
}
51
return '';
52
});
53
});
54
afterEach(function () {
55
middlewares = null;
56
});
57
58
it('bodyDataInterceptor', function () {
59
expect(middlewares).toContain('bodyDataInterceptor');
60
});
61
62
it('mockData', function () {
63
expect(middlewares).toContain('mockData');
64
});
65
66
it('mockGeter', function () {
67
expect(middlewares).toContain('mockGeter');
68
});
69
70
it('mockSaver', function () {
71
expect(middlewares).toContain('mockSaver');
72
});
73
74
it('mockSaver', function () {
75
expect(middlewares).toContain('mockSaver');
76
});
77
});
78
79
describe('delegating all', function () {
80
it('reverseProxy', function () {
81
server();
82
expect(all.mock.calls.length).toBe(1);
83
expect(reverseProxy.mock.calls.length).toBe(1);
84
});
85
});
86
});
87
88