UNPKG

2.02 kBJavaScriptView Raw
1'use strict';
2
3var path = require('path');
4var basename = path.basename(__filename, '.js')
5var debug = require('debug')('castor:' + basename)
6var assert = require('assert');
7var process = require('process');
8var request = require('supertest');
9
10
11/**
12 * query /-/v3/status.json until the initial synchronisation is done
13 *
14 * @param {Object} server server to query
15 * @param {Function} cb Callback to call (err)
16 */
17var untilSync = function untilSync (server, cb) {
18 // delay between two queries, in ms
19 var delay = 1000;
20
21 request(server)
22 .get('/-/v3/status.json')
23 .end(function(err, res) {
24 if (err) { cb(err); }
25
26 var status = JSON.parse(res.res.text);
27 if (status.hotfolder.first.syncOver) {
28 cb();
29 }
30 else {
31 setTimeout(untilSync, delay, server, cb)
32 }
33 });
34};
35
36describe('Operators', function () {
37
38 var server = null;
39
40 before(function(done) {
41 // Synchronisation may take time - you may increase the value (ms)
42 this.timeout(10000);
43
44 require('../starter.js')(function(config, start) {
45 config.set('dataPath', path.join(__dirname, 'data'));
46 var routes = config.get('routes');
47 routes.push('status.js');
48 config.set('routes', routes);
49 // Reduce the heartrate to be ready quicker (in milliseconds)
50 config.set('heartrate',100);
51
52 start(function(err, serv) {
53 server = serv;
54 // Because some module removes console.log
55 console.log = console.info;
56
57 untilSync(server, done);
58 });
59 })
60
61 });
62
63 //////////////////////////////////
64
65 describe('count', function () {
66
67 it('should work', function () {
68 assert(true);
69 });
70
71 it('should return results', function (done) {
72 request(server)
73 .get('/hotfolder/$count')
74 .expect(200)
75 .expect('[{"_id":"_wid","value":29}]', done);
76 });
77
78 });
79
80 //////////////////////////////////
81 after(function(done) {
82 server.close(function(err) {
83 done(err);
84 });
85 });
86
87});