user.test.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. var chai = require('chai')
  2. , expect = chai.expect
  3. , sinon = require('sinon')
  4. , sinonChai = require('sinon-chai')
  5. , utils = require('../utils.js')
  6. ;
  7. chai.use(sinonChai);
  8. describe('User', function () {
  9. var Page = utils.models.Page,
  10. User = utils.models.User,
  11. conn = utils.mongoose.connection;
  12. // clear collection
  13. before(done => {
  14. conn.collection('users').remove()
  15. .then(() => {
  16. done();
  17. });
  18. });
  19. describe('Create and Find.', function () {
  20. context('The user', function() {
  21. it('should created', function(done) {
  22. User.createUserByEmailAndPassword('Aoi Miyazaki', 'aoi', 'aoi@example.com', 'hogefuga11', 'en', function (err, userData) {
  23. expect(err).to.be.null;
  24. expect(userData).to.instanceof(User);
  25. done();
  26. });
  27. });
  28. it('should be found by findUserByUsername', function(done) {
  29. User.findUserByUsername('aoi')
  30. .then(function(userData) {
  31. expect(userData).to.instanceof(User);
  32. done();
  33. });
  34. });
  35. it('should be found by findUsersByPartOfEmail', function(done) {
  36. User.findUsersByPartOfEmail('ao', {})
  37. .then(function(userData) {
  38. expect(userData).to.instanceof(Array);
  39. expect(userData[0]).to.instanceof(User);
  40. expect(userData[0].email).to.equal('aoi@example.com');
  41. done();
  42. });
  43. });
  44. });
  45. });
  46. describe('User Utilities', function () {
  47. context('Get username from path', function() {
  48. it('found', function(done) {
  49. var username = null;
  50. username = User.getUsernameByPath('/user/sotarok');
  51. expect(username).to.equal('sotarok');
  52. username = User.getUsernameByPath('/user/some.user.name12/'); // with slash
  53. expect(username).to.equal('some.user.name12');
  54. done();
  55. });
  56. it('not found', function(done) {
  57. var username = null;
  58. username = User.getUsernameByPath('/the/page/is/not/related/to/user/page');
  59. expect(username).to.be.null;
  60. done();
  61. });
  62. });
  63. });
  64. });