@times-components/ts-components 1.146.2-0f9388fe36c532b90db3f35d17847fc17a611f1e.44 → 1.146.2-784617dc4a33959b8795da1d7f425c9929322fae.24

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 (138) hide show
  1. package/dist/components/travel-mini-cta/__tests__/index.test.js +262 -0
  2. package/dist/components/travel-mini-cta/index.d.ts +10 -0
  3. package/dist/components/travel-mini-cta/index.js +93 -0
  4. package/dist/components/travel-mini-cta/styles.d.ts +42 -0
  5. package/dist/components/travel-mini-cta/styles.js +268 -0
  6. package/dist/components/travel-mini-cta/travel-mini-cta.stories.js +8 -0
  7. package/dist/components/travel-mini-cta/types.d.ts +10 -0
  8. package/dist/components/{trip-cards → travel-mini-cta}/types.js +1 -1
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.js +2 -2
  11. package/dist/utils/applyDarkMode.d.ts +1 -0
  12. package/dist/utils/applyDarkMode.js +12 -0
  13. package/dist/utils/getMediaQuery.d.ts +11 -0
  14. package/dist/utils/getMediaQuery.js +19 -0
  15. package/dist/utils/index.d.ts +2 -0
  16. package/dist/utils/index.js +3 -0
  17. package/package.json +3 -3
  18. package/rnw.js +1 -1
  19. package/src/components/travel-mini-cta/__tests__/__snapshots__/index.test.tsx.snap +211 -0
  20. package/src/components/travel-mini-cta/__tests__/index.test.tsx +330 -0
  21. package/src/components/travel-mini-cta/index.tsx +190 -0
  22. package/src/components/travel-mini-cta/styles.ts +331 -0
  23. package/src/components/travel-mini-cta/travel-mini-cta.stories.tsx +23 -0
  24. package/src/components/travel-mini-cta/types.ts +10 -0
  25. package/src/index.ts +1 -2
  26. package/src/utils/applyDarkMode.ts +12 -0
  27. package/src/utils/getMediaQuery.ts +25 -0
  28. package/src/utils/index.ts +2 -0
  29. package/dist/components/carousel-component/CarouselComponent.stories.js +0 -146
  30. package/dist/components/carousel-component/CarouselItem.d.ts +0 -3
  31. package/dist/components/carousel-component/CarouselItem.js +0 -12
  32. package/dist/components/carousel-component/DefaultNavigationArrow.d.ts +0 -8
  33. package/dist/components/carousel-component/DefaultNavigationArrow.js +0 -6
  34. package/dist/components/carousel-component/DefaultPageDot.d.ts +0 -8
  35. package/dist/components/carousel-component/DefaultPageDot.js +0 -4
  36. package/dist/components/carousel-component/__tests__/CarouselComponent.test.d.ts +0 -1
  37. package/dist/components/carousel-component/__tests__/CarouselComponent.test.js +0 -163
  38. package/dist/components/carousel-component/__tests__/CarouselItem.test.d.ts +0 -1
  39. package/dist/components/carousel-component/__tests__/CarouselItem.test.js +0 -80
  40. package/dist/components/carousel-component/__tests__/DefaultNavigationArrow.test.d.ts +0 -1
  41. package/dist/components/carousel-component/__tests__/DefaultNavigationArrow.test.js +0 -62
  42. package/dist/components/carousel-component/__tests__/DefaultPageDot.test.d.ts +0 -1
  43. package/dist/components/carousel-component/__tests__/DefaultPageDot.test.js +0 -68
  44. package/dist/components/carousel-component/hooks/__tests__/useCarousel.test.d.ts +0 -1
  45. package/dist/components/carousel-component/hooks/__tests__/useCarousel.test.js +0 -459
  46. package/dist/components/carousel-component/hooks/useCarousel.d.ts +0 -2
  47. package/dist/components/carousel-component/hooks/useCarousel.js +0 -167
  48. package/dist/components/carousel-component/index.d.ts +0 -4
  49. package/dist/components/carousel-component/index.js +0 -20
  50. package/dist/components/carousel-component/styles.d.ts +0 -28
  51. package/dist/components/carousel-component/styles.js +0 -172
  52. package/dist/components/carousel-component/types.d.ts +0 -53
  53. package/dist/components/carousel-component/types.js +0 -2
  54. package/dist/components/trip-cards/SkeletonCard.d.ts +0 -7
  55. package/dist/components/trip-cards/SkeletonCard.js +0 -22
  56. package/dist/components/trip-cards/TripCard.d.ts +0 -3
  57. package/dist/components/trip-cards/TripCard.js +0 -49
  58. package/dist/components/trip-cards/TripCards.stories.d.ts +0 -1
  59. package/dist/components/trip-cards/TripCards.stories.js +0 -159
  60. package/dist/components/trip-cards/TripCardsLayout.d.ts +0 -3
  61. package/dist/components/trip-cards/TripCardsLayout.js +0 -56
  62. package/dist/components/trip-cards/__tests__/SkeletonCard.test.d.ts +0 -1
  63. package/dist/components/trip-cards/__tests__/SkeletonCard.test.js +0 -139
  64. package/dist/components/trip-cards/__tests__/TripCard.test.d.ts +0 -1
  65. package/dist/components/trip-cards/__tests__/TripCard.test.js +0 -95
  66. package/dist/components/trip-cards/__tests__/TripCardsLayout.test.d.ts +0 -1
  67. package/dist/components/trip-cards/__tests__/TripCardsLayout.test.js +0 -314
  68. package/dist/components/trip-cards/__tests__/assets.test.d.ts +0 -1
  69. package/dist/components/trip-cards/__tests__/assets.test.js +0 -165
  70. package/dist/components/trip-cards/__tests__/helpers.test.d.ts +0 -1
  71. package/dist/components/trip-cards/__tests__/helpers.test.js +0 -220
  72. package/dist/components/trip-cards/__tests__/index.test.js +0 -478
  73. package/dist/components/trip-cards/__tests__/mockData.test.d.ts +0 -1
  74. package/dist/components/trip-cards/__tests__/mockData.test.js +0 -57
  75. package/dist/components/trip-cards/__tests__/skeletonStyles.test.d.ts +0 -1
  76. package/dist/components/trip-cards/__tests__/skeletonStyles.test.js +0 -194
  77. package/dist/components/trip-cards/assets/BoatIcon.d.ts +0 -1
  78. package/dist/components/trip-cards/assets/BoatIcon.js +0 -4
  79. package/dist/components/trip-cards/assets/CalendarIcon.d.ts +0 -1
  80. package/dist/components/trip-cards/assets/CalendarIcon.js +0 -4
  81. package/dist/components/trip-cards/assets/ChevronRightIcon.d.ts +0 -1
  82. package/dist/components/trip-cards/assets/ChevronRightIcon.js +0 -4
  83. package/dist/components/trip-cards/assets/LocationIcon.d.ts +0 -1
  84. package/dist/components/trip-cards/assets/LocationIcon.js +0 -4
  85. package/dist/components/trip-cards/assets/MoonIcon.d.ts +0 -1
  86. package/dist/components/trip-cards/assets/MoonIcon.js +0 -4
  87. package/dist/components/trip-cards/assets/index.d.ts +0 -6
  88. package/dist/components/trip-cards/assets/index.js +0 -7
  89. package/dist/components/trip-cards/helpers.d.ts +0 -11
  90. package/dist/components/trip-cards/helpers.js +0 -138
  91. package/dist/components/trip-cards/index.d.ts +0 -4
  92. package/dist/components/trip-cards/index.js +0 -68
  93. package/dist/components/trip-cards/mockData.d.ts +0 -3
  94. package/dist/components/trip-cards/mockData.js +0 -317
  95. package/dist/components/trip-cards/skeletonStyles.d.ts +0 -9
  96. package/dist/components/trip-cards/skeletonStyles.js +0 -37
  97. package/dist/components/trip-cards/styles.d.ts +0 -43
  98. package/dist/components/trip-cards/styles.js +0 -404
  99. package/dist/components/trip-cards/types.d.ts +0 -119
  100. package/src/components/carousel-component/CarouselComponent.stories.tsx +0 -220
  101. package/src/components/carousel-component/CarouselItem.tsx +0 -26
  102. package/src/components/carousel-component/DefaultNavigationArrow.tsx +0 -37
  103. package/src/components/carousel-component/DefaultPageDot.tsx +0 -20
  104. package/src/components/carousel-component/__tests__/CarouselComponent.test.tsx +0 -259
  105. package/src/components/carousel-component/__tests__/CarouselItem.test.tsx +0 -140
  106. package/src/components/carousel-component/__tests__/DefaultNavigationArrow.test.tsx +0 -153
  107. package/src/components/carousel-component/__tests__/DefaultPageDot.test.tsx +0 -105
  108. package/src/components/carousel-component/hooks/__tests__/useCarousel.test.ts +0 -625
  109. package/src/components/carousel-component/hooks/useCarousel.ts +0 -229
  110. package/src/components/carousel-component/index.tsx +0 -92
  111. package/src/components/carousel-component/styles.ts +0 -188
  112. package/src/components/carousel-component/types.ts +0 -62
  113. package/src/components/trip-cards/SkeletonCard.tsx +0 -64
  114. package/src/components/trip-cards/TripCard.tsx +0 -140
  115. package/src/components/trip-cards/TripCards.stories.tsx +0 -224
  116. package/src/components/trip-cards/TripCardsLayout.tsx +0 -145
  117. package/src/components/trip-cards/__tests__/SkeletonCard.test.tsx +0 -169
  118. package/src/components/trip-cards/__tests__/TripCard.test.tsx +0 -120
  119. package/src/components/trip-cards/__tests__/TripCardsLayout.test.tsx +0 -583
  120. package/src/components/trip-cards/__tests__/assets.test.tsx +0 -206
  121. package/src/components/trip-cards/__tests__/helpers.test.ts +0 -272
  122. package/src/components/trip-cards/__tests__/index.test.tsx +0 -550
  123. package/src/components/trip-cards/__tests__/mockData.test.ts +0 -67
  124. package/src/components/trip-cards/__tests__/skeletonStyles.test.tsx +0 -256
  125. package/src/components/trip-cards/assets/BoatIcon.tsx +0 -17
  126. package/src/components/trip-cards/assets/CalendarIcon.tsx +0 -17
  127. package/src/components/trip-cards/assets/ChevronRightIcon.tsx +0 -20
  128. package/src/components/trip-cards/assets/LocationIcon.tsx +0 -17
  129. package/src/components/trip-cards/assets/MoonIcon.tsx +0 -17
  130. package/src/components/trip-cards/assets/index.ts +0 -7
  131. package/src/components/trip-cards/helpers.ts +0 -176
  132. package/src/components/trip-cards/index.tsx +0 -119
  133. package/src/components/trip-cards/mockData.ts +0 -345
  134. package/src/components/trip-cards/skeletonStyles.ts +0 -46
  135. package/src/components/trip-cards/styles.ts +0 -450
  136. package/src/components/trip-cards/types.ts +0 -128
  137. /package/dist/components/{trip-cards → travel-mini-cta}/__tests__/index.test.d.ts +0 -0
  138. /package/dist/components/{carousel-component/CarouselComponent.stories.d.ts → travel-mini-cta/travel-mini-cta.stories.d.ts} +0 -0
@@ -1,478 +0,0 @@
1
- import React from 'react';
2
- import { render, screen, waitFor } from '@testing-library/react';
3
- import '@testing-library/jest-dom';
4
- import { TripCards } from '../index';
5
- import * as mockDataModule from '../mockData';
6
- global.fetch = jest.fn();
7
- // Mock ResizeObserver
8
- global.ResizeObserver = class ResizeObserver {
9
- observe() {
10
- // Mock implementation
11
- }
12
- unobserve() {
13
- // Mock implementation
14
- }
15
- disconnect() {
16
- // Mock implementation
17
- }
18
- };
19
- describe('TripCards', () => {
20
- const mockCards = [
21
- {
22
- cruise_id: '1',
23
- image: 'image1.jpg',
24
- headline: 'Mock Cruise 1',
25
- date: 'Jan 2024',
26
- duration: '7 nights',
27
- route: 'Route 1',
28
- ship: 'Ship 1',
29
- price: '£1000',
30
- original_price: undefined,
31
- logo: 'logo1.png',
32
- logo_url: 'https://example.com',
33
- cta_url: 'link1',
34
- cta_text: 'View'
35
- },
36
- {
37
- cruise_id: '2',
38
- image: 'image2.jpg',
39
- headline: 'Mock Cruise 2',
40
- date: 'Feb 2024',
41
- duration: '14 nights',
42
- route: 'Route 2',
43
- ship: 'Ship 2',
44
- price: '£2000',
45
- original_price: undefined,
46
- logo: 'logo2.png',
47
- logo_url: 'https://example.com',
48
- cta_url: 'link2',
49
- cta_text: 'View'
50
- },
51
- {
52
- cruise_id: '3',
53
- image: 'image3.jpg',
54
- headline: 'Mock Cruise 3',
55
- date: 'Mar 2024',
56
- duration: '10 nights',
57
- route: 'Route 3',
58
- ship: 'Ship 3',
59
- price: '£1500',
60
- original_price: undefined,
61
- logo: 'logo3.png',
62
- logo_url: 'https://example.com',
63
- cta_url: 'link3',
64
- cta_text: 'View'
65
- }
66
- ];
67
- const mockElement = {
68
- title: 'Test Cruises',
69
- description: 'Test Description',
70
- tripcards: btoa(JSON.stringify([1, 2, 3])),
71
- titleurl: 'https://example.com'
72
- };
73
- beforeEach(() => {
74
- jest.clearAllMocks();
75
- // Mock matchMedia for each test
76
- Object.defineProperty(window, 'matchMedia', {
77
- writable: true,
78
- configurable: true,
79
- value: jest.fn().mockImplementation(query => ({
80
- matches: false,
81
- media: query,
82
- onchange: null,
83
- addListener: jest.fn(),
84
- removeListener: jest.fn(),
85
- addEventListener: jest.fn(),
86
- removeEventListener: jest.fn(),
87
- dispatchEvent: jest.fn()
88
- }))
89
- });
90
- jest
91
- .spyOn(mockDataModule, 'getMockTripCards')
92
- .mockImplementation((count) => {
93
- return count ? mockCards.slice(0, count) : mockCards;
94
- });
95
- Object.defineProperty(window, 'innerWidth', {
96
- writable: true,
97
- configurable: true,
98
- value: 1024
99
- });
100
- });
101
- describe('Mock Data Mode', () => {
102
- it('renders cards when useMockData is true', async () => {
103
- render(React.createElement(TripCards, { element: mockElement, useMockData: true }));
104
- await waitFor(() => {
105
- expect(screen.getByText('Mock Cruise 1')).toBeInTheDocument();
106
- expect(screen.getByText('Mock Cruise 2')).toBeInTheDocument();
107
- });
108
- });
109
- it('renders title and description', async () => {
110
- render(React.createElement(TripCards, { element: mockElement, useMockData: true }));
111
- await waitFor(() => {
112
- expect(screen.getByText('Test Cruises')).toBeInTheDocument();
113
- expect(screen.getByText('Test Description')).toBeInTheDocument();
114
- });
115
- });
116
- it('respects the number of IDs', async () => {
117
- render(React.createElement(TripCards, { element: mockElement, useMockData: true }));
118
- await waitFor(() => {
119
- expect(mockDataModule.getMockTripCards).toHaveBeenCalledWith(3);
120
- });
121
- });
122
- });
123
- describe('Error Handling', () => {
124
- it('returns null when no IDs are provided', async () => {
125
- const emptyElement = {
126
- title: 'Test',
127
- description: 'Test',
128
- tripcards: '',
129
- titleurl: undefined
130
- };
131
- const { container } = render(React.createElement(TripCards, { element: emptyElement }));
132
- await waitFor(() => {
133
- expect(container.firstChild).toBeNull();
134
- });
135
- });
136
- it('returns null when fetch fails', async () => {
137
- global.fetch.mockRejectedValue(new Error('Network error'));
138
- const { container } = render(React.createElement(TripCards, { element: mockElement }));
139
- await waitFor(() => {
140
- expect(container.firstChild).toBeNull();
141
- });
142
- });
143
- it('returns null when response is not ok', async () => {
144
- global.fetch.mockResolvedValue({
145
- ok: false,
146
- status: 404
147
- });
148
- const { container } = render(React.createElement(TripCards, { element: mockElement }));
149
- await waitFor(() => {
150
- expect(container.firstChild).toBeNull();
151
- });
152
- });
153
- it('returns null when API response format is invalid', async () => {
154
- global.fetch.mockResolvedValue({
155
- ok: true,
156
- json: async () => ({ invalid: 'data' })
157
- });
158
- const { container } = render(React.createElement(TripCards, { element: mockElement }));
159
- await waitFor(() => {
160
- expect(container.firstChild).toBeNull();
161
- });
162
- });
163
- });
164
- describe('API Data Fetching', () => {
165
- it('fetches and displays cruise data from API', async () => {
166
- const mockApiResponse = {
167
- results: [
168
- {
169
- post_id: 1,
170
- cruise_id: 1,
171
- cruise_title: 'API Cruise 1',
172
- cruise_line: {
173
- name: 'API Line',
174
- link: 'http://line.com',
175
- logo: 'logo.png'
176
- },
177
- ship: {
178
- name: 'API Ship',
179
- link: 'http://ship.com',
180
- image: 'api-image1.jpg'
181
- },
182
- departs: '2026-03-01',
183
- ends: '2026-03-11',
184
- date_label: 'March 2024',
185
- destination: ['Port 1', 'Port 3'],
186
- duration: 10,
187
- itinerary: ['Port 1', 'Port 2', 'Port 3'],
188
- prices: {
189
- cheapest_price: 1500,
190
- inside: 1500,
191
- outside: 1800,
192
- balcony: 2000,
193
- suite: 2500
194
- },
195
- was_prices: {
196
- inside: 2000,
197
- outside: 2200,
198
- balcony: 2500,
199
- suite: 3000
200
- },
201
- link: 'api-link',
202
- campaigns: ['Special'],
203
- extras: {
204
- date: 'March 2024',
205
- duration: '10 nights',
206
- destination: 'Mediterranean',
207
- info: 'Additional info'
208
- }
209
- },
210
- {
211
- post_id: 2,
212
- cruise_id: 2,
213
- cruise_title: 'API Cruise 2',
214
- cruise_line: {
215
- name: 'API Line',
216
- link: 'http://line.com',
217
- logo: 'logo.png'
218
- },
219
- ship: {
220
- name: 'API Ship 2',
221
- link: 'http://ship.com',
222
- image: 'api-image2.jpg'
223
- },
224
- departs: '2026-04-01',
225
- ends: '2026-04-11',
226
- date_label: 'April 2024',
227
- destination: ['Port 2', 'Port 4'],
228
- duration: 10,
229
- itinerary: ['Port 2', 'Port 3', 'Port 4'],
230
- prices: {
231
- cheapest_price: 1600,
232
- inside: 1600,
233
- outside: 1900,
234
- balcony: 2100,
235
- suite: 2600
236
- },
237
- was_prices: {
238
- inside: 0,
239
- outside: 0,
240
- balcony: 0,
241
- suite: 0
242
- },
243
- link: 'api-link2',
244
- campaigns: [],
245
- extras: {
246
- date: 'April 2024',
247
- duration: '10 nights',
248
- destination: 'Caribbean',
249
- info: 'Additional info'
250
- }
251
- },
252
- {
253
- post_id: 3,
254
- cruise_id: 3,
255
- cruise_title: 'API Cruise 3',
256
- cruise_line: {
257
- name: 'API Line',
258
- link: 'http://line.com',
259
- logo: 'logo.png'
260
- },
261
- ship: {
262
- name: 'API Ship 3',
263
- link: 'http://ship.com',
264
- image: 'api-image3.jpg'
265
- },
266
- departs: '2026-05-01',
267
- ends: '2026-05-11',
268
- date_label: 'May 2024',
269
- destination: ['Port 3', 'Port 5'],
270
- duration: 10,
271
- itinerary: ['Port 3', 'Port 4', 'Port 5'],
272
- prices: {
273
- cheapest_price: 1700,
274
- inside: 1700,
275
- outside: 2000,
276
- balcony: 2200,
277
- suite: 2700
278
- },
279
- was_prices: {
280
- inside: 2100,
281
- outside: 2400,
282
- balcony: 2600,
283
- suite: 3100
284
- },
285
- link: 'api-link3',
286
- campaigns: [],
287
- extras: {
288
- date: 'May 2024',
289
- duration: '10 nights',
290
- destination: 'Alaska',
291
- info: 'Additional info'
292
- }
293
- }
294
- ]
295
- };
296
- global.fetch.mockResolvedValue({
297
- ok: true,
298
- json: async () => mockApiResponse
299
- });
300
- render(React.createElement(TripCards, { element: mockElement }));
301
- await waitFor(() => {
302
- expect(screen.getByText('API Cruise 1')).toBeInTheDocument();
303
- });
304
- });
305
- it('sends correct request to API', async () => {
306
- const mockApiResponse = {
307
- results: mockCards.map((card, index) => ({
308
- post_id: index + 1,
309
- cruise_id: parseInt(card.cruise_id, 10),
310
- cruise_title: card.headline,
311
- cruise_line: {
312
- name: 'Test Line',
313
- link: card.logo_url,
314
- logo: card.logo
315
- },
316
- ship: {
317
- name: card.ship,
318
- link: 'http://ship.com',
319
- image: card.image
320
- },
321
- departs: '2026-01-01',
322
- ends: '2026-01-11',
323
- date_label: card.date,
324
- destination: ['Test Port'],
325
- duration: 10,
326
- itinerary: ['Port 1', 'Port 2', 'Port 3'],
327
- prices: {
328
- cheapest_price: 1500,
329
- inside: 1500,
330
- outside: 1800,
331
- balcony: 2000,
332
- suite: 2500
333
- },
334
- was_prices: {
335
- inside: 0,
336
- outside: 0,
337
- balcony: 0,
338
- suite: 0
339
- },
340
- link: card.cta_url,
341
- campaigns: [],
342
- extras: {
343
- date: card.date,
344
- duration: card.duration,
345
- destination: 'Test',
346
- info: 'Info'
347
- }
348
- }))
349
- };
350
- global.fetch.mockResolvedValue({
351
- ok: true,
352
- json: async () => mockApiResponse
353
- });
354
- render(React.createElement(TripCards, { element: mockElement }));
355
- await waitFor(() => {
356
- expect(global.fetch).toHaveBeenCalledWith('https://www.staging-thetimes.com/holidays/wp-admin/admin-ajax.php', expect.objectContaining({
357
- method: 'POST',
358
- body: expect.any(FormData)
359
- }));
360
- });
361
- });
362
- });
363
- describe('Layout', () => {
364
- it('uses static grid for exactly 2 cards', async () => {
365
- const twoCardElement = {
366
- ...mockElement,
367
- tripcards: btoa(JSON.stringify([1, 2]))
368
- };
369
- render(React.createElement(TripCards, { element: twoCardElement, useMockData: true }));
370
- await waitFor(() => {
371
- expect(screen.getByText('Mock Cruise 1')).toBeInTheDocument();
372
- });
373
- expect(screen.queryByLabelText('Previous items')).not.toBeInTheDocument();
374
- });
375
- it('uses carousel for more than 2 cards', async () => {
376
- const threeCards = [
377
- ...mockCards,
378
- {
379
- cruise_id: '3',
380
- image: 'image3.jpg',
381
- headline: 'Mock Cruise 3',
382
- date: 'Mar 2024',
383
- duration: '21 nights',
384
- route: 'Route 3',
385
- ship: 'Ship 3',
386
- price: '£3000',
387
- original_price: undefined,
388
- logo: 'logo3.png',
389
- logo_url: 'https://example.com',
390
- cta_url: 'link3',
391
- cta_text: 'View'
392
- }
393
- ];
394
- jest
395
- .spyOn(mockDataModule, 'getMockTripCards')
396
- .mockReturnValue(threeCards);
397
- render(React.createElement(TripCards, { element: mockElement, useMockData: true }));
398
- await waitFor(() => {
399
- expect(screen.getByText('Mock Cruise 1')).toBeInTheDocument();
400
- expect(screen.getByLabelText('Previous items')).toBeInTheDocument();
401
- expect(screen.getByLabelText('Next items')).toBeInTheDocument();
402
- });
403
- });
404
- });
405
- describe('Responsive Behavior', () => {
406
- it('uses matchMedia for responsive breakpoint detection', () => {
407
- const mockMediaQuery = {
408
- matches: false,
409
- media: '(max-width: 767px)',
410
- onchange: null,
411
- addListener: jest.fn(),
412
- removeListener: jest.fn(),
413
- addEventListener: jest.fn(),
414
- removeEventListener: jest.fn(),
415
- dispatchEvent: jest.fn()
416
- };
417
- const matchMediaSpy = jest
418
- .spyOn(window, 'matchMedia')
419
- .mockReturnValue(mockMediaQuery);
420
- const { unmount } = render(React.createElement(TripCards, { element: mockElement, useMockData: true }));
421
- // Verify matchMedia was called with the correct query
422
- expect(matchMediaSpy).toHaveBeenCalledWith('(max-width: 767px)');
423
- // Verify addEventListener was called on the media query
424
- expect(mockMediaQuery.addEventListener).toHaveBeenCalledWith('change', expect.any(Function));
425
- unmount();
426
- // Verify removeEventListener was called on cleanup
427
- expect(mockMediaQuery.removeEventListener).toHaveBeenCalledWith('change', expect.any(Function));
428
- matchMediaSpy.mockRestore();
429
- });
430
- });
431
- describe('Props', () => {
432
- it('renders empty title when not provided', async () => {
433
- const elementWithoutTitle = {
434
- ...mockElement,
435
- title: undefined
436
- };
437
- render(React.createElement(TripCards, { element: elementWithoutTitle, useMockData: true }));
438
- await waitFor(() => {
439
- const titleElement = screen.getByTestId('trip-cards-title');
440
- expect(titleElement).toBeInTheDocument();
441
- expect(titleElement).toBeEmptyDOMElement();
442
- });
443
- });
444
- it('renders empty description when not provided', async () => {
445
- const elementWithoutDesc = {
446
- ...mockElement,
447
- description: undefined
448
- };
449
- render(React.createElement(TripCards, { element: elementWithoutDesc, useMockData: true }));
450
- await waitFor(() => {
451
- const descElement = screen.getByTestId('trip-cards-subtitle');
452
- expect(descElement).toBeInTheDocument();
453
- expect(descElement).toBeEmptyDOMElement();
454
- });
455
- });
456
- it('renders title link when provided', async () => {
457
- render(React.createElement(TripCards, { element: mockElement, useMockData: true }));
458
- await waitFor(() => {
459
- const link = screen.getByTestId('title-link');
460
- expect(link).toHaveAttribute('href', 'https://example.com');
461
- expect(link).toHaveAttribute('target', '_blank');
462
- });
463
- });
464
- it('does not render title link when not provided', async () => {
465
- const elementWithoutLink = {
466
- ...mockElement,
467
- titleurl: undefined
468
- };
469
- render(React.createElement(TripCards, { element: elementWithoutLink, useMockData: true }));
470
- await waitFor(() => {
471
- expect(screen.getByText('Mock Cruise 1')).toBeInTheDocument();
472
- });
473
- const links = screen.getAllByRole('link');
474
- expect(links.length).toBeGreaterThan(0);
475
- });
476
- });
477
- });
478
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3RyaXAtY2FyZHMvX190ZXN0c19fL2luZGV4LnRlc3QudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFckMsT0FBTyxLQUFLLGNBQWMsTUFBTSxhQUFhLENBQUM7QUFFOUMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7QUFFekIsc0JBQXNCO0FBQ3RCLE1BQU0sQ0FBQyxjQUFjLEdBQUcsTUFBTSxjQUFjO0lBQ25DLE9BQU87UUFDWixzQkFBc0I7SUFDeEIsQ0FBQztJQUNNLFNBQVM7UUFDZCxzQkFBc0I7SUFDeEIsQ0FBQztJQUNNLFVBQVU7UUFDZixzQkFBc0I7SUFDeEIsQ0FBQztDQUNGLENBQUM7QUFFRixRQUFRLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRTtJQUN6QixNQUFNLFNBQVMsR0FBRztRQUNoQjtZQUNFLFNBQVMsRUFBRSxHQUFHO1lBQ2QsS0FBSyxFQUFFLFlBQVk7WUFDbkIsUUFBUSxFQUFFLGVBQWU7WUFDekIsSUFBSSxFQUFFLFVBQVU7WUFDaEIsUUFBUSxFQUFFLFVBQVU7WUFDcEIsS0FBSyxFQUFFLFNBQVM7WUFDaEIsSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsT0FBTztZQUNkLGNBQWMsRUFBRSxTQUFTO1lBQ3pCLElBQUksRUFBRSxXQUFXO1lBQ2pCLFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsT0FBTyxFQUFFLE9BQU87WUFDaEIsUUFBUSxFQUFFLE1BQU07U0FDakI7UUFDRDtZ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
@@ -1,57 +0,0 @@
1
- import { getMockTripCards, mockApiResults } from '../mockData';
2
- describe('mockData', () => {
3
- describe('mockApiResults', () => {
4
- it('contains 6 cruise results', () => {
5
- expect(mockApiResults).toHaveLength(6);
6
- });
7
- it('each result has required fields', () => {
8
- mockApiResults.forEach(result => {
9
- expect(result).toHaveProperty('cruise_id');
10
- expect(result).toHaveProperty('cruise_title');
11
- expect(result).toHaveProperty('cruise_line');
12
- expect(result).toHaveProperty('ship');
13
- expect(result).toHaveProperty('prices');
14
- expect(result).toHaveProperty('was_prices');
15
- expect(result).toHaveProperty('extras');
16
- });
17
- });
18
- it('extras object contains required fields', () => {
19
- mockApiResults.forEach(result => {
20
- expect(result.extras).toHaveProperty('date');
21
- expect(result.extras).toHaveProperty('duration');
22
- expect(result.extras).toHaveProperty('destination');
23
- expect(result.extras).toHaveProperty('info');
24
- });
25
- });
26
- });
27
- describe('getMockTripCards', () => {
28
- it('returns all transformed cards when no count specified', () => {
29
- const cards = getMockTripCards();
30
- expect(cards).toHaveLength(6);
31
- });
32
- it('returns specified number of cards', () => {
33
- const cards = getMockTripCards(3);
34
- expect(cards).toHaveLength(3);
35
- });
36
- it('returns transformed TripCardApiData objects', () => {
37
- const cards = getMockTripCards(1);
38
- expect(cards[0]).toHaveProperty('cruise_id');
39
- expect(cards[0]).toHaveProperty('image');
40
- expect(cards[0]).toHaveProperty('headline');
41
- expect(cards[0]).toHaveProperty('date');
42
- expect(cards[0]).toHaveProperty('duration');
43
- expect(cards[0]).toHaveProperty('route');
44
- expect(cards[0]).toHaveProperty('ship');
45
- expect(cards[0]).toHaveProperty('price');
46
- expect(cards[0]).toHaveProperty('logo');
47
- expect(cards[0]).toHaveProperty('logo_url');
48
- expect(cards[0]).toHaveProperty('cta_url');
49
- expect(cards[0]).toHaveProperty('cta_text');
50
- });
51
- it('cruise_id is converted to string', () => {
52
- const cards = getMockTripCards(1);
53
- expect(typeof cards[0].cruise_id).toBe('string');
54
- });
55
- });
56
- });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja0RhdGEudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3RyaXAtY2FyZHMvX190ZXN0c19fL21vY2tEYXRhLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUvRCxRQUFRLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRTtJQUN4QixRQUFRLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO1FBQzlCLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSxHQUFHLEVBQUU7WUFDbkMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxpQ0FBaUMsRUFBRSxHQUFHLEVBQUU7WUFDekMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDOUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDM0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDOUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDN0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDdEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDNUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQztRQUNM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
@@ -1 +0,0 @@
1
- import '@testing-library/jest-dom';