Skip to content

Commit adfb8de

Browse files
committed
unit test addition for timeout disabing
1 parent c6a9208 commit adfb8de

File tree

1 file changed

+0
-206
lines changed

1 file changed

+0
-206
lines changed

tests/unit/server.js

Lines changed: 0 additions & 206 deletions
Original file line numberDiff line numberDiff line change
@@ -4,215 +4,9 @@ const assert = require('assert');
44
const sinon = require('sinon');
55
const http = require('http');
66
const https = require('https');
7-
const arsenal = require('arsenal');
8-
const uuid = require('uuid');
9-
const logger = require('../../lib/utilities/logger');
107
const { config: defaultConfig } = require('../../lib/Config');
118
const { S3Server } = require('../../lib/server');
129

13-
describe('S3Server', () => {
14-
let server;
15-
let startServerStub;
16-
let log;
17-
let config;
18-
19-
beforeEach(() => {
20-
log = logger.newRequestLogger();
21-
22-
config = {
23-
...defaultConfig,
24-
port: undefined,
25-
listenOn: [],
26-
internalPort: undefined,
27-
internalListenOn: [],
28-
metricsListenOn: [],
29-
metricsPort: 8002
30-
};
31-
server = new S3Server(config);
32-
33-
// Stub the _startServer method to verify it's called correctly
34-
startServerStub = sinon.stub(server, '_startServer');
35-
});
36-
37-
afterEach(() => {
38-
sinon.restore();
39-
});
40-
41-
const waitReady = () => new Promise(resolve => {
42-
const interval = setInterval(() => {
43-
if (server.started) {
44-
clearInterval(interval);
45-
resolve();
46-
}
47-
}, 100);
48-
});
49-
50-
describe('initiateStartup', () => {
51-
beforeEach(() => {
52-
sinon.stub(server, 'routeRequest');
53-
sinon.stub(server, 'internalRouteRequest');
54-
sinon.stub(server, 'routeAdminRequest');
55-
});
56-
57-
// `sinon` matcher to match when the callback argument actually invokes the expected
58-
// function
59-
const wrapperFor = expected => sinon.match(actual => {
60-
const req = uuid.v4();
61-
const res = uuid.v4();
62-
actual(req, res);
63-
return expected.calledWith(req, res);
64-
});
65-
66-
it('should start API server with default port if no listenOn is provided', async () => {
67-
config.port = 8000;
68-
69-
server.initiateStartup(log);
70-
71-
await waitReady();
72-
73-
assert.strictEqual(startServerStub.callCount, 2);
74-
assert(startServerStub.calledWith(wrapperFor(server.routeRequest), 8000));
75-
assert(startServerStub.calledWith(wrapperFor(server.routeAdminRequest)));
76-
77-
});
78-
79-
it('should start API servers from listenOn array', async () => {
80-
config.listenOn = [
81-
{ port: 8000, ip: '127.0.0.1' },
82-
{ port: 8001, ip: '0.0.0.0' }
83-
];
84-
config.port = 9999; // Should be ignored since listenOn is provided
85-
86-
server.initiateStartup(log);
87-
88-
await waitReady();
89-
90-
assert.strictEqual(startServerStub.callCount, 3);
91-
assert(startServerStub.calledWith(wrapperFor(server.routeRequest), 8000, '127.0.0.1'));
92-
assert(startServerStub.calledWith(wrapperFor(server.routeRequest), 8001, '0.0.0.0'));
93-
assert(startServerStub.calledWith(wrapperFor(server.routeAdminRequest)));
94-
assert.strictEqual(startServerStub.neverCalledWith(sinon.any, 9999), true);
95-
});
96-
97-
it('should start internal API server with internalPort if no internalListenOn is provided', async () => {
98-
config.internalPort = 9000;
99-
100-
server.initiateStartup(log);
101-
102-
await waitReady();
103-
104-
assert.strictEqual(startServerStub.callCount, 2);
105-
assert(startServerStub.calledWith(wrapperFor(server.internalRouteRequest), 9000));
106-
});
107-
108-
it('should start internal API servers from internalListenOn array', async () => {
109-
config.internalListenOn = [
110-
{ port: 9000, ip: '127.0.0.1' },
111-
{ port: 9001, ip: '0.0.0.0' }
112-
];
113-
config.internalPort = 9999; // Should be ignored since internalListenOn is provided
114-
115-
server.initiateStartup(log);
116-
117-
await waitReady();
118-
119-
assert.strictEqual(startServerStub.callCount, 3);
120-
assert(startServerStub.calledWith(wrapperFor(server.internalRouteRequest), 9000, '127.0.0.1'));
121-
assert(startServerStub.calledWith(wrapperFor(server.internalRouteRequest), 9001, '0.0.0.0'));
122-
assert(startServerStub.calledWith(wrapperFor(server.routeAdminRequest)));
123-
assert.strictEqual(startServerStub.neverCalledWith(sinon.any, 9999), true);
124-
});
125-
126-
it('should start metrics server with metricsPort if no metricsListenOn is provided', async () => {
127-
config.metricsPort = 8012;
128-
129-
server.initiateStartup(log);
130-
131-
await waitReady();
132-
133-
assert.strictEqual(startServerStub.callCount, 1);
134-
assert(startServerStub.calledWith(wrapperFor(server.routeAdminRequest), 8012));
135-
});
136-
137-
it('should start metrics servers from metricsListenOn array', async () => {
138-
config.metricsListenOn = [
139-
{ port: 8002, ip: '127.0.0.1' },
140-
{ port: 8003, ip: '0.0.0.0' }
141-
];
142-
config.metricsPort = 9999; // Should be ignored since metricsListenOn is provided
143-
144-
server.initiateStartup(log);
145-
146-
await waitReady();
147-
148-
assert.strictEqual(startServerStub.callCount, 2);
149-
assert(startServerStub.calledWith(wrapperFor(server.routeAdminRequest), 8002, '127.0.0.1'));
150-
assert(startServerStub.calledWith(wrapperFor(server.routeAdminRequest), 8003, '0.0.0.0'));
151-
assert.strictEqual(startServerStub.neverCalledWith(server.any, 9999), true);
152-
});
153-
154-
it('should start all servers with the correct parameters', async () => {
155-
config.port = 8000;
156-
config.internalPort = 9000;
157-
config.metricsPort = 8002;
158-
159-
server.initiateStartup(log);
160-
161-
await waitReady();
162-
163-
assert.strictEqual(startServerStub.callCount, 3);
164-
assert(startServerStub.calledWith(wrapperFor(server.routeRequest), 8000));
165-
assert(startServerStub.calledWith(wrapperFor(server.internalRouteRequest), 9000));
166-
assert(startServerStub.calledWith(wrapperFor(server.routeAdminRequest), 8002));
167-
});
168-
});
169-
170-
describe('internalRouteRequest', () => {
171-
const resp = {
172-
on: () => { },
173-
setHeader: () => { },
174-
writeHead: () => { },
175-
end: () => { },
176-
};
177-
178-
let req;
179-
180-
beforeEach(() => {
181-
req = {
182-
headers: {},
183-
socket: {
184-
setNoDelay: () => { },
185-
},
186-
url: 'http://localhost:8000',
187-
};
188-
});
189-
190-
afterEach(() => {
191-
sinon.restore();
192-
});
193-
194-
it('should bypass bucket policy for internal requests', () => {
195-
const routesMock = sinon.stub().callsFake(req => {
196-
assert(req.bypassUserBucketPolicies);
197-
});
198-
sinon.stub(arsenal.s3routes, 'routes').value(routesMock);
199-
200-
server.internalRouteRequest(req, resp);
201-
sinon.assert.calledOnce(routesMock);
202-
});
203-
204-
it('should bypass bucket policy for routes requests', () => {
205-
const routesMock = sinon.stub().callsFake(req => {
206-
assert(!req.bypassUserBucketPolicies);
207-
});
208-
sinon.stub(arsenal.s3routes, 'routes').value(routesMock);
209-
210-
server.routeRequest(req, resp);
211-
sinon.assert.calledOnce(routesMock);
212-
});
213-
});
214-
});
215-
21610
describe('S3Server request timeout', () => {
21711
let sandbox;
21812
let mockServer;

0 commit comments

Comments
 (0)