-
Notifications
You must be signed in to change notification settings - Fork 92
/
file-sync-test.js
107 lines (96 loc) · 3.33 KB
/
file-sync-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
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/* eslint-disable no-octal */
// vim: expandtab:ts=2:sw=2
var
assert = require('assert'),
fs = require('fs'),
inbandStandardTests = require('./inband-standard'),
assertions = require('./assertions'),
childProcess = require('./child-process').genericChildProcess,
tmp = require('../lib/tmp');
// make sure that everything gets cleaned up
tmp.setGracefulCleanup();
describe('tmp', function () {
describe('#fileSync()', function () {
// API call standard inband tests
describe('when running inband standard tests', function () {
inbandStandardTests(true, function before() {
this.topic = tmp.fileSync(this.opts);
});
describe('with invalid tries', function () {
it('should result in an error on negative tries', function () {
try {
tmp.fileSync({ tries: -1 });
assert.fail('should have failed');
} catch (err) {
assert.ok(err instanceof Error);
}
});
it('should result in an error on non numeric tries', function () {
try {
tmp.fileSync({ tries: 'nan' });
assert.fail('should have failed');
} catch (err) {
assert.ok(err instanceof Error);
}
});
});
});
// API call issue specific inband tests
describe('when running issue specific inband tests', function () {
// add your issue specific tests here
});
// API call standard outband tests
describe('when running standard outband tests', function () {
it('on graceful', function (done) {
childProcess('graceful-file-sync.json', function (err, stderr, stdout) {
if (err) return done(err);
else if (!stderr) assert.fail('stderr expected');
else assertions.assertDoesNotExist(stdout);
done();
});
});
it('on non graceful', function (done) {
childProcess('non-graceful-file-sync.json', function (err, stderr, stdout) {
if (err) return done(err);
else if (!stderr) assert.fail('stderr expected');
else {
assertions.assertExists(stdout, true);
fs.unlinkSync(stdout);
}
done();
});
});
it('on keep', function (done) {
childProcess('keep-file-sync.json', function (err, stderr, stdout) {
if (err) return done(err);
else if (stderr) assert.fail(stderr);
else {
assertions.assertExists(stdout, true);
fs.unlinkSync(stdout);
}
done();
});
});
it('on unlink (keep == false)', function (done) {
childProcess('unlink-file-sync.json', function (err, stderr, stdout) {
if (err) return done(err);
else if (stderr) assert.fail(stderr);
else assertions.assertDoesNotExist(stdout);
done();
});
});
});
// API call issue specific outband tests
describe('when running issue specific outband tests', function () {
// add your issue specific tests here
it('on issue #115', function (done) {
childProcess('issue115-sync.json', function (err, stderr, stdout) {
if (err) return done(err);
else if (stderr) assert.fail(stderr);
else assertions.assertDoesNotExist(stdout);
done();
});
});
});
});
});