@mappedin/viewer 0.32.1-6eb62a3.0 → 0.32.1-e9092a6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/dist/index.js +1079 -1072
  2. package/dist/types/src/components/async-image/index.d.ts +1 -0
  3. package/e2e-tests/directions-state.spec.ts +74 -0
  4. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-1-Mobile-Chrome-darwin.png +0 -0
  5. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-1-Mobile-Safari-darwin.png +0 -0
  6. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-1-chromium-darwin.png +0 -0
  7. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-1-firefox-darwin.png +0 -0
  8. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-1-webkit-darwin.png +0 -0
  9. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-embedded-1-Mobile-Chrome-darwin.png +0 -0
  10. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-embedded-1-Mobile-Safari-darwin.png +0 -0
  11. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-embedded-1-chromium-darwin.png +0 -0
  12. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-embedded-1-firefox-darwin.png +0 -0
  13. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-embedded-1-webkit-darwin.png +0 -0
  14. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-dropped-pin-1-Mobile-Chrome-darwin.png +0 -0
  15. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-dropped-pin-1-Mobile-Safari-darwin.png +0 -0
  16. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-dropped-pin-1-chromium-darwin.png +0 -0
  17. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-dropped-pin-1-firefox-darwin.png +0 -0
  18. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-dropped-pin-1-webkit-darwin.png +0 -0
  19. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-dropped-pin-embedded-1-Mobile-Chrome-darwin.png +0 -0
  20. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-dropped-pin-embedded-1-Mobile-Safari-darwin.png +0 -0
  21. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-dropped-pin-embedded-1-chromium-darwin.png +0 -0
  22. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-dropped-pin-embedded-1-firefox-darwin.png +0 -0
  23. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-dropped-pin-embedded-1-webkit-darwin.png +0 -0
  24. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-nearest-entrance-1-Mobile-Chrome-darwin.png +0 -0
  25. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-nearest-entrance-1-Mobile-Safari-darwin.png +0 -0
  26. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-nearest-entrance-1-chromium-darwin.png +0 -0
  27. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-nearest-entrance-1-firefox-darwin.png +0 -0
  28. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-nearest-entrance-1-webkit-darwin.png +0 -0
  29. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-nearest-entrance-embedded-1-Mobile-Chrome-darwin.png +0 -0
  30. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-nearest-entrance-embedded-1-Mobile-Safari-darwin.png +0 -0
  31. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-nearest-entrance-embedded-1-chromium-darwin.png +0 -0
  32. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-nearest-entrance-embedded-1-firefox-darwin.png +0 -0
  33. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-nearest-entrance-embedded-1-webkit-darwin.png +0 -0
  34. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-selection-1-Mobile-Chrome-darwin.png +0 -0
  35. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-selection-1-Mobile-Safari-darwin.png +0 -0
  36. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-selection-1-chromium-darwin.png +0 -0
  37. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-selection-1-firefox-darwin.png +0 -0
  38. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-selection-1-webkit-darwin.png +0 -0
  39. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-selection-embedded-1-Mobile-Chrome-darwin.png +0 -0
  40. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-selection-embedded-1-Mobile-Safari-darwin.png +0 -0
  41. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-selection-embedded-1-chromium-darwin.png +0 -0
  42. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-selection-embedded-1-firefox-darwin.png +0 -0
  43. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-from-selection-embedded-1-webkit-darwin.png +0 -0
  44. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-level-selector-open-1-Mobile-Chrome-darwin.png +0 -0
  45. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-level-selector-open-1-Mobile-Safari-darwin.png +0 -0
  46. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-level-selector-open-1-chromium-darwin.png +0 -0
  47. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-level-selector-open-1-firefox-darwin.png +0 -0
  48. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-level-selector-open-1-webkit-darwin.png +0 -0
  49. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-level-selector-open-embedded-1-Mobile-Chrome-darwin.png +0 -0
  50. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-level-selector-open-embedded-1-Mobile-Safari-darwin.png +0 -0
  51. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-level-selector-open-embedded-1-chromium-darwin.png +0 -0
  52. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-level-selector-open-embedded-1-firefox-darwin.png +0 -0
  53. package/e2e-tests/directions-state.spec.ts-snapshots/DIRECTIONS-state-level-selector-open-embedded-1-webkit-darwin.png +0 -0
  54. package/e2e-tests/playwright.config.ts +77 -0
  55. package/e2e-tests/start-state.spec.ts +42 -0
  56. package/e2e-tests/start-state.spec.ts-snapshots/START-state-1-Mobile-Chrome-darwin.png +0 -0
  57. package/e2e-tests/start-state.spec.ts-snapshots/START-state-1-Mobile-Safari-darwin.png +0 -0
  58. package/e2e-tests/start-state.spec.ts-snapshots/START-state-1-chromium-darwin.png +0 -0
  59. package/e2e-tests/start-state.spec.ts-snapshots/START-state-1-firefox-darwin.png +0 -0
  60. package/e2e-tests/start-state.spec.ts-snapshots/START-state-1-webkit-darwin.png +0 -0
  61. package/e2e-tests/start-state.spec.ts-snapshots/START-state-embedded-1-Mobile-Chrome-darwin.png +0 -0
  62. package/e2e-tests/start-state.spec.ts-snapshots/START-state-embedded-1-Mobile-Safari-darwin.png +0 -0
  63. package/e2e-tests/start-state.spec.ts-snapshots/START-state-embedded-1-chromium-darwin.png +0 -0
  64. package/e2e-tests/start-state.spec.ts-snapshots/START-state-embedded-1-firefox-darwin.png +0 -0
  65. package/e2e-tests/start-state.spec.ts-snapshots/START-state-embedded-1-webkit-darwin.png +0 -0
  66. package/e2e-tests/start-state.spec.ts-snapshots/START-state-level-selector-open-1-Mobile-Chrome-darwin.png +0 -0
  67. package/e2e-tests/start-state.spec.ts-snapshots/START-state-level-selector-open-1-Mobile-Safari-darwin.png +0 -0
  68. package/e2e-tests/start-state.spec.ts-snapshots/START-state-level-selector-open-1-chromium-darwin.png +0 -0
  69. package/e2e-tests/start-state.spec.ts-snapshots/START-state-level-selector-open-1-firefox-darwin.png +0 -0
  70. package/e2e-tests/start-state.spec.ts-snapshots/START-state-level-selector-open-1-webkit-darwin.png +0 -0
  71. package/e2e-tests/start-state.spec.ts-snapshots/START-state-level-selector-open-embedded-1-Mobile-Chrome-darwin.png +0 -0
  72. package/e2e-tests/start-state.spec.ts-snapshots/START-state-level-selector-open-embedded-1-Mobile-Safari-darwin.png +0 -0
  73. package/e2e-tests/start-state.spec.ts-snapshots/START-state-level-selector-open-embedded-1-chromium-darwin.png +0 -0
  74. package/e2e-tests/start-state.spec.ts-snapshots/START-state-level-selector-open-embedded-1-firefox-darwin.png +0 -0
  75. package/e2e-tests/start-state.spec.ts-snapshots/START-state-level-selector-open-embedded-1-webkit-darwin.png +0 -0
  76. package/e2e-tests/start-state.spec.ts-snapshots/START-state-location-image-fullscreen-1-Mobile-Chrome-darwin.png +0 -0
  77. package/e2e-tests/start-state.spec.ts-snapshots/START-state-location-image-fullscreen-1-Mobile-Safari-darwin.png +0 -0
  78. package/e2e-tests/start-state.spec.ts-snapshots/START-state-location-image-fullscreen-1-chromium-darwin.png +0 -0
  79. package/e2e-tests/start-state.spec.ts-snapshots/START-state-location-image-fullscreen-1-firefox-darwin.png +0 -0
  80. package/e2e-tests/start-state.spec.ts-snapshots/START-state-location-image-fullscreen-1-webkit-darwin.png +0 -0
  81. package/e2e-tests/start-state.spec.ts-snapshots/START-state-location-image-fullscreen-embedded-1-Mobile-Chrome-darwin.png +0 -0
  82. package/e2e-tests/start-state.spec.ts-snapshots/START-state-location-image-fullscreen-embedded-1-Mobile-Safari-darwin.png +0 -0
  83. package/e2e-tests/start-state.spec.ts-snapshots/START-state-location-image-fullscreen-embedded-1-chromium-darwin.png +0 -0
  84. package/e2e-tests/start-state.spec.ts-snapshots/START-state-location-image-fullscreen-embedded-1-firefox-darwin.png +0 -0
  85. package/e2e-tests/start-state.spec.ts-snapshots/START-state-location-image-fullscreen-embedded-1-webkit-darwin.png +0 -0
  86. package/e2e-tests/start-state.spec.ts-snapshots/START-state-location-selected-1-Mobile-Chrome-darwin.png +0 -0
  87. package/e2e-tests/start-state.spec.ts-snapshots/START-state-location-selected-1-Mobile-Safari-darwin.png +0 -0
  88. package/e2e-tests/start-state.spec.ts-snapshots/START-state-location-selected-1-chromium-darwin.png +0 -0
  89. package/e2e-tests/start-state.spec.ts-snapshots/START-state-location-selected-1-firefox-darwin.png +0 -0
  90. package/e2e-tests/start-state.spec.ts-snapshots/START-state-location-selected-1-webkit-darwin.png +0 -0
  91. package/e2e-tests/start-state.spec.ts-snapshots/START-state-location-selected-embedded-1-Mobile-Chrome-darwin.png +0 -0
  92. package/e2e-tests/start-state.spec.ts-snapshots/START-state-location-selected-embedded-1-Mobile-Safari-darwin.png +0 -0
  93. package/e2e-tests/start-state.spec.ts-snapshots/START-state-location-selected-embedded-1-chromium-darwin.png +0 -0
  94. package/e2e-tests/start-state.spec.ts-snapshots/START-state-location-selected-embedded-1-firefox-darwin.png +0 -0
  95. package/e2e-tests/start-state.spec.ts-snapshots/START-state-location-selected-embedded-1-webkit-darwin.png +0 -0
  96. package/e2e-tests/start-state.spec.ts-snapshots/START-state-search-bar-focused-1-Mobile-Chrome-darwin.png +0 -0
  97. package/e2e-tests/start-state.spec.ts-snapshots/START-state-search-bar-focused-1-Mobile-Safari-darwin.png +0 -0
  98. package/e2e-tests/start-state.spec.ts-snapshots/START-state-search-bar-focused-1-chromium-darwin.png +0 -0
  99. package/e2e-tests/start-state.spec.ts-snapshots/START-state-search-bar-focused-1-firefox-darwin.png +0 -0
  100. package/e2e-tests/start-state.spec.ts-snapshots/START-state-search-bar-focused-1-webkit-darwin.png +0 -0
  101. package/e2e-tests/start-state.spec.ts-snapshots/START-state-search-bar-focused-embedded-1-Mobile-Chrome-darwin.png +0 -0
  102. package/e2e-tests/start-state.spec.ts-snapshots/START-state-search-bar-focused-embedded-1-Mobile-Safari-darwin.png +0 -0
  103. package/e2e-tests/start-state.spec.ts-snapshots/START-state-search-bar-focused-embedded-1-chromium-darwin.png +0 -0
  104. package/e2e-tests/start-state.spec.ts-snapshots/START-state-search-bar-focused-embedded-1-firefox-darwin.png +0 -0
  105. package/e2e-tests/start-state.spec.ts-snapshots/START-state-search-bar-focused-embedded-1-webkit-darwin.png +0 -0
  106. package/e2e-tests/start-state.spec.ts-snapshots/START-state-search-query-typed-1-Mobile-Chrome-darwin.png +0 -0
  107. package/e2e-tests/start-state.spec.ts-snapshots/START-state-search-query-typed-1-Mobile-Safari-darwin.png +0 -0
  108. package/e2e-tests/start-state.spec.ts-snapshots/START-state-search-query-typed-1-chromium-darwin.png +0 -0
  109. package/e2e-tests/start-state.spec.ts-snapshots/START-state-search-query-typed-1-firefox-darwin.png +0 -0
  110. package/e2e-tests/start-state.spec.ts-snapshots/START-state-search-query-typed-1-webkit-darwin.png +0 -0
  111. package/e2e-tests/start-state.spec.ts-snapshots/START-state-search-query-typed-embedded-1-Mobile-Chrome-darwin.png +0 -0
  112. package/e2e-tests/start-state.spec.ts-snapshots/START-state-search-query-typed-embedded-1-Mobile-Safari-darwin.png +0 -0
  113. package/e2e-tests/start-state.spec.ts-snapshots/START-state-search-query-typed-embedded-1-chromium-darwin.png +0 -0
  114. package/e2e-tests/start-state.spec.ts-snapshots/START-state-search-query-typed-embedded-1-firefox-darwin.png +0 -0
  115. package/e2e-tests/start-state.spec.ts-snapshots/START-state-search-query-typed-embedded-1-webkit-darwin.png +0 -0
  116. package/e2e-tests/test-utils.ts +53 -0
  117. package/package.json +4 -4
@@ -2,6 +2,7 @@ type TAsyncImageProps = {
2
2
  src?: string | string[];
3
3
  alt?: string;
4
4
  style?: React.CSSProperties;
5
+ role?: string;
5
6
  };
6
7
  declare const AsyncImage: React.FC<TAsyncImageProps>;
7
8
  export default AsyncImage;
@@ -0,0 +1,74 @@
1
+ import { expect } from '@playwright/test';
2
+ import { testDefaultAndEmbedded } from './test-utils';
3
+
4
+ testDefaultAndEmbedded(
5
+ 'DIRECTIONS state',
6
+ async ({ page }) => {
7
+ await expect(page).toHaveScreenshot();
8
+ },
9
+ {
10
+ params: {
11
+ location: 's_89fd600b7990d544',
12
+ },
13
+ state: '/directions',
14
+ },
15
+ );
16
+
17
+ testDefaultAndEmbedded(
18
+ 'DIRECTIONS state: level selector open',
19
+ async ({ page }) => {
20
+ await page.locator('#level-selector').first().click();
21
+ await expect(page).toHaveScreenshot();
22
+ },
23
+ {
24
+ params: {
25
+ location: 's_89fd600b7990d544',
26
+ },
27
+ state: '/directions',
28
+ },
29
+ );
30
+
31
+ testDefaultAndEmbedded(
32
+ 'DIRECTIONS state: from selection',
33
+ async ({ page }) => {
34
+ await page.waitForTimeout(500);
35
+ await expect(page).toHaveScreenshot();
36
+ },
37
+ {
38
+ params: {
39
+ location: 's_89fd600b7990d544',
40
+ departure: 's_353c086e223c6984',
41
+ },
42
+ state: '/directions',
43
+ },
44
+ );
45
+
46
+ testDefaultAndEmbedded(
47
+ 'DIRECTIONS state: from dropped pin',
48
+ async ({ page }) => {
49
+ await page.waitForTimeout(500);
50
+ await expect(page).toHaveScreenshot();
51
+ },
52
+ {
53
+ params: {
54
+ location: 's_89fd600b7990d544',
55
+ departure: '-29.22599807556308,-51.35458385297357,m_8d8b9669cc38f561',
56
+ },
57
+ state: '/directions',
58
+ },
59
+ );
60
+
61
+ testDefaultAndEmbedded(
62
+ 'DIRECTIONS state: from nearest entrance',
63
+ async ({ page }) => {
64
+ await page.waitForTimeout(500);
65
+ await expect(page).toHaveScreenshot();
66
+ },
67
+ {
68
+ params: {
69
+ location: 's_89fd600b7990d544',
70
+ departure: 'e_1dcf257acc86da27+e_563524d9b2a2e04f+e_a9ce9893f5fbe9c6',
71
+ },
72
+ state: '/directions',
73
+ },
74
+ );
@@ -0,0 +1,77 @@
1
+ import { defineConfig, devices } from '@playwright/test';
2
+ import dotenv from 'dotenv';
3
+ import path from 'path';
4
+ import url from 'url';
5
+
6
+ // Node.js modules don't have __dirname or __filename
7
+ const __filename = url.fileURLToPath(import.meta.url);
8
+ const __dirname = path.dirname(__filename);
9
+ dotenv.config({ path: path.resolve(__dirname, '../.env') });
10
+
11
+ const APP_PORT = process.env.PORT || 5173;
12
+
13
+ /**
14
+ * See https://playwright.dev/docs/test-configuration.
15
+ */
16
+ export default defineConfig({
17
+ testDir: '.',
18
+ /* Run tests in files in parallel */
19
+ fullyParallel: true,
20
+ /* Fail the build on CI if you accidentally left test.only in the source code. */
21
+ forbidOnly: !!process.env.CI,
22
+ /* Retry on CI only */
23
+ retries: process.env.CI ? 2 : 0,
24
+ /* Opt out of parallel tests on CI. */
25
+ workers: process.env.CI ? 1 : undefined,
26
+ outputDir: '../../../coverage/viewer-playwright',
27
+ /* Reporter to use. See https://playwright.dev/docs/test-reporters */
28
+ reporter: [['json', { outputFile: '../../coverage/viewer-playwright/report.json' }]],
29
+ /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
30
+ use: {
31
+ /* Base URL to use in actions like `await page.goto('/')`. */
32
+ // baseURL: 'http://127.0.0.1:3000',
33
+
34
+ /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
35
+ trace: 'on-first-retry',
36
+ },
37
+
38
+ /* Road labels are especially flaky, so we allow more pixels to be different */
39
+ expect: {
40
+ toHaveScreenshot: { maxDiffPixels: 1000 },
41
+ },
42
+
43
+ /* Configure projects for major browsers */
44
+ projects: [
45
+ {
46
+ name: 'chromium',
47
+ use: { ...devices['Desktop Chrome'] },
48
+ },
49
+
50
+ {
51
+ name: 'firefox',
52
+ use: { ...devices['Desktop Firefox'] },
53
+ },
54
+
55
+ {
56
+ name: 'webkit',
57
+ use: { ...devices['Desktop Safari'] },
58
+ },
59
+
60
+ /* Test against mobile viewports. */
61
+ {
62
+ name: 'Mobile Chrome',
63
+ use: { ...devices['Pixel 5'] },
64
+ },
65
+ {
66
+ name: 'Mobile Safari',
67
+ use: { ...devices['iPhone 12'] },
68
+ },
69
+ ],
70
+
71
+ /* Run your local dev server before starting the tests */
72
+ webServer: {
73
+ command: 'pnpm dev:playwright',
74
+ url: `http://localhost:${APP_PORT}`,
75
+ reuseExistingServer: !process.env.CI,
76
+ },
77
+ });
@@ -0,0 +1,42 @@
1
+ import { expect } from '@playwright/test';
2
+ import { testDefaultAndEmbedded } from './test-utils';
3
+
4
+ testDefaultAndEmbedded('START state', async ({ page }) => {
5
+ await expect(page).toHaveScreenshot();
6
+ });
7
+
8
+ testDefaultAndEmbedded(
9
+ 'START state: location selected',
10
+ async ({ page }) => {
11
+ await expect(page).toHaveScreenshot();
12
+ },
13
+ {
14
+ params: { location: 's_89fd600b7990d544' },
15
+ },
16
+ );
17
+
18
+ testDefaultAndEmbedded(
19
+ 'START state: location image fullscreen',
20
+ async ({ page }) => {
21
+ await page.locator('#image-carousel').getByRole('option').click();
22
+ await expect(page).toHaveScreenshot();
23
+ },
24
+ {
25
+ params: { location: 's_89fd600b7990d544' },
26
+ },
27
+ );
28
+
29
+ testDefaultAndEmbedded('START state: search bar focused', async ({ page }) => {
30
+ await page.locator('input[type="search"]').click();
31
+ await expect(page).toHaveScreenshot();
32
+ });
33
+
34
+ testDefaultAndEmbedded('START state: search query typed', async ({ page }) => {
35
+ await page.locator('input[type="search"]').fill('bedroom');
36
+ await expect(page).toHaveScreenshot();
37
+ });
38
+
39
+ testDefaultAndEmbedded('START state: level selector open', async ({ page }) => {
40
+ await page.locator('#level-selector').first().click();
41
+ await expect(page).toHaveScreenshot();
42
+ });
@@ -0,0 +1,53 @@
1
+ import { Page, test } from '@playwright/test';
2
+
3
+ type TWaitForPageLoadOptions = {
4
+ params?: Record<string, string>;
5
+ state?: string;
6
+ embedded?: boolean;
7
+ featureFlags?: Record<string, unknown>;
8
+ };
9
+
10
+ export const waitForPageLoad = async (page: Page, options: TWaitForPageLoadOptions = {}) => {
11
+ // Mock feature flags from posthog
12
+ await page.route('https://ph-api.mappedin.com/**/*', (route) => {
13
+ route.fulfill({
14
+ body: JSON.stringify({
15
+ featureFlags: options.featureFlags ?? {},
16
+ }),
17
+ headers: {
18
+ 'Content-Type': 'application/json',
19
+ },
20
+ });
21
+ });
22
+
23
+ const params = new URLSearchParams();
24
+ for (const [key, value] of Object.entries(options.params ?? {})) {
25
+ params.set(key, value.toString());
26
+ }
27
+ if (options.embedded) {
28
+ params.set('embedded', 'true');
29
+ }
30
+ const state = options.state ?? '/';
31
+ const url = 'http://localhost:5173/map/test-map' + state + '?' + params.toString();
32
+
33
+ await page.goto(url);
34
+ const spinner = page.locator('#app-loading-spinner');
35
+ await spinner.waitFor({ state: 'visible' });
36
+ await spinner.waitFor({ state: 'hidden' });
37
+ };
38
+
39
+ export const testDefaultAndEmbedded = (
40
+ title: string,
41
+ body: ({ page }: { page: Page }) => Promise<void>,
42
+ options: TWaitForPageLoadOptions = {},
43
+ ) => {
44
+ test(title, async ({ page }) => {
45
+ await waitForPageLoad(page, options);
46
+ await body({ page });
47
+ });
48
+
49
+ test(title + ' (embedded)', async ({ page }) => {
50
+ await waitForPageLoad(page, { ...options, embedded: true });
51
+ await body({ page });
52
+ });
53
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mappedin/viewer",
3
- "version": "0.32.1-6eb62a3.0",
3
+ "version": "0.32.1-e9092a6.0",
4
4
  "type": "module",
5
5
  "browser": "./dist/index.js",
6
6
  "license": "UNLICENSED",
@@ -64,12 +64,9 @@
64
64
  "react-transition-group": "^4.4.5",
65
65
  "react-window": "^1.8.10",
66
66
  "styled-components": "6.0.7",
67
- "tsx": "^4.7.1",
68
- "typescript": "^5.3.0",
69
67
  "vite": "^5.4.10",
70
68
  "vite-plugin-css-injected-by-js": "^3.4.0",
71
69
  "vite-plugin-mkcert": "^1.17.4",
72
- "vitest": "^1.4.0",
73
70
  "yargs": "^17.7.2",
74
71
  "zod": "^3.23.8"
75
72
  },
@@ -77,6 +74,7 @@
77
74
  "dev": "vite --host",
78
75
  "dev:yalc": "vite --host --force",
79
76
  "dev:test": "MOCK_DATA=true vite --host",
77
+ "dev:playwright": "PLAYWRIGHT=true vite --host",
80
78
  "build": "vite build && tsc --project tsconfig.build.json",
81
79
  "build:watch": "vite build --watch",
82
80
  "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
@@ -87,6 +85,8 @@
87
85
  "test:watch": "cross-env NODE_ENV=test vitest --typecheck",
88
86
  "test:cover": "cross-env NODE_ENV=test vitest run --coverage --typecheck",
89
87
  "test:update": "cross-env NODE_ENV=test vitest run -u --typecheck",
88
+ "test:playwright": "pnpm exec playwright test --config ./e2e-tests/playwright.config.ts",
89
+ "test:playwright:ui": "pnpm test:playwright --ui --output=../../coverage/viewer-playwright --reporter=null",
90
90
  "save-fixture": "tsx ./scripts/update-fixture.ts"
91
91
  }
92
92
  }