Advertisement
Guest User

Untitled

a guest
Dec 24th, 2016
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. Meteor.methods({
  2. 'client.new':( clientDetails ) => {
  3. check( clientDetails, {
  4. name: String,
  5. numberTeamMembers: String
  6. });
  7.  
  8. clientDetails.teamMembers = [];
  9.  
  10. if(!Meteor.userId() || !Roles.userIsInRole(Meteor.userId(), 'administrator')) {
  11. throw new Meteor.Error('500', 'You are not authorised to do this.');
  12. }
  13.  
  14. if(Clients.findOne({ name: clientDetails.name})) {
  15. throw new Meteor.Error('500', 'This client name already exists!');
  16. };
  17.  
  18. return Clients.insert(clientDetails);
  19. },
  20. });
  21.  
  22. import { Meteor } from 'meteor/meteor';
  23. import { expect, be } from 'meteor/practicalmeteor:chai';
  24. import { describe, it, before } from 'meteor/practicalmeteor:mocha';
  25. import { resetDatabase } from 'meteor/xolvio:cleaner';
  26. import { Random } from 'meteor/random';
  27.  
  28. import { Clients } from '/imports/api/clients/clients.js';
  29.  
  30. import '/imports/api/clients/server/methods.js';
  31.  
  32. describe('Client Methods in API', function() {
  33. before(function() {
  34. resetDatabase();
  35. });
  36.  
  37. it('can create a Client', function(){
  38. let clientName = "Microsoft",
  39. numberTeamMembers = "5",
  40. data = {
  41. name: clientName,
  42. numberTeamMembers: numberTeamMembers
  43. };
  44.  
  45. let userId = Accounts.createUser({username: "admin", email: "admin@admin.com", password: "password"});
  46. Meteor.users.update({ _id: userId }, { $set: { roles: [ 'administrator' ] }});
  47.  
  48. let method = Meteor.server.method_handlers['client.new'];
  49.  
  50. method.apply(userId, [data]);
  51.  
  52.  
  53. let client = Clients.findOne();
  54.  
  55. expect(Clients.find().count()).to.equal(1);
  56. expect(client.name).to.equal(clientName);
  57. expect(client.numberTeamMembers).to.equal(numberTeamMembers);
  58. });
  59. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement