administrator.e2e-spec.ts 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  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 works with partial input', async () => {
  78. const result = await client.query<UpdateAdministrator, UpdateAdministratorVariables>(
  79. UPDATE_ADMINISTRATOR,
  80. {
  81. input: {
  82. id: createdAdmin.id,
  83. emailAddress: 'newest-email',
  84. },
  85. },
  86. );
  87. expect(result.updateAdministrator.emailAddress).toBe('newest-email');
  88. expect(result.updateAdministrator.firstName).toBe('new first');
  89. expect(result.updateAdministrator.lastName).toBe('new last');
  90. });
  91. it('updateAdministrator throws with invalid roleId', async () => {
  92. try {
  93. const result = await client.query<UpdateAdministrator, UpdateAdministratorVariables>(
  94. UPDATE_ADMINISTRATOR,
  95. {
  96. input: {
  97. id: createdAdmin.id,
  98. emailAddress: 'new-email',
  99. firstName: 'new first',
  100. lastName: 'new last',
  101. password: 'new password',
  102. roleIds: ['999'],
  103. },
  104. },
  105. );
  106. fail(`Should throw`);
  107. } catch (err) {
  108. expect(err.message).toEqual(expect.stringContaining(`No Role with the id '999' could be found`));
  109. }
  110. });
  111. });