-
-
Notifications
You must be signed in to change notification settings - Fork 511
/
deb_spec.js
75 lines (65 loc) · 2.23 KB
/
deb_spec.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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import chai, { expect } from 'chai';
import chaiAsPromised from 'chai-as-promised';
import path from 'path';
import proxyquire from 'proxyquire';
import { stub } from 'sinon';
chai.use(chaiAsPromised);
describe('deb maker', () => {
let debModule;
let debMaker;
let eidStub;
let ensureFileStub;
let forgeConfig;
const dir = '/my/test/dir/out';
const appName = 'My Test App';
const targetArch = process.arch;
const packageJSON = { version: '1.2.3' };
beforeEach(() => {
ensureFileStub = stub().returns(Promise.resolve());
eidStub = stub().resolves();
eidStub.transformVersion = version => version;
forgeConfig = { electronInstallerDebian: {} };
debModule = proxyquire.noPreserveCache().noCallThru().load('../../../src/makers/linux/deb', {
'./config-fn': config => config,
'../../util/ensure-output': { ensureFile: ensureFileStub },
'electron-installer-debian': eidStub,
});
debMaker = debModule.default;
});
it('should pass through correct defaults', async () => {
await debMaker({ dir, appName, targetArch, forgeConfig, packageJSON });
const opts = eidStub.firstCall.args[0];
expect(opts).to.deep.equal({
arch: debModule.debianArch(process.arch),
options: {},
src: dir,
dest: path.resolve(dir, '..', 'make'),
});
});
it('should have config cascade correctly', async () => {
forgeConfig.electronInstallerDebian = {
arch: 'overridden',
options: {
productName: 'Debian',
},
};
await debMaker({ dir, appName, targetArch, forgeConfig, packageJSON });
const opts = eidStub.firstCall.args[0];
expect(opts).to.deep.equal({
arch: debModule.debianArch(process.arch),
options: {
productName: 'Debian',
},
src: dir,
dest: path.resolve(dir, '..', 'make'),
});
});
if (process.platform === 'linux') {
it('should return the proper pre-release version in the outPath', async () => {
eidStub.transformVersion = require('electron-installer-debian').transformVersion;
packageJSON.version = '1.2.3-beta.4';
const outPath = await debMaker({ dir, appName, targetArch, forgeConfig, packageJSON });
expect(outPath).to.match(/1\.2\.3~beta\.4/);
});
}
});