user.test.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. describe('Create and Find.', function () {
  13. context('The user', function() {
  14. it('should created', function(done) {
  15. User.createUserByEmailAndPassword('Aoi Miyazaki', 'aoi', 'aoi@example.com', 'hogefuga11', 'en', function (err, userData) {
  16. expect(err).to.be.null;
  17. expect(userData).to.instanceof(User);
  18. done();
  19. });
  20. });
  21. it('should be found by findUserByUsername', function(done) {
  22. User.findUserByUsername('aoi')
  23. .then(function(userData) {
  24. expect(userData).to.instanceof(User);
  25. done();
  26. });
  27. });
  28. it('should be found by findUsersByPartOfEmail', function(done) {
  29. User.findUsersByPartOfEmail('ao', {})
  30. .then(function(userData) {
  31. expect(userData).to.be.array;
  32. expect(userData[0]).to.instanceof(User);
  33. expect(userData[0].email).to.equal('aoi@example.com');
  34. done();
  35. });
  36. });
  37. });
  38. });
  39. describe('User Utilities', function () {
  40. context('Get username from path', function() {
  41. it('found', function(done) {
  42. var username = null;
  43. username = User.getUsernameByPath('/user/sotarok');
  44. expect(username).to.equal('sotarok');
  45. username = User.getUsernameByPath('/user/some.user.name12/'); // with slash
  46. expect(username).to.equal('some.user.name12');
  47. done();
  48. });
  49. it('not found', function(done) {
  50. var username = null;
  51. username = User.getUsernameByPath('/the/page/is/not/related/to/user/page');
  52. expect(username).to.be.null;
  53. done();
  54. });
  55. });
  56. });
  57. });