Guest User

Untitled

a guest
Sep 6th, 2018
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.60 KB | None | 0 0
  1. 'use strict';
  2.  
  3. var Promise = require('bluebird');
  4. var crypto = require('crypto');
  5. var expect = require('chai').expect;
  6. var _ = require('lodash');
  7. var mockFactory =
  8.  
  9. require('@vixlet/vixlet-utils').mockFactory;
  10. var VixQue =
  11.  
  12. require('@vixlet/vix-que');
  13.  
  14. var environmentDefaults = require('../../../utils/environment-defaults');
  15. var User = require('../../../utils/user');
  16. var Domain = require('../../../utils/domain');
  17. var VixletJs = require('../../../index.js');
  18.  
  19. var cologor = require('../../../utils/cologor');
  20.  
  21. var waitDuration = 10000;
  22.  
  23. var titleableCapsuleCover = 'vix_burger.png';
  24. var untitleableCapsuleCover = 'vix_pony.png';
  25. var invalidCapsuleCover = 'vix_idontexist.png';
  26.  
  27.  
  28. describe('Capsule Microservice', function () {
  29.  
  30. cologor.setIndentLevel(3);
  31.  
  32. describe('titles', function () {
  33.  
  34. var creator;
  35.  
  36. var createUser = function () {
  37. var params = User.randomUser();
  38. var password = params.password;
  39. var vixletJs = new VixletJs({base: environmentDefaults.apiHost});
  40. return User.createActivatedUser(params)
  41. .then(function (result) {
  42. return vixletJs.authenticate({
  43. grantType: 'password',
  44. clientId: environmentDefaults.clientId,
  45. username: result.username,
  46. password: password
  47. });
  48. });
  49. };
  50.  
  51. before(function (done) {
  52.  
  53. this.timeout(50000 + waitDuration);
  54.  
  55. createUser()
  56. .then(function (user) {
  57. creator = user;
  58. cologor.debug('Done! Waiting ' + waitDuration + ' milliseconds...');
  59. setTimeout(function () {
  60. done();
  61. }, waitDuration);
  62. })
  63. .catch(function (err) {
  64. cologor.error(err);
  65. return done(err);
  66. });
  67. });
  68.  
  69. it('should not allow a capsule to be created with an invalid capsule cover', function (done) {
  70. var capsuleParams = {
  71. contributable: 'private',
  72. description: 'Welcome...',
  73. location: 'Los Angeles, California',
  74. name: 'The Vixletverse',
  75. privacy: 'public',
  76. cover: invalidCapsuleCover
  77. };
  78. creator.capsule.create(capsuleParams)
  79. .then(function (result) {
  80. return done(new Error('Unexpected success case', result));
  81. })
  82. .catch(function (err) {
  83. expect(err.status).to.equal(400);
  84. expect(err.response.body).to.exist;
  85. expect(err.response.body.message).to.contain('Invalid cover');
  86. expect(err.response.body.name).to.equal('BadRequest');
  87. return done();
  88. });
  89. });
  90.  
  91. describe('titleable capsule covers', function() {
  92.  
  93. it('should allow a capsule to be created and hasTitle from user input is used when set to true', function(done) {
  94. this.timeout(4000);
  95. var capsuleParams = {
  96. contributable: 'private',
  97. description: 'Welcome...',
  98. location: 'Los Angeles, California',
  99. name: 'The Vixletverse',
  100. privacy: 'public',
  101. cover: titleableCapsuleCover,
  102. hasTitle: true
  103. };
  104. return creator.capsule.create(capsuleParams)
  105. .then(function(capsule) {
  106. expect(capsule).to.be.an('object');
  107. expect(capsule.id).to.be.a('string');
  108. expect(capsule.name).to.equal(capsuleParams.name);
  109. expect(capsule.description).to.equal(capsuleParams.description);
  110. expect(capsule.hasTitle).to.equal(capsuleParams.hasTitle);
  111. return done();
  112. })
  113. .catch(done);
  114. });
  115.  
  116. it('should allow a capsule to be created and hasTitle from user input is used when set to false', function(done) {
  117. this.timeout(4000);
  118. var capsuleParams = {
  119. contributable: 'private',
  120. description: 'Welcome...',
  121. location: 'Los Angeles, California',
  122. name: 'The Vixletverse',
  123. privacy: 'public',
  124. cover: titleableCapsuleCover,
  125. hasTitle: false
  126. };
  127. return creator.capsule.create(capsuleParams)
  128. .then(function(capsule) {
  129. expect(capsule).to.be.an('object');
  130. expect(capsule.id).to.be.a('string');
  131. expect(capsule.name).to.equal(capsuleParams.name);
  132. expect(capsule.description).to.equal(capsuleParams.description);
  133. expect(capsule.hasTitle).to.equal(capsuleParams.hasTitle);
  134. return done();
  135. })
  136. .catch(done);
  137. });
  138.  
  139. it('should allow a capsule\'s hasTitle to be updated from true to false', function(done) {
  140. this.timeout(4000);
  141. var capsuleParams = {
  142. contributable: 'private',
  143. description: 'Welcome...',
  144. location: 'Los Angeles, California',
  145. name: 'The Vixletverse',
  146. privacy: 'public',
  147. cover: titleableCapsuleCover,
  148. hasTitle: true
  149. };
  150. return creator.capsule.create(capsuleParams)
  151. .then(function(capsule) {
  152. expect(capsule).to.be.an('object');
  153. expect(capsule.id).to.be.a('string');
  154. expect(capsule.name).to.equal(capsuleParams.name);
  155. expect(capsule.description).to.equal(capsuleParams.description);
  156. expect(capsule.hasTitle).to.equal(capsuleParams.hasTitle);
  157. return creator.capsule.update({ id: capsule.id, hasTitle: false });
  158. })
  159. .then(function(capsule) {
  160. expect(capsule).to.be.an('object');
  161. expect(capsule.id).to.be.a('string');
  162. expect(capsule.name).to.equal(capsuleParams.name);
  163. expect(capsule.description).to.equal(capsuleParams.description);
  164. expect(capsule.hasTitle).to.equal(false);
  165. return done();
  166. })
  167. .catch(done);
  168. });
  169.  
  170. it('should allow a capsule\'s hasTitle to be updated from false to true', function(done) {
  171. this.timeout(4000);
  172. var capsuleParams = {
  173. contributable: 'private',
  174. description: 'Welcome...',
  175. location: 'Los Angeles, California',
  176. name: 'The Vixletverse',
  177. privacy: 'public',
  178. cover: titleableCapsuleCover,
  179. hasTitle: false
  180. };
  181. return creator.capsule.create(capsuleParams)
  182. .then(function(capsule) {
  183. expect(capsule).to.be.an('object');
  184. expect(capsule.id).to.be.a('string');
  185. expect(capsule.name).to.equal(capsuleParams.name);
  186. expect(capsule.description).to.equal(capsuleParams.description);
  187. expect(capsule.hasTitle).to.equal(capsuleParams.hasTitle);
  188. return creator.capsule.update({ id: capsule.id, hasTitle: true });
  189. })
  190. .then(function(capsule) {
  191. expect(capsule).to.be.an('object');
  192. expect(capsule.id).to.be.a('string');
  193. expect(capsule.name).to.equal(capsuleParams.name);
  194. expect(capsule.description).to.equal(capsuleParams.description);
  195. expect(capsule.hasTitle).to.equal(true);
  196. return done();
  197. })
  198. .catch(done);
  199. });
  200. });
  201.  
  202. describe('untitleable capsule covers', function() {
  203.  
  204. it('should allow a capsule to be created and hasTitle is to be true', function(done) {
  205. this.timeout(4000);
  206. var capsuleParams = {
  207. contributable: 'private',
  208. description: 'Welcome...',
  209. location: 'Los Angeles, California',
  210. name: 'The Vixletverse',
  211. privacy: 'public',
  212. cover: untitleableCapsuleCover,
  213. hasTitle: true
  214. };
  215. return creator.capsule.create(capsuleParams)
  216. .then(function(capsule) {
  217. expect(capsule).to.be.an('object');
  218. expect(capsule.id).to.be.a('string');
  219. expect(capsule.name).to.equal(capsuleParams.name);
  220. expect(capsule.description).to.equal(capsuleParams.description);
  221. //expect(capsule.hasTitle).to.equal(true);
  222. return done();
  223. })
  224. .catch(done);
  225. });
  226.  
  227. it('should allow a capsule to be created and hasTitle from user input is used when set to false', function(done) {
  228. this.timeout(4000);
  229. var capsuleParams = {
  230. contributable: 'private',
  231. description: 'Welcome...',
  232. location: 'Los Angeles, California',
  233. name: 'The Vixletverse',
  234. privacy: 'public',
  235. cover: untitleableCapsuleCover,
  236. hasTitle: false
  237. };
  238. return creator.capsule.create(capsuleParams)
  239. .then(function(capsule) {
  240. expect(capsule).to.be.an('object');
  241. expect(capsule.id).to.be.a('string');
  242. expect(capsule.name).to.equal(capsuleParams.name);
  243. expect(capsule.description).to.equal(capsuleParams.description);
  244. expect(capsule.hasTitle).to.equal(false);
  245. return done();
  246. })
  247. .catch(done);
  248. });
  249.  
  250. it('should allow a capsule\'s to be updated, and hasTitle to be updated to true', function(done) {
  251. this.timeout(4000);
  252. var capsuleParams = {
  253. contributable: 'private',
  254. description: 'Welcome...',
  255. location: 'Los Angeles, California',
  256. name: 'The Vixletverse',
  257. privacy: 'public',
  258. cover: untitleableCapsuleCover,
  259. hasTitle: false
  260. };
  261. return creator.capsule.create(capsuleParams)
  262. .then(function(capsule) {
  263. expect(capsule).to.be.an('object');
  264. expect(capsule.id).to.be.a('string');
  265. expect(capsule.name).to.equal(capsuleParams.name);
  266. expect(capsule.description).to.equal(capsuleParams.description);
  267. expect(capsule.hasTitle).to.equal(capsuleParams.hasTitle);
  268. return creator.capsule.update({ id: capsule.id, hasTitle: true});
  269. })
  270. .then(function(capsule) {
  271. expect(capsule).to.be.an('object');
  272. expect(capsule.id).to.be.a('string');
  273. expect(capsule.name).to.equal(capsuleParams.name);
  274. expect(capsule.description).to.equal(capsuleParams.description);
  275. //expect(capsule.hasTitle).to.equal(true);
  276. return done();
  277. })
  278. .catch(done);
  279. });
  280. });
  281.  
  282. after(function (done) {
  283. var params = {
  284. awsAccessKeyId: environmentDefaults.aws.accessKeyId,
  285. awsSecretKey: environmentDefaults.aws.secretKey,
  286. awsRegion: environmentDefaults.aws.region,
  287. queueName: environmentDefaults.queue.user
  288. };
  289. var vixQue = new VixQue(params);
  290. var queueDeleteUser = function (userId) {
  291. vixQue.sendMessage({
  292. message: {
  293. task: 'deleteUser',
  294. data: {
  295. userId: userId,
  296. isHardDelete: true
  297. }
  298. }
  299. });
  300. };
  301. queueDeleteUser(creator.id);
  302. done();
  303. });
  304. });
  305. });
Add Comment
Please, Sign In to add comment