UNPKG

2.04 kBJavaScriptView Raw
1describe('watcher', function() {
2 var test = setup();
3 before(test.before);
4 after(test.after);
5
6 var testData = {yay: true}, folderName = idgen();
7 before(function (done) {
8 fs.mkdir(test.dir + '/folder/' + folderName, function (err) {
9 assert.ifError(err);
10 fs.writeFile(test.dir + '/folder/' + folderName + '/test.json', JSON.stringify(testData), function(err) {
11 assert.ifError(err);
12 // Give time for the watcher to pick up the file
13 setTimeout(done, 1000);
14 });
15 });
16 });
17
18 it('serves a dynamically created file', function (done) {
19 request(test.baseUrl + '/folder/' + folderName + '/test.json', function (err, res, data) {
20 assert.ifError(err);
21 assert.equal(res.statusCode, 200);
22 assert.equal(res.headers['content-type'], 'application/json');
23 assert.deepEqual(JSON.parse(data), testData);
24 done();
25 });
26 });
27
28 it('serves an updated file', function (done) {
29 testData.boo = false;
30 fs.writeFile(test.dir + '/folder/' + folderName + '/test.json', JSON.stringify(testData), function (err) {
31 assert.ifError(err);
32 // Give the watcher some time.
33 setTimeout(function () {
34 request(test.baseUrl + '/folder/' + folderName + '/test.json', function (err, res, data) {
35 assert.ifError(err);
36 assert.equal(res.statusCode, 200);
37 assert.equal(res.headers['content-type'], 'application/json');
38 assert.deepEqual(JSON.parse(data), testData);
39 done();
40 });
41 }, 1000);
42 });
43 });
44
45 it('serves a 404 after removing dynamic file', function (done) {
46 rimraf(test.dir + '/folder/' + folderName, function (err) {
47 assert.ifError(err);
48 // Give some time for the watcher to pick up directory delete
49 setTimeout(function () {
50 request(test.baseUrl + '/folder/' + folderName + '/test.json', function (err, res, data) {
51 assert.ifError(err);
52 assert.equal(res.statusCode, 404);
53 done();
54 });
55 }, 1000);
56 });
57 });
58});
\No newline at end of file