UNPKG

1.52 kBJavaScriptView Raw
1var t = require('../test-lib/test.js');
2var assert = require('assert');
3var apos;
4var temporaryServer;
5
6describe('Express', function() {
7
8 this.timeout(t.timeout);
9
10 before(function() {
11 // Create and bind a server on port 3000. This way
12 // when Apostrophe starts up we are guaranteed it won't
13 // randomly be assigned this port, nor be confused by
14 // the falsiness of port 0 and use the default value.
15 temporaryServer = require('http').createServer();
16 temporaryServer.listen(3000).on('error', function() {
17 // The port is likely already in use, which is
18 // good enough for us, no need to raise an error.
19 });
20 });
21
22 after(function(done) {
23 return t.destroy(apos, function() {
24 if (temporaryServer.listening) {
25 temporaryServer.close(done);
26 } else {
27 done();
28 }
29 });
30 });
31
32 it('express should exist on the apos object', function(done) {
33 apos = require('../index.js')({
34 root: module,
35 shortName: 'test',
36 modules: {
37 'apostrophe-express': {
38 secret: 'xxx',
39 port: 0
40 }
41 },
42 afterInit: function(callback) {
43 assert(apos.express);
44 return callback(null);
45 },
46 afterListen: function(err) {
47 assert(!err);
48 done();
49 }
50 });
51 });
52
53 it('should bind the server to a random port when given port 0', function(done) {
54 var server = apos.modules['apostrophe-express'].server;
55 assert(server.address().port !== 3000);
56 done();
57 });
58
59});