translations.e2e-spec.ts 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import { LanguageCode, mergeConfig } from '@vendure/core';
  2. import { createTestEnvironment } from '@vendure/testing';
  3. import gql from 'graphql-tag';
  4. import path from 'path';
  5. import { initialData } from '../../../e2e-common/e2e-initial-data';
  6. import { testConfig, TEST_SETUP_TIMEOUT_MS } from '../../../e2e-common/test-config';
  7. import * as DE from './fixtures/i18n/de.json';
  8. import * as EN from './fixtures/i18n/en.json';
  9. import {
  10. CUSTOM_ERROR_MESSAGE_TRANSLATION,
  11. TranslationTestPlugin,
  12. } from './fixtures/test-plugins/translation-test-plugin';
  13. describe('Translation', () => {
  14. const { server, adminClient } = createTestEnvironment(
  15. mergeConfig(testConfig(), {
  16. plugins: [TranslationTestPlugin],
  17. }),
  18. );
  19. beforeAll(async () => {
  20. await server.init({
  21. initialData,
  22. productsCsvPath: path.join(__dirname, 'fixtures/e2e-products-minimal.csv'),
  23. customerCount: 0,
  24. });
  25. await adminClient.asSuperAdmin();
  26. }, TEST_SETUP_TIMEOUT_MS);
  27. afterAll(async () => {
  28. await server.destroy();
  29. });
  30. describe('translations added manualy', () => {
  31. it('shall receive custom error message', async () => {
  32. const { customErrorMessage } = await adminClient.query(gql(CUSTOM_ERROR));
  33. expect(customErrorMessage.errorCode).toBe('CUSTOM_ERROR');
  34. expect(customErrorMessage.message).toBe(CUSTOM_ERROR_MESSAGE_TRANSLATION);
  35. });
  36. it('shall receive german error message', async () => {
  37. const { customErrorMessage } = await adminClient.query(
  38. gql(CUSTOM_ERROR),
  39. {},
  40. { languageCode: LanguageCode.de },
  41. );
  42. expect(customErrorMessage.errorCode).toBe('CUSTOM_ERROR');
  43. expect(customErrorMessage.message).toBe('DE_' + CUSTOM_ERROR_MESSAGE_TRANSLATION);
  44. });
  45. });
  46. describe('translation added by file', () => {
  47. it('shall receive custom error message', async () => {
  48. const { newErrorMessage } = await adminClient.query(gql(NEW_ERROR));
  49. expect(newErrorMessage.errorCode).toBe('NEW_ERROR');
  50. expect(newErrorMessage.message).toBe(EN.errorResult.NEW_ERROR);
  51. });
  52. it('shall receive german error message', async () => {
  53. const { newErrorMessage } = await adminClient.query(
  54. gql(NEW_ERROR),
  55. {},
  56. { languageCode: LanguageCode.de },
  57. );
  58. expect(newErrorMessage.errorCode).toBe('NEW_ERROR');
  59. expect(newErrorMessage.message).toBe(DE.errorResult.NEW_ERROR);
  60. });
  61. });
  62. });
  63. const CUSTOM_ERROR = `
  64. query CustomError {
  65. customErrorMessage {
  66. ... on ErrorResult {
  67. errorCode
  68. message
  69. }
  70. }
  71. }
  72. `;
  73. const NEW_ERROR = `
  74. query NewError {
  75. newErrorMessage {
  76. ... on ErrorResult {
  77. errorCode
  78. message
  79. }
  80. }
  81. }
  82. `;