Skip to content

Commit 3eec6eb

Browse files
remove universalify and use promises on all tests
1 parent e3bc011 commit 3eec6eb

File tree

10 files changed

+380
-599
lines changed

10 files changed

+380
-599
lines changed

globals.d.ts

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,3 @@
1-
declare module 'universalify' {
2-
export function fromCallback<
3-
Arguments extends readonly unknown[],
4-
ErrorValue,
5-
ReturnValue
6-
>(
7-
fn: (
8-
...arguments_: [
9-
...Arguments,
10-
(error: ErrorValue, value: ReturnValue) => void
11-
]
12-
) => void
13-
): {
14-
(...arguments_: Arguments): Promise<ReturnValue>;
15-
(
16-
...arguments_: [
17-
...Arguments,
18-
(error: ErrorValue, value: ReturnValue) => void
19-
]
20-
): void;
21-
};
22-
23-
export function fromPromise<
24-
Arguments extends readonly unknown[],
25-
ReturnValue
26-
>(
27-
fn: (...arguments_: [...Arguments]) => Promise<ReturnValue>
28-
): {
29-
(...arguments_: Arguments): Promise<ReturnValue>;
30-
(
31-
...arguments_: [
32-
...Arguments,
33-
(error: unknown, value: ReturnValue) => void
34-
]
35-
): void;
36-
};
37-
}
38-
391
declare module 'nice-cache' {
402
class Cache {
413
constructor(opt: { refreshInterval?: number; verbose?: boolean });
Lines changed: 80 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
const Readable = require('stream').Readable;
2-
const { fromPromise } = require('universalify');
32
const azure = require('../lib');
43

54
//Mock Date functions
@@ -123,69 +122,54 @@ test('validate partial credentials, no name', () => {
123122
}
124123
}
125124
].forEach(scenario => {
126-
test(`test getFile ${scenario.src}`, done => {
125+
test(`test getFile ${scenario.src}`, async () => {
127126
const options = {
128127
publicContainerName: 'pubcon',
129128
privateContainerName: 'privcon'
130129
};
131130
const client = new azure(options);
131+
const operation = () =>
132+
client[scenario.src.match(/\.json$/) ? 'getJson' : 'getFile'](
133+
scenario.src,
134+
false
135+
);
132136

133-
fromPromise(client[scenario.src.match(/\.json$/) ? 'getJson' : 'getFile'])(
134-
scenario.src,
135-
false,
136-
(err, data) => {
137-
expect(err).toEqual(scenario.expected.err);
138-
expect(data).toEqual(scenario.expected.data);
139-
done();
140-
}
141-
);
137+
if (scenario.expected.err) {
138+
return expect(operation()).rejects.toEqual(scenario.expected.err);
139+
} else {
140+
return expect(operation()).resolves.toEqual(scenario.expected.data);
141+
}
142142
});
143143
});
144144

145-
test('test getFile force mode', done => {
145+
test('test getFile force mode', async () => {
146146
const options = {
147147
publicContainerName: 'pubcon',
148148
privateContainerName: 'privcon'
149149
};
150-
151150
const client = new azure(options);
152-
const getFile = fromPromise(client.getFile);
153-
154-
getFile('path/to-mutable.txt', false, (err1, data1) => {
155-
getFile('path/to-mutable.txt', (err2, data2) => {
156-
getFile('path/to-mutable.txt', true, (err3, data3) => {
157-
expect(err1).toBeNull();
158-
expect(err2).toBeNull();
159-
expect(err3).toBeNull();
160-
expect(data1).toBe(data2);
161-
expect(data3).not.toBe(data1);
162-
done();
163-
});
164-
});
165-
});
151+
152+
const data1 = await client.getFile('path/to-mutable.txt', false);
153+
const data2 = await client.getFile('path/to-mutable.txt');
154+
const data3 = await client.getFile('path/to-mutable.txt', true);
155+
156+
expect(data1).toBe(data2);
157+
expect(data3).not.toBe(data1);
166158
});
167159

168-
test('test getJson force mode', done => {
160+
test('test getJson force mode', async () => {
169161
const options = {
170162
publicContainerName: 'pubcon',
171163
privateContainerName: 'privcon'
172164
};
173-
174165
const client = new azure(options);
175-
const getJson = fromPromise(client.getJson);
176-
177-
getJson('path/to-mutable.json', false, (err1, data1) => {
178-
getJson('path/to-mutable.json', (err2, data2) => {
179-
getJson('path/to-mutable.json', true, (err3, data3) => {
180-
expect(err1).toBeNull();
181-
expect(err2).toBeNull();
182-
expect(err3).toBeNull();
183-
expect(data1.value).toBe(data2.value);
184-
expect(data3.value).not.toBe(data1.value);
185-
done();
186-
});
187-
});
188-
});
166+
167+
const data1 = await client.getJson('path/to-mutable.json', false);
168+
const data2 = await client.getJson('path/to-mutable.json');
169+
const data3 = await client.getJson('path/to-mutable.json', true);
170+
171+
expect(data1.value).toBe(data2.value);
172+
expect(data3.value).not.toBe(data1.value);
189173
});
190174

191175
[
@@ -194,31 +178,28 @@ test('test getJson force mode', done => {
194178
{ path: 'components/image/', expected: ['1.0.0', '1.0.1'] },
195179
{ path: 'components/image/1.0.0/', expected: [] }
196180
].forEach(scenario => {
197-
test(`test listObjects when bucket is not empty for folder ${scenario.path}`, done => {
181+
test(`test listObjects when bucket is not empty for folder ${scenario.path}`, async () => {
198182
const client = new azure({
199183
publicContainerName: 'pubcon',
200184
privateContainerName: 'privcon'
201185
});
202186

203-
fromPromise(client.listSubDirectories)(scenario.path, (err, data) => {
204-
expect(err).toBeFalsy();
205-
expect(data).toEqual(scenario.expected);
206-
done();
207-
});
187+
const data = await client.listSubDirectories(scenario.path);
188+
189+
expect(data).toEqual(scenario.expected);
208190
});
209191
});
210192

211193
['hello', 'path/'].forEach(scenario => {
212-
test(`test listObjects when bucket is empty for folder ${scenario}`, done => {
194+
test(`test listObjects when bucket is empty for folder ${scenario}`, async () => {
213195
const client = new azure({
214196
publicContainerName: 'my-empty-container',
215197
privateContainerName: 'my-empty-container'
216198
});
217199

218-
fromPromise(client.listSubDirectories)(scenario, (err, data) => {
219-
expect(data).toEqual([]);
220-
done();
221-
});
200+
const data = await client.listSubDirectories(scenario);
201+
202+
expect(data).toEqual([]);
222203
});
223204
});
224205

@@ -227,61 +208,46 @@ test('test getUrl ', () => {
227208
expect(client.getUrl('test', '1.0.0', 'test.js')).toBe('/test/1.0.0/test.js');
228209
});
229210

230-
test('test put dir (failure)', done => {
211+
test('test put dir (failure)', () => {
231212
const client = new azure({
232213
publicContainerName: 'pubcon',
233214
privateContainerName: 'privcon'
234215
});
235216

236-
fromPromise(client.putDir)(
237-
'/absolute-path-to-dir',
238-
'components\\componentName-error\\1.0.0',
239-
(err, res) => {
240-
expect(res).toBeUndefined();
241-
expect(err).toEqual({
242-
msg: 'sorry'
243-
});
244-
done();
245-
}
246-
);
217+
return expect(
218+
client.putDir(
219+
'/absolute-path-to-dir',
220+
'components\\componentName-error\\1.0.0'
221+
)
222+
).rejects.toEqual({ msg: 'sorry' });
247223
});
248224

249-
test('test put dir (stream failure throwing)', done => {
225+
test('test put dir (stream failure throwing)', () => {
250226
const client = new azure({
251227
publicContainerName: 'pubcon',
252228
privateContainerName: 'privcon'
253229
});
254230

255-
fromPromise(client.putDir)(
256-
'/absolute-path-to-dir',
257-
'components\\componentName-error-throw\\1.0.0',
258-
(err, res) => {
259-
expect(res).toBeUndefined();
260-
expect(err.msg).toContain('sorry');
261-
done();
262-
}
263-
);
231+
return expect(
232+
client.putDir(
233+
'/absolute-path-to-dir',
234+
'components\\componentName-error-throw\\1.0.0'
235+
)
236+
).rejects.toEqual({ msg: 'sorry' });
264237
});
265238

266-
test('test private putFileContent', done => {
239+
test('test private putFileContent', async () => {
267240
const client = new azure({
268241
publicContainerName: 'pubcon',
269242
privateContainerName: 'privcon'
270243
});
271244

272-
fromPromise(client.putFileContent)(
273-
'words',
274-
'filename.js',
275-
true,
276-
(err, result) => {
277-
expect(err).toBeFalsy();
278-
expect(result.container).toBe('privcon');
279-
done();
280-
}
281-
);
245+
const result = await client.putFileContent('words', 'filename.js', true);
246+
247+
expect(result.container).toBe('privcon');
282248
});
283249

284-
test('test private putFileContent stream', done => {
250+
test('test private putFileContent stream', async () => {
285251
const client = new azure({
286252
publicContainerName: 'pubcon',
287253
privateContainerName: 'privcon'
@@ -292,41 +258,27 @@ test('test private putFileContent stream', done => {
292258
fileStream.push(fileContent);
293259
fileStream.push(null);
294260

295-
fromPromise(client.putFileContent)(
296-
fileStream,
297-
'filename.js',
298-
true,
299-
(err, result) => {
300-
expect(err).toBeFalsy();
301-
expect(result.container).toBe('privcon');
302-
expect(result.lengthWritten).toBe(fileContent.length);
303-
expect(result.settings.blobHTTPHeaders.blobCacheControl).toBe(
304-
'public, max-age=31556926'
305-
);
306-
done();
307-
}
261+
const result = await client.putFileContent(fileStream, 'filename.js', true);
262+
263+
expect(result.container).toBe('privcon');
264+
expect(result.lengthWritten).toBe(fileContent.length);
265+
expect(result.settings.blobHTTPHeaders.blobCacheControl).toBe(
266+
'public, max-age=31556926'
308267
);
309268
});
310269

311-
test('test public putFileContent', done => {
270+
test('test public putFileContent', async () => {
312271
const client = new azure({
313272
publicContainerName: 'pubcon',
314273
privateContainerName: 'privcon'
315274
});
316275

317-
fromPromise(client.putFileContent)(
318-
'words',
319-
'filename.gz',
320-
false,
321-
(err, result) => {
322-
expect(err).toBeFalsy();
323-
expect(result.container).toBe('pubcon');
324-
done();
325-
}
326-
);
276+
const result = await client.putFileContent('words', 'filename.gz', false);
277+
278+
expect(result.container).toBe('pubcon');
327279
});
328280

329-
test('test public putFileContent stream', done => {
281+
test('test public putFileContent stream', async () => {
330282
const client = new azure({
331283
publicContainerName: 'pubcon',
332284
privateContainerName: 'privcon'
@@ -337,27 +289,27 @@ test('test public putFileContent stream', done => {
337289
fileStream.push(fileContent);
338290
fileStream.push(null);
339291

340-
fromPromise(client.putFileContent)(
341-
fileStream,
342-
'filename.js',
343-
false,
344-
(err, result) => {
345-
expect(err).toBeFalsy();
346-
expect(result.container).toBe('pubcon');
347-
expect(result.lengthWritten).toBe(fileContent.length);
348-
done();
349-
}
350-
);
292+
const result = await client.putFileContent(fileStream, 'filename.js', false);
293+
294+
expect(result.container).toBe('pubcon');
295+
expect(result.lengthWritten).toBe(fileContent.length);
351296
});
352297

353-
test('put a js file ', done => {
298+
test('put a js file ', async () => {
354299
const client = new azure({
355300
publicContainerName: 'pubcon',
356301
privateContainerName: 'privcon'
357302
});
358303

359-
fromPromise(client.putFile)('../path', 'hello.js', false, err => {
360-
expect(err).toBeFalsy();
361-
done();
304+
await expect(client.putFile('../path', 'hello.js', false)).resolves.toEqual({
305+
container: 'pubcon',
306+
fileName: 'hello.js',
307+
lengthWritten: 16,
308+
settings: {
309+
blobHTTPHeaders: {
310+
blobCacheControl: 'public, max-age=31556926',
311+
blobContentType: 'application/javascript'
312+
}
313+
}
362314
});
363315
});
Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,19 @@
1-
const { fromPromise } = require('universalify');
21
const adapter = require('../lib');
32

4-
test('put directory recognizes server.js and .env to be private', done => {
3+
test('put directory recognizes server.js and .env to be private', async () => {
54
const client = new adapter({
65
publicContainerName: 'pubcon',
76
privateContainerName: 'privcon'
87
});
98

10-
fromPromise(client.putDir)('.', '.', (_, mockResult) => {
11-
const serverMock = mockResult.find(x => x.fileName === `./server.js`);
12-
const envMock = mockResult.find(x => x.fileName === './.env');
13-
const packageMock = mockResult.find(x => x.fileName === './package.json');
14-
const templateMock = mockResult.find(x => x.fileName === './template.js');
9+
const mockResult = await client.putDir('.', '.');
10+
const serverMock = mockResult.find(x => x.fileName === `./server.js`);
11+
const envMock = mockResult.find(x => x.fileName === './.env');
12+
const packageMock = mockResult.find(x => x.fileName === './package.json');
13+
const templateMock = mockResult.find(x => x.fileName === './template.js');
1514

16-
expect(serverMock.container).toBe('privcon');
17-
expect(envMock.container).toBe('privcon');
18-
expect(packageMock.container).toBe('pubcon');
19-
expect(templateMock.container).toBe('pubcon');
20-
21-
done();
22-
});
15+
expect(serverMock.container).toBe('privcon');
16+
expect(envMock.container).toBe('privcon');
17+
expect(packageMock.container).toBe('pubcon');
18+
expect(templateMock.container).toBe('pubcon');
2319
});

0 commit comments

Comments
 (0)