v5.user-groups.test.ts 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import mongoose from 'mongoose';
  2. import { getInstance } from '../setup-crowi';
  3. describe('UserGroupService', () => {
  4. // let dummyUser1;
  5. // let dummyUser2;
  6. let crowi;
  7. let UserGroup;
  8. const groupId1 = new mongoose.Types.ObjectId();
  9. const groupId2 = new mongoose.Types.ObjectId();
  10. const groupId3 = new mongoose.Types.ObjectId();
  11. beforeAll(async() => {
  12. crowi = await getInstance();
  13. await crowi.configManager.updateConfigsInTheSameNamespace('crowi', { 'app:isV5Compatible': true });
  14. UserGroup = mongoose.model('UserGroup');
  15. /*
  16. * Common
  17. */
  18. // dummyUser1 = await UserGroup.findOne({ username: 'v5DummyUser1' });
  19. // dummyUser2 = await UserGroup.findOne({ username: 'v5DummyUser2' });
  20. // xssSpy = jest.spyOn(crowi.xss, 'process').mockImplementation(path => path);
  21. // Create Groups
  22. await UserGroup.insertMany([
  23. // no parent
  24. {
  25. _id: groupId1,
  26. name: 'v5_group1',
  27. description: 'description1',
  28. },
  29. // no parent
  30. {
  31. _id: groupId2,
  32. name: 'v5_group2',
  33. description: 'description2',
  34. },
  35. {
  36. _id: groupId3,
  37. name: 'v5_group3',
  38. parent: groupId1,
  39. description: 'description3',
  40. },
  41. ]);
  42. });
  43. /*
  44. * Update UserGroup
  45. */
  46. test('Can update user group basic info', async() => {
  47. const userGroup = await UserGroup.findOne({ _id: groupId1 });
  48. const newGroupName = 'v5_group1_new';
  49. const newGroupDescription = 'description1_new';
  50. const newParentId = groupId2;
  51. const updatedUserGroup = await crowi.userGroupService.updateGroup(userGroup._id, newGroupName, newGroupDescription, newParentId);
  52. expect(updatedUserGroup.name).toBe(newGroupName);
  53. expect(updatedUserGroup.description).toBe(newGroupDescription);
  54. expect(updatedUserGroup.parent).toStrictEqual(newParentId);
  55. });
  56. test('Cannot update to existing group name', async() => {
  57. const userGroup = await UserGroup.findOne({ _id: groupId1 });
  58. await expect(crowi.userGroupService.updateGroup(userGroup._id, 'v5_group2')).rejects.toThrow('The group name is already taken');
  59. });
  60. });