administrator.e2e-spec.ts 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. import {
  2. Administrator,
  3. CreateAdministrator,
  4. CreateAdministratorVariables,
  5. GetAdministrator,
  6. GetAdministrators,
  7. GetAdministratorsVariables,
  8. GetAdministratorVariables,
  9. UpdateAdministrator,
  10. UpdateAdministratorVariables,
  11. } from 'shared/generated-types';
  12. import {
  13. CREATE_ADMINISTRATOR,
  14. GET_ADMINISTRATOR,
  15. GET_ADMINISTRATORS,
  16. UPDATE_ADMINISTRATOR,
  17. } from '../../admin-ui/src/app/data/definitions/administrator-definitions';
  18. import { TestClient } from './test-client';
  19. import { TestServer } from './test-server';
  20. describe('Administrator resolver', () => {
  21. const client = new TestClient();
  22. const server = new TestServer();
  23. let createdAdmin: Administrator;
  24. beforeAll(async () => {
  25. const token = await server.init({
  26. productCount: 1,
  27. customerCount: 1,
  28. });
  29. await client.init();
  30. }, 60000);
  31. afterAll(async () => {
  32. await server.destroy();
  33. });
  34. it('administrators', async () => {
  35. const result = await client.query<GetAdministrators, GetAdministratorsVariables>(GET_ADMINISTRATORS);
  36. expect(result.administrators.items.length).toBe(1);
  37. expect(result.administrators.totalItems).toBe(1);
  38. });
  39. it('createAdministrator', async () => {
  40. const result = await client.query<CreateAdministrator, CreateAdministratorVariables>(
  41. CREATE_ADMINISTRATOR,
  42. {
  43. input: {
  44. emailAddress: 'test@test.com',
  45. firstName: 'First',
  46. lastName: 'Last',
  47. password: 'password',
  48. roleIds: ['1'],
  49. },
  50. },
  51. );
  52. createdAdmin = result.createAdministrator;
  53. expect(createdAdmin).toMatchSnapshot();
  54. });
  55. it('administrator', async () => {
  56. const result = await client.query<GetAdministrator, GetAdministratorVariables>(GET_ADMINISTRATOR, {
  57. id: createdAdmin.id,
  58. });
  59. expect(result.administrator).toEqual(createdAdmin);
  60. });
  61. it('updateAdministrator', async () => {
  62. const result = await client.query<UpdateAdministrator, UpdateAdministratorVariables>(
  63. UPDATE_ADMINISTRATOR,
  64. {
  65. input: {
  66. id: createdAdmin.id,
  67. emailAddress: 'new-email',
  68. firstName: 'new first',
  69. lastName: 'new last',
  70. password: 'new password',
  71. roleIds: ['2'],
  72. },
  73. },
  74. );
  75. expect(result.updateAdministrator).toMatchSnapshot();
  76. });
  77. it('updateAdministrator throws with invalid roleId', async () => {
  78. try {
  79. const result = await client.query<UpdateAdministrator, UpdateAdministratorVariables>(
  80. UPDATE_ADMINISTRATOR,
  81. {
  82. input: {
  83. id: createdAdmin.id,
  84. emailAddress: 'new-email',
  85. firstName: 'new first',
  86. lastName: 'new last',
  87. password: 'new password',
  88. roleIds: ['999'],
  89. },
  90. },
  91. );
  92. fail(`Should throw`);
  93. } catch (err) {
  94. expect(err.message).toEqual(expect.stringContaining(`No Role with the id '999' could be found`));
  95. }
  96. });
  97. });