A simple file sharing site with an easy to use API and online panel.
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

150 строки
4.3KB

  1. process.env.NODE_ENV = 'test';
  2. var async = require('async');
  3. var mongoose = require('mongoose');
  4. var User = require('../app/models/User.js');
  5. var Invite = require('../app/models/Invite.js');
  6. var Upload = require('../app/models/Upload.js');
  7. var chai = require('chai');
  8. var should = chai.should();
  9. var app = require('../server');
  10. var server = app.server;
  11. var util = require('./testUtil.js');
  12. before(function (done) {
  13. async.series([
  14. function (cb) {
  15. util.resetDatabase(cb);
  16. },
  17. function(cb) {
  18. util.createInvites([{
  19. code: 'TestCode1',
  20. scope: ['test.perm']
  21. }, {
  22. code: 'TestCode2'
  23. }, {
  24. code: 'TestCode3',
  25. exp: new Date()
  26. }
  27. ], cb);
  28. }
  29. ], function (err) {
  30. if (err) console.log(err);
  31. done();
  32. });
  33. });
  34. describe('Users', function () {
  35. describe('/POST register', function () {
  36. it('SHOULD register valid user, valid invite', function (done) {
  37. util.verifySuccessfulRegister({
  38. username: 'TestUser1',
  39. password: 'TestPassword',
  40. invite: 'TestCode1'
  41. }, done);
  42. });
  43. it('SHOULD register another valid user, valid invite', function(done) {
  44. util.verifySuccessfulRegister({
  45. username: 'TestUser2',
  46. password: 'TestPassword',
  47. invite: 'TestCode2'
  48. }, done);
  49. });
  50. it('SHOULD NOT register invalid user, valid invite', function (done) {
  51. util.verifyFailedUserRegister({
  52. username: 'TestUser1',
  53. password: 'TestPassword',
  54. invite: 'TestCode2'
  55. }, done);
  56. });
  57. it('SHOULD NOT register valid user, nonexistant invite', function (done) {
  58. util.verifyFailedInviteRegister({
  59. username: 'TestUser3',
  60. password: 'TestPassword',
  61. invite: 'bogus'
  62. }, done);
  63. });
  64. it('SHOULD NOT register valid user, used invite', function (done) {
  65. util.verifyFailedInviteRegister({
  66. username: 'TestUser3',
  67. password: 'TestPassword',
  68. invite: 'TestCode1'
  69. }, done);
  70. });
  71. it('SHOULD NOT register valid user, expired invite', function (done) {
  72. util.verifyFailedInviteRegister({
  73. username: 'TestUser3',
  74. password: 'TestPassword',
  75. invite: 'TestCode3'
  76. }, done);
  77. })
  78. });
  79. describe('/POST login', function () {
  80. it('SHOULD accept valid user, valid password', function (done) {
  81. util.verifySuccessfulLogin({
  82. username: 'TestUser1',
  83. password: 'TestPassword'
  84. }, done);
  85. });
  86. it('SHOULD NOT accept valid user, invalid password', function (done) {
  87. util.verifyFailedPasswordLogin({
  88. username: 'TestUser1',
  89. password: 'bogus'
  90. }, done);
  91. });
  92. it('SHOULD NOT accept invalid user, any password', function (done) {
  93. util.verifyFailedUsernameLogin({
  94. username: 'BogusTestUser',
  95. password: 'bogus'
  96. }, done);
  97. });
  98. });
  99. });
  100. describe('Uploads', function () {
  101. describe('/POST upload', function () {
  102. it('SHOULD accept logged in valid upload', function(done) {
  103. util.verifySuccessfulUpload({
  104. username: 'TestUser2',
  105. password: 'TestPassword'
  106. }, done);
  107. });
  108. it('SHOULD NOT accept unauthenticated valid upload', function(done) {
  109. util.verifyFailedAuthUpload(done);
  110. });
  111. it('SHOULD NOT accept invalid permission, valid upload', function(done) {
  112. util.verifyFailedPermissionUpload({
  113. username: 'TestUser1',
  114. password: 'TestPassword'
  115. }, done);
  116. });
  117. it('SHOULD NOT accept invalid size upload', function(done) {
  118. util.verifyFailedSizeUpload({
  119. username: 'TestUser2',
  120. password: 'TestPassword'
  121. }, done);
  122. })
  123. });
  124. });
  125. after(function () {
  126. server.close(function () {
  127. process.exit();
  128. });
  129. });