-
Notifications
You must be signed in to change notification settings - Fork 814
/
copy-workbox-libraries.js
59 lines (49 loc) · 2.08 KB
/
copy-workbox-libraries.js
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
/*
Copyright 2018 Google LLC
Use of this source code is governed by an MIT-style
license that can be found in the LICENSE file or at
https://opensource.org/licenses/MIT.
*/
const expect = require('chai').expect;
const upath = require('upath');
const proxyquire = require('proxyquire');
const sinon = require('sinon');
const errors = require('../../../../packages/workbox-build/src/lib/errors');
describe(`[workbox-build] lib/copy-workbox-libraries.js`, function() {
const MODULE_PATH = '../../../../packages/workbox-build/src/lib/copy-workbox-libraries';
const ABSOLUTE_DEST_DIRECTORY = upath.join('/', 'test-dir');
const RELATIVE_DEST_DIRECTORY = upath.join('.', 'test-dir');
it(`should reject with an error when the copy fails`, async function() {
const copyWorkboxLibraries = proxyquire(MODULE_PATH, {
'fs-extra': {
ensureDir: sinon.stub().resolves(),
copy: sinon.stub().rejects(),
},
});
try {
await copyWorkboxLibraries(ABSOLUTE_DEST_DIRECTORY);
throw new Error('Unexpected success.');
} catch (error) {
expect(error.message).to.have.string(errors['unable-to-copy-workbox-libraries']);
}
});
for (const destDir of [ABSOLUTE_DEST_DIRECTORY, RELATIVE_DEST_DIRECTORY]) {
it(`should resolve with the new directory name, using a destDir of ${destDir}`, async function() {
const copyStub = sinon.stub().resolves();
const ensureDirStub = sinon.stub().resolves();
const copyWorkboxLibraries = proxyquire(MODULE_PATH, {
'fs-extra': {
copy: copyStub,
ensureDir: ensureDirStub,
},
});
const workboxDirectory = await copyWorkboxLibraries(destDir);
// The workboxDirectory value is a relative path from destDir to the
// new directory. We check if ensureDir was called with the combined upath.
const expectedPath = upath.join(destDir, workboxDirectory);
expect(expectedPath).to.eql(ensureDirStub.args[0][0]);
// The total number of package build directories that were copied:
expect(copyStub.callCount).to.eql(14);
});
}
});