crowi.test.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. var chai = require('chai')
  2. , expect = chai.expect
  3. , sinon = require('sinon')
  4. , sinonChai = require('sinon-chai')
  5. , proxyquire = require('proxyquire')
  6. , path = require('path')
  7. ;
  8. chai.use(sinonChai);
  9. describe('Test for Crowi application context', function () {
  10. var Crowi = require('../../lib/crowi')
  11. , mongoose = require('mongoose')
  12. ;
  13. describe('construction', function() {
  14. it('initialize crowi context', function() {
  15. var crowi = new Crowi(path.normalize(__dirname + '/../../'), process.env);
  16. expect(crowi).to.be.instanceof(Crowi);
  17. expect(crowi.version).to.equal(require('../../package.json').version);
  18. expect(crowi.env).to.be.an('Object');
  19. });
  20. it('config getter, setter', function() {
  21. var crowi = new Crowi(path.normalize(__dirname + '/../../'), process.env);
  22. expect(crowi.getConfig()).to.deep.equals({});
  23. crowi.setConfig({test: 1});
  24. expect(crowi.getConfig()).to.deep.equals({test: 1});
  25. });
  26. it('model getter, setter', function() {
  27. var crowi = new Crowi(path.normalize(__dirname + '/../../'), process.env);
  28. // set
  29. crowi.model('hoge', { fuga: 1 });
  30. expect(crowi.model('hoge')).to.deep.equals({ fuga: 1 });
  31. });
  32. });
  33. describe('.setupDatabase', function() {
  34. before(function() {
  35. mongoose.disconnect(); // avoid error of Trying to open unclosed connection
  36. });
  37. it('setup completed', function(done) {
  38. var crowi = new Crowi(path.normalize(__dirname + '/../../'), process.env);
  39. // set
  40. var p = crowi.setupDatabase()
  41. expect(p).to.instanceof(Promise);
  42. p.then(function() {
  43. expect(mongoose.connection.readyState).to.equals(1);
  44. done();
  45. }).catch(function(err) {
  46. //console.log('readyState', mongoose.connection.readyState);
  47. if (mongoose.connection.readyState === 2 || mongoose.connection.readyState === 1) { // alreaady connected
  48. // throught
  49. } else {
  50. expect(mongoose.connection.readyState).to.equals(0);
  51. }
  52. done();
  53. });
  54. });
  55. });
  56. });