-
Notifications
You must be signed in to change notification settings - Fork 8
/
policy-save.test.js
42 lines (41 loc) · 1.2 KB
/
policy-save.test.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
const test = require('tap-only');
const proxyquire = require('proxyquire');
const fixtures = __dirname + '/../fixtures';
const path = require('path');
const sinon = require('sinon');
const writeSpy = sinon.spy();
const fs = require('promise-fs');
const policy = proxyquire('../..', {
'promise-fs': {
writeFile: function (filename, body) {
writeSpy(filename, body);
return Promise.resolve();
},
},
});
test('policy.save', function (t) {
const filename = path.resolve(fixtures + '/ignore/.snyk');
let asText = '';
return fs
.readFile(filename, 'utf8')
.then(function (res) {
asText = res.trim();
return asText;
})
.then(policy.loadFromText)
.then(function (res) {
return policy.save(res, path.dirname(filename));
})
.then(function () {
t.equal(writeSpy.callCount, 1, 'write only once');
t.equal(writeSpy.args[0][0], filename, 'filename correct');
const parsed = writeSpy.args[0][1].trim();
t.equal(parsed, asText, 'body contains original');
t.match(
parsed,
'# Snyk (https://snyk.io) policy file, patches or ' +
'ignores known vulnerabilities.',
'body contains comments'
);
});
});