folder.test.ts 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import client from './client';
  2. import * as setup from './setup';
  3. describe('/api/folders', () => {
  4. let state: any = {};
  5. beforeAll(async () => {
  6. state = await setup.ensureState({
  7. orgName: 'api-test-org',
  8. users: [
  9. { user: setup.admin, role: 'Admin' },
  10. { user: setup.editor, role: 'Editor' },
  11. { user: setup.viewer, role: 'Viewer' },
  12. ],
  13. admin: setup.admin,
  14. folders: [
  15. {
  16. title: 'Folder 1',
  17. uid: 'f-01',
  18. },
  19. {
  20. title: 'Folder 2',
  21. uid: 'f-02',
  22. },
  23. {
  24. title: 'Folder 3',
  25. uid: 'f-03',
  26. },
  27. ],
  28. });
  29. });
  30. describe('With admin user', () => {
  31. it('can delete folder', async () => {
  32. let rsp = await client.callAs(setup.admin).delete(`/api/folders/f-01`);
  33. expect(rsp.data.title).toBe('Folder 1');
  34. });
  35. it('can update folder', async () => {
  36. let rsp = await client.callAs(setup.admin).put(`/api/folders/f-02`, {
  37. uid: 'f-02',
  38. title: 'Folder 2 upd',
  39. overwrite: true,
  40. });
  41. expect(rsp.data.title).toBe('Folder 2 upd');
  42. });
  43. it('can update folder uid', async () => {
  44. let rsp = await client.callAs(setup.admin).put(`/api/folders/f-03`, {
  45. uid: 'f-03-upd',
  46. title: 'Folder 3 upd',
  47. overwrite: true,
  48. });
  49. expect(rsp.data.uid).toBe('f-03-upd');
  50. expect(rsp.data.title).toBe('Folder 3 upd');
  51. });
  52. });
  53. describe('With viewer user', () => {
  54. it('Cannot delete folder', async () => {
  55. let rsp = await setup.expectError(() => {
  56. return client.callAs(setup.viewer).delete(`/api/folders/f-02`);
  57. });
  58. expect(rsp.response.status).toBe(403);
  59. });
  60. it('Cannot update folder', async () => {
  61. let rsp = await setup.expectError(() => {
  62. return client.callAs(setup.viewer).put(`/api/folders/f-02`, {
  63. uid: 'f-02',
  64. title: 'Folder 2 upd',
  65. overwrite: true,
  66. });
  67. });
  68. expect(rsp.response.status).toBe(403);
  69. });
  70. });
  71. });