crowi.test.js 2.0 KB

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