@bytebrand/fe-ui-core 4.3.0 → 4.4.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 (125) hide show
  1. package/__tests__/components/UserDasboardPage/sections/CheckoutSection/CheckoutSection.test.tsx +613 -0
  2. package/__tests__/components/UserDasboardPage/sections/FavoriteSection/FavoriteSection.test.tsx +335 -0
  3. package/__tests__/utils/CommonUtils/getOfferSliders.test.ts +4 -2
  4. package/common.ts +6 -2
  5. package/package.json +19 -28
  6. package/source/components/AccordionWidget/AccordionWidget.tsx +1 -3
  7. package/source/components/Breadcrumbs/Breadcrumbs.tsx +3 -3
  8. package/source/components/Checkout/CheckoutStepper/CheckoutStepper.styl +2 -190
  9. package/source/components/Checkout/CheckoutStepper/CheckoutStepper.tsx +15 -16
  10. package/source/components/Checkout/OrderOverviewItem/OrderOverviewItem.styl +2 -2
  11. package/source/components/Checkout/OrderOverviewItem/OrderOverviewItem.tsx +3 -3
  12. package/source/components/FormattedNumber/FormattedNumber.tsx +2 -3
  13. package/source/components/InfoBlocks/FirstInfoBlock/FirstInfoBlockItem/FirstInfoBlockItem.styl +4 -6
  14. package/source/components/OfferDetailedSection/partials/PanelConfig.tsx +0 -3
  15. package/source/components/OfferPanel/MuiOfferPeriod/{MuiOfferPeriod.theme.js → MuiOfferPeriod.theme.tsx} +8 -13
  16. package/source/components/OfferPanel/MuiOfferPeriod/MuiOfferPeriod.tsx +28 -4
  17. package/source/components/OfferPanel/OfferCheckboxGroup/CheckboxContainer.tsx +6 -12
  18. package/source/components/OfferPanel/OfferCheckboxGroup/OfferCheckboxGroup.tsx +1 -1
  19. package/source/components/OfferPanel/OfferPanel.tsx +1 -1
  20. package/source/components/OfferPanel/OfferPeriod/OfferPeriod.tsx +0 -4
  21. package/source/components/OfferPanel/RangeGroup/RangeGroup.tsx +6 -4
  22. package/source/components/PriceRatingDetailed/PriceRatingDetailed.tsx +6 -2
  23. package/source/components/SearchFilters/filters/AlternativeID.tsx +42 -53
  24. package/source/components/SearchFilters/filters/DriveType.tsx +1 -1
  25. package/source/components/SearchFilters/filters/EmissionSticker.tsx +1 -1
  26. package/source/components/SearchFilters/filters/FirstRegistration.tsx +0 -1
  27. package/source/components/SearchFilters/filters/InteriorColor.tsx +1 -1
  28. package/source/components/SearchFilters/filters/InteriorMaterial.tsx +2 -1
  29. package/source/components/SearchFilters/filters/Mileage.tsx +1 -1
  30. package/source/components/SearchFilters/filters/Power.tsx +36 -17
  31. package/source/components/SearchFilters/filters/StateOptions.tsx +0 -1
  32. package/source/components/SearchFilters/filters/Transmission.tsx +1 -1
  33. package/source/components/SearchPage/SearchChips/SearchChips.tsx +1 -1
  34. package/source/components/SearchPageMobile/FiltersDetailed/BodyType.tsx +3 -3
  35. package/source/components/SearchPageMobile/FiltersDetailed/Consumption.tsx +2 -2
  36. package/source/components/SearchPageMobile/FiltersDetailed/Doors.tsx +1 -1
  37. package/source/components/SearchPageMobile/FiltersDetailed/MakeModel.tsx +1 -1
  38. package/source/components/SearchWidget/ColorWidget/BodyColorWidget.tsx +3 -3
  39. package/source/components/SearchWidget/EnvironmentWidget/EnvironmentWidget.tsx +3 -3
  40. package/source/components/SearchWidget/HighlightsWidget/HighlightsWidget.tsx +2 -2
  41. package/source/components/SearchWidget/StateWidget/StateWidget.tsx +1 -2
  42. package/source/components/SearchWidgetsMobile/BasicDataWidgetMobile/BasicDataWidgetMobile.tsx +4 -4
  43. package/source/components/SearchWidgetsMobile/EquipmentsWidget/EquipmentsWidget.tsx +16 -16
  44. package/source/components/SearchWidgetsMobile/HighlightsWidgetMobile/HighlightsWidgetMobile.tsx +1 -1
  45. package/source/components/SearchWidgetsMobile/InteriorWidget/InteriorWidget.tsx +1 -1
  46. package/source/components/SearchWidgetsMobile/SafetyWidget/SafetyWidget.tsx +6 -6
  47. package/source/components/Stepper/Stepper.tsx +4 -3
  48. package/source/components/UserDashboardPage/sections/CheckoutSection/CheckoutSection.styl +38 -0
  49. package/source/components/UserDashboardPage/sections/CheckoutSection/CheckoutSection.tsx +120 -0
  50. package/source/components/UserDashboardPage/sections/FavoriteSection/FavoriteSection.styl +22 -0
  51. package/source/components/UserDashboardPage/sections/FavoriteSection/FavoriteSection.tsx +84 -0
  52. package/source/components/UserDashboardPage/sections/OrderStatusSection/AdditionalOrderInfo.styl +11 -2
  53. package/source/components/UserDashboardPage/sections/OrderStatusSection/AdditionalOrderInfo.tsx +5 -5
  54. package/source/components/UserDashboardPage/sections/OrderStatusSection/OrderStatusCar.tsx +57 -38
  55. package/source/components/UserDashboardPage/sections/OrderStatusSection/OrderStatusCard.tsx +2 -2
  56. package/source/components/UserDashboardPage/sections/OrderStatusSection/OrderStatusSection.tsx +183 -101
  57. package/source/components/UserDashboardPage/sections/RequestedCarsSection/RequestedCarsSection.tsx +5 -7
  58. package/source/components/Vehicle/VehicleFormattedPrice/VehicleFormattedPrice.tsx +33 -7
  59. package/source/components/VehicleDetailedSidebar/VehicleDetailedSidebar.styl +10 -2
  60. package/source/components/VehicleDetailedSidebar/VehicleDetailedSidebar.tsx +54 -14
  61. package/source/components/VehicleDetailedSidebar/partials/Price.styl +5 -1
  62. package/source/components/VehicleDetailedSidebar/partials/Price.tsx +2 -1
  63. package/source/components/VehicleDetailedSidebar/partials/PriceContent.styl +16 -5
  64. package/source/components/VehicleDetailedSidebar/partials/PriceContent.tsx +9 -4
  65. package/source/components/VehicleDetailedSidebar/partials/Properties.tsx +1 -1
  66. package/source/components/VehicleDetailedSlider/VehicleDetailedSlider.styl +45 -0
  67. package/source/components/VehicleDetailedSlider/VehicleDetailedSlider.tsx +121 -42
  68. package/source/components/VehicleDetailedSlider/partials/PriceData.styl +4 -1
  69. package/source/components/VehicleDetailedSlider/partials/PriceData.tsx +8 -1
  70. package/source/components/VehicleDetailedSlider/partials/Stats.tsx +2 -2
  71. package/source/components/VehicleSmallCard/VehicleData/VechiclePriceItem/VechiclePriceItem.tsx +9 -7
  72. package/source/components/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.styl +35 -1
  73. package/source/components/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.tsx +9 -3
  74. package/source/components/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.styl +11 -2
  75. package/source/components/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.tsx +2 -1
  76. package/source/components/VehicleSmallCard/VehicleSmallCard.styl +3 -1
  77. package/source/components/VehicleSmallCard/VehicleSmallCard.tsx +3 -7
  78. package/source/components/_common/Badge/Badge.styl +3 -0
  79. package/source/components/_common/Badge/Badge.tsx +1 -1
  80. package/source/components/_common/Button/Button.tsx +5 -4
  81. package/source/components/_common/Checkbox/FormCheckbox.tsx +4 -4
  82. package/source/components/_common/CheckboxMaterial/CheckboxMaterial.tsx +1 -1
  83. package/source/components/_common/Chip/Chip.tsx +1 -3
  84. package/source/components/_common/ExpansionPanel/ExpansionPanel.tsx +3 -3
  85. package/source/components/_common/IconSVG/IconSVGConfig.tsx +2 -0
  86. package/source/components/_common/IconSVG/SVG/flags/SK.tsx +0 -1
  87. package/source/components/_common/IconSVG/SVG/slider/360New.tsx +1 -1
  88. package/source/components/_common/IconSVG/SVG/slider/YoutubeButton.tsx +26 -0
  89. package/source/components/_common/MaterialAccordion/MaterialAccordion.tsx +22 -30
  90. package/source/components/_common/MaterialAutocomplete/MaterialAutocomplete.styled.tsx +8 -8
  91. package/source/components/_common/MaterialDatePicker/MaterialDatePicker.styled.tsx +0 -1
  92. package/source/components/_common/MaterialSelect/MaterialSelect.styled.tsx +12 -15
  93. package/source/components/_common/MaterialSelect/MaterialSelect.tsx +3 -3
  94. package/source/components/_common/MaterialSwitch/MaterialSwitch.tsx +3 -1
  95. package/source/components/_common/MaterialTooltip/MaterialTooltip.styled.tsx +1 -1
  96. package/source/components/_common/MaterialTooltip/MaterialTooltip.tsx +3 -3
  97. package/source/components/_common/Modal/CookieModal.tsx +1 -3
  98. package/source/components/_common/Modal/Modal.styled.tsx +2 -1
  99. package/source/components/_common/Modal/Modal.tsx +1 -5
  100. package/source/components/_common/Modal/ModalsConfig.tsx +5 -1
  101. package/source/components/_common/Modal/modals/ManageCookieModal/ManageCookieModal.styl +23 -7
  102. package/source/components/_common/Modal/modals/ManageCookieModal/ManageCookieModal.tsx +84 -36
  103. package/source/components/_common/Modal/modals/PreviewCookieModal/PreviewCookieModal.styl +29 -14
  104. package/source/components/_common/Modal/modals/PreviewCookieModal/PreviewCookieModal.tsx +17 -10
  105. package/source/components/_common/OfferRequestButtonWrapper/OfferRequestButtonWrapper.tsx +12 -4
  106. package/source/components/_common/Range/Range.tsx +27 -14
  107. package/source/components/_common/UserMenu/MaterialMenu.styled.tsx +0 -1
  108. package/source/components/_common/UserMenu/MaterialMenu.tsx +3 -3
  109. package/source/components/_common/UserMenu/MaterialMenuItem.tsx +42 -20
  110. package/source/components/_common/UserMenu/NestedMenu.tsx +1 -1
  111. package/source/components/_common/withStats/withStats.styl +3 -0
  112. package/source/components/_common/withStats/withStats.tsx +19 -16
  113. package/source/components/containers/SearchPage/FiltersContainer/FiltersContainer.styl +14 -1
  114. package/source/components/containers/SearchPage/FiltersContainer/FiltersContainer.tsx +78 -42
  115. package/source/framework/constants/common.ts +89 -60
  116. package/source/framework/constants/highlights.ts +1 -1
  117. package/source/framework/constants.ts +1 -1
  118. package/source/framework/types/types.ts +9 -4
  119. package/source/framework/utils/CommonUtils.ts +73 -62
  120. package/source/framework/utils/DateUtils.ts +10 -2
  121. package/source/framework/vehiclesProps/decoratedLightProps.tsx +1 -2
  122. package/source/framework/vehiclesProps/decoratedProps.tsx +1 -2
  123. package/source/locales/data.ts +2 -2
  124. package/tslint.json +1 -2
  125. package/utils.ts +2 -0
@@ -0,0 +1,613 @@
1
+ import React from 'react';
2
+ import { fireEvent, render, screen, waitFor } from '@testing-library/react';
3
+ import CheckoutSection from '../../../../../source/components/UserDashboardPage/sections/CheckoutSection/CheckoutSection';
4
+ import { observable } from 'mobx';
5
+
6
+ const t = (phrase: string | string[], options: object) => {
7
+ if (options) {
8
+ const value = Object.values(options).map((option) => option);
9
+ return `${phrase} ${value}`;
10
+ }
11
+ return phrase;
12
+ };
13
+
14
+ interface IWithRouter {
15
+ children?: JSX.Element;
16
+ link?: string;
17
+ }
18
+ const getCheckoutCarListMock = jest.fn();
19
+
20
+ const checkoutCars = [
21
+ {
22
+ parkedFor: 'N/A',
23
+ id: '56a33015-04b9-4419-ba0b-95fa52a26b4a',
24
+ mainImageId: 'NQjEQK6YUCBX',
25
+ imagesCount: 14,
26
+ hasInteriorExteriorPhoto: false,
27
+ title: {
28
+ make: 'Ford',
29
+ model: 'Kuga',
30
+ subModel: '2.5 Duratec PHEV ST-LINE XNavi * LED * HUD',
31
+ option: '',
32
+ to: ''
33
+ },
34
+ showNewLabel: true,
35
+ info: {
36
+ regDate: 1646089200,
37
+ mileage: 19693,
38
+ gearbox: 'selector_gearbox_automatic',
39
+ numberOfPreviousOwners: 1,
40
+ usageType: 'selector_unknown',
41
+ condition: 'selector_condition_used',
42
+ damaged: false,
43
+ driveType: 'selector_unknown'
44
+ },
45
+ location: {
46
+ city: ' ',
47
+ street: 'N/A',
48
+ zipCode: ' '
49
+ },
50
+ consumption: {
51
+ fuel: 'selector_fuel_hybridElectricalPetrol',
52
+ consumptionCombined: 1.4,
53
+ consumptionPowerCombined: ' '
54
+ },
55
+ engineData: {
56
+ powerKW: 112,
57
+ powerPS: 112
58
+ },
59
+ environmentEmissions: {
60
+ co2: 31
61
+ },
62
+ offer: {
63
+ offerId: ' ',
64
+ autoDeOfferId: ' ',
65
+ offerFrom: 'selector_unknown',
66
+ offerSource: ' ',
67
+ offerAvailability: 'selector_unknown',
68
+ offerDescription: ' ',
69
+ deliveryDate: ' ',
70
+ deliveryPeriod: 'selector_deliveryPeriod_days6',
71
+ dealerHomepage: ' ',
72
+ closedDomain: ' ',
73
+ export: ' ',
74
+ commercial: ' ',
75
+ warranty: ' ',
76
+ rentingPossible: ' ',
77
+ newHuAu: ' ',
78
+ internalNumber: '102469423/4182',
79
+ availabilityMode: 'selector_availabilityMode_fromDate',
80
+ availabilityFrom: ' ',
81
+ mobileDeOfferId: ' ',
82
+ as24DeOfferId: ' ',
83
+ elnOfferId: 'a0b90f80da6caddd07eb31f9ea1cc162'
84
+ },
85
+ price: {
86
+ offerIndex: 0,
87
+ isStrike: false,
88
+ comparable: {
89
+ annualMileage: 10000,
90
+ firstInstallment: ' ',
91
+ paybackPeriod: 48,
92
+ withAddServices: ' ',
93
+ withTransportation: ' '
94
+ },
95
+ checkout: {
96
+ warrantyRates: [
97
+ 0,
98
+ 0,
99
+ 0
100
+ ],
101
+ warrantyPackage: 0,
102
+ warrantyPeriod: 1,
103
+ admissionService: 0,
104
+ licensePlateFee: 0
105
+ },
106
+ common: {
107
+ firstRegistration: 1646089200,
108
+ mileage: 19693,
109
+ currentSalesPrice: 44666,
110
+ highestPrice: 44666,
111
+ isStrikeShown: false,
112
+ isHybridOrElectric: true
113
+ },
114
+ financing: {
115
+ grossLoanAmountWithoutFinalInstallment: 0,
116
+ purchasePrice: 0,
117
+ hasPaymentProtection: false,
118
+ paymentProtectionInsurance: 0,
119
+ monthlyInstallment: 199,
120
+ oldMonthlyInstallment: 199,
121
+ annualMileage: 25000,
122
+ firstInstallment: 17800,
123
+ withTransportation: false,
124
+ withAddServices: true,
125
+ addServicesCostRaw: 110,
126
+ addServicesCost: 110,
127
+ transportationCostRaw: 499,
128
+ transportationCost: 499,
129
+ withFinalInstallment: true,
130
+ paybackPeriod: 72,
131
+ rawPaybackPeriod: 72,
132
+ nominalInterestRate: 3.92,
133
+ annualPercentageRate: 6.99,
134
+ financialInstitution: 'Santander Consumer Bank AG, Santander-Platz 1, 41061 Mönchengladbach',
135
+ periodInterestRate: [
136
+ {
137
+ duration: 12,
138
+ recommended: 70,
139
+ current: 88,
140
+ inEUR: ' ',
141
+ value: 26866,
142
+ highestValue: 39306.08
143
+ },
144
+ {
145
+ duration: 24,
146
+ recommended: 66,
147
+ current: 77,
148
+ inEUR: ' ',
149
+ value: 26866,
150
+ highestValue: 34392.82
151
+ },
152
+ {
153
+ duration: 36,
154
+ recommended: 60,
155
+ current: 66,
156
+ inEUR: ' ',
157
+ value: 26866,
158
+ highestValue: 29479.56
159
+ },
160
+ {
161
+ duration: 48,
162
+ recommended: 50,
163
+ current: 60,
164
+ inEUR: ' ',
165
+ value: 26733.6,
166
+ highestValue: 26799.6
167
+ },
168
+ {
169
+ duration: 60,
170
+ recommended: 40,
171
+ current: 50,
172
+ inEUR: ' ',
173
+ value: 22278,
174
+ highestValue: 22333
175
+ },
176
+ {
177
+ duration: 72,
178
+ recommended: 30,
179
+ current: 40,
180
+ inEUR: ' ',
181
+ value: 17822.4,
182
+ highestValue: 17866.4
183
+ },
184
+ {
185
+ duration: 84,
186
+ recommended: 20,
187
+ current: 30,
188
+ inEUR: ' ',
189
+ value: 13366.8,
190
+ highestValue: 13399.8
191
+ },
192
+ {
193
+ duration: 96,
194
+ recommended: 10,
195
+ current: 20,
196
+ inEUR: ' ',
197
+ value: 8911.2,
198
+ highestValue: 8933.2
199
+ }
200
+ ],
201
+ closingCosts: 0,
202
+ offersFinancing: true,
203
+ rateMode: 'dealer'
204
+ },
205
+ buy: {
206
+ withTransportation: false,
207
+ withAddServices: true,
208
+ withoutAddServices: true,
209
+ transportationCost: 499,
210
+ addServicesCost: 799,
211
+ currentSalesPriceExtra: 44666,
212
+ highestPriceExtra: 44666,
213
+ extraCost: 0
214
+ },
215
+ leasing: {
216
+ RWG: 4,
217
+ maxAge: 24,
218
+ maxMileage: 1000000,
219
+ isActive: true,
220
+ withTransportation: false,
221
+ withAddServices: false,
222
+ addServicesCostRaw: 799,
223
+ transportationCostRaw: 499,
224
+ addServicesCost: 799,
225
+ transportationCost: 499,
226
+ monthlyAddServices: 0,
227
+ monthlyTransportation: 0,
228
+ monthlyInstallment: 650,
229
+ oldMonthlyInstallment: 650,
230
+ firstInstallment: 20,
231
+ firstInstallmentMax: 2000,
232
+ annualMileage: 10000,
233
+ paybackPeriodRange: [
234
+ 30,
235
+ 36,
236
+ 42,
237
+ 48,
238
+ 54,
239
+ 60
240
+ ],
241
+ paybackPeriod: 48,
242
+ santanderPayBackMin: 250,
243
+ nominalInterestRate: 6.78,
244
+ financialInstitution: 'Santander Consumer Bank AG, Santander-Platz 1, 41061 Mönchengladbach',
245
+ grossLoanAmountWithoutFinalInstallment: 0,
246
+ hasPaymentProtection: false,
247
+ paymentProtectionInsurance: 1100,
248
+ leasingMode: 'default',
249
+ currentSalesPrice: 44666
250
+ },
251
+ abo: {
252
+ paybackPeriod: 6,
253
+ annualMileage: 10000
254
+ },
255
+ firstRegistration: 1646089200,
256
+ mileage: 19693,
257
+ currentSalesPrice: 44666,
258
+ highestPrice: 44666,
259
+ isStrikeShown: false,
260
+ carId: '56a33015-04b9-4419-ba0b-95fa52a26b4a',
261
+ offerName: 'financing',
262
+ vehicleId: '56a33015-04b9-4419-ba0b-95fa52a26b4a',
263
+ vatRate: 19,
264
+ mlCurrentSalesPricePredicted: ' ',
265
+ historyPriceDifference: 0,
266
+ historyPriceDifferencePerCent: 0,
267
+ margin: 10676,
268
+ toRound: false
269
+ },
270
+ internalNumber: '102469423/4182',
271
+ vin: ' ',
272
+ isOnline: true,
273
+ firstIsOnline: 1685705645,
274
+ url: '/search/vehicle/56a33015-04b9-4419-ba0b-95fa52a26b4a',
275
+ relativeScore: 0,
276
+ baseUrl: '',
277
+ offerSource: '',
278
+ crawledAt: '',
279
+ ownerName: 'Guardian of Auto.de',
280
+ modificationDate: '02.06.2023',
281
+ seoText: ''
282
+ },
283
+ {
284
+ parkedFor: 'N/A',
285
+ id: 'ffa641c8-a85f-4d87-9880-b2aa12386520',
286
+ mainImageId: '0NNcWdyo6MW4',
287
+ imagesCount: 15,
288
+ hasInteriorExteriorPhoto: false,
289
+ title: {
290
+ make: 'Audi',
291
+ model: 'A4',
292
+ subModel: 'Avant 1.4 TFSI design Virtual Cockpit LED DAB Navi SHZ PDC Klima',
293
+ option: '',
294
+ to: ''
295
+ },
296
+ showNewLabel: false,
297
+ info: {
298
+ regDate: 1525125600,
299
+ mileage: 29987,
300
+ gearbox: 'selector_gearbox_manualShift',
301
+ numberOfPreviousOwners: 2,
302
+ usageType: 'selector_unknown',
303
+ condition: 'selector_condition_used',
304
+ damaged: false,
305
+ driveType: 'selector_unknown'
306
+ },
307
+ location: {
308
+ city: ' ',
309
+ street: 'N/A',
310
+ zipCode: ' '
311
+ },
312
+ consumption: {
313
+ fuel: 'selector_fuel_petrol',
314
+ consumptionCombined: 5.6,
315
+ consumptionPowerCombined: ' '
316
+ },
317
+ engineData: {
318
+ powerKW: 110,
319
+ powerPS: 110
320
+ },
321
+ environmentEmissions: {
322
+ co2: 133
323
+ },
324
+ offer: {
325
+ offerId: ' ',
326
+ autoDeOfferId: ' ',
327
+ offerFrom: 'selector_unknown',
328
+ offerSource: ' ',
329
+ offerAvailability: 'selector_unknown',
330
+ offerDescription: ' ',
331
+ deliveryDate: 1676268549,
332
+ deliveryPeriod: 'selector_unknown',
333
+ dealerHomepage: ' ',
334
+ closedDomain: ' ',
335
+ export: ' ',
336
+ commercial: ' ',
337
+ warranty: ' ',
338
+ rentingPossible: ' ',
339
+ newHuAu: ' ',
340
+ internalNumber: '181212/11921',
341
+ availabilityMode: 'selector_availabilityMode_always',
342
+ mobileDeOfferId: ' ',
343
+ as24DeOfferId: ' ',
344
+ elnOfferId: '24198cbd398fdcb14d19b17ec1827c21',
345
+ availabilityFrom: 1685532642
346
+ },
347
+ price: {
348
+ offerIndex: 0,
349
+ isStrike: false,
350
+ comparable: {
351
+ annualMileage: 10000,
352
+ firstInstallment: ' ',
353
+ paybackPeriod: 48,
354
+ withAddServices: ' ',
355
+ withTransportation: ' '
356
+ },
357
+ checkout: {
358
+ warrantyRates: [
359
+ 0,
360
+ 0,
361
+ 0
362
+ ],
363
+ warrantyPackage: 0,
364
+ warrantyPeriod: 1,
365
+ admissionService: 0,
366
+ licensePlateFee: 0
367
+ },
368
+ common: {
369
+ firstRegistration: 1525125600,
370
+ mileage: 29987,
371
+ currentSalesPrice: 32666,
372
+ highestPrice: 33666,
373
+ isStrikeShown: true,
374
+ isHybridOrElectric: false
375
+ },
376
+ financing: {
377
+ grossLoanAmountWithoutFinalInstallment: 0,
378
+ purchasePrice: 0,
379
+ hasPaymentProtection: false,
380
+ paymentProtectionInsurance: 0,
381
+ monthlyInstallment: 150,
382
+ oldMonthlyInstallment: 161,
383
+ annualMileage: 25000,
384
+ firstInstallment: 12700,
385
+ withTransportation: false,
386
+ withAddServices: true,
387
+ addServicesCostRaw: 799,
388
+ addServicesCost: 799,
389
+ transportationCostRaw: 499,
390
+ transportationCost: 499,
391
+ withFinalInstallment: true,
392
+ paybackPeriod: 72,
393
+ rawPaybackPeriod: 72,
394
+ nominalInterestRate: 3.92,
395
+ annualPercentageRate: 6.99,
396
+ financialInstitution: 'Santander Consumer Bank AG, Santander-Platz 1, 41061 Mönchengladbach',
397
+ periodInterestRate: [
398
+ {
399
+ duration: 12,
400
+ recommended: 70,
401
+ current: 88,
402
+ inEUR: ' ',
403
+ value: 19966,
404
+ highestValue: 29626.08
405
+ },
406
+ {
407
+ duration: 24,
408
+ recommended: 66,
409
+ current: 77,
410
+ inEUR: ' ',
411
+ value: 19966,
412
+ highestValue: 25922.82
413
+ },
414
+ {
415
+ duration: 36,
416
+ recommended: 60,
417
+ current: 66,
418
+ inEUR: ' ',
419
+ value: 19966,
420
+ highestValue: 22219.56
421
+ },
422
+ {
423
+ duration: 48,
424
+ recommended: 50,
425
+ current: 60,
426
+ inEUR: ' ',
427
+ value: 19120.2,
428
+ highestValue: 20199.6
429
+ },
430
+ {
431
+ duration: 60,
432
+ recommended: 40,
433
+ current: 50,
434
+ inEUR: ' ',
435
+ value: 15933.5,
436
+ highestValue: 16833
437
+ },
438
+ {
439
+ duration: 72,
440
+ recommended: 30,
441
+ current: 40,
442
+ inEUR: ' ',
443
+ value: 12746.8,
444
+ highestValue: 13466.4
445
+ },
446
+ {
447
+ duration: 84,
448
+ recommended: 20,
449
+ current: 30,
450
+ inEUR: ' ',
451
+ value: 9560.1,
452
+ highestValue: 10099.8
453
+ },
454
+ {
455
+ duration: 96,
456
+ recommended: 10,
457
+ current: 20,
458
+ inEUR: ' ',
459
+ value: 6373.4,
460
+ highestValue: 6733.2
461
+ }
462
+ ],
463
+ closingCosts: 0,
464
+ offersFinancing: true,
465
+ rateMode: 'dealer'
466
+ },
467
+ buy: {
468
+ withTransportation: false,
469
+ withAddServices: true,
470
+ withoutAddServices: true,
471
+ transportationCost: 499,
472
+ addServicesCost: 799,
473
+ currentSalesPriceExtra: 32666,
474
+ highestPriceExtra: 33666,
475
+ extraCost: 0
476
+ },
477
+ leasing: {
478
+ RWG: 4,
479
+ maxAge: 24,
480
+ maxMileage: 1000000,
481
+ isActive: true,
482
+ withTransportation: false,
483
+ withAddServices: false,
484
+ addServicesCostRaw: 799,
485
+ transportationCostRaw: 499,
486
+ addServicesCost: 799,
487
+ transportationCost: 499,
488
+ monthlyAddServices: 0,
489
+ monthlyTransportation: 0,
490
+ monthlyInstallment: 472,
491
+ oldMonthlyInstallment: 487,
492
+ firstInstallment: 20,
493
+ firstInstallmentMax: 2000,
494
+ annualMileage: 10000,
495
+ paybackPeriodRange: [
496
+ 30,
497
+ 36,
498
+ 42,
499
+ 48,
500
+ 54,
501
+ 60
502
+ ],
503
+ paybackPeriod: 48,
504
+ santanderPayBackMin: 250,
505
+ nominalInterestRate: 6.78,
506
+ financialInstitution: 'Santander Consumer Bank AG, Santander-Platz 1, 41061 Mönchengladbach',
507
+ grossLoanAmountWithoutFinalInstallment: 0,
508
+ hasPaymentProtection: false,
509
+ paymentProtectionInsurance: 1100,
510
+ leasingMode: 'default',
511
+ currentSalesPrice: 32666
512
+ },
513
+ abo: {
514
+ paybackPeriod: 6,
515
+ annualMileage: 10000
516
+ },
517
+ firstRegistration: 1525125600,
518
+ mileage: 29987,
519
+ currentSalesPrice: 32666,
520
+ highestPrice: 33666,
521
+ isStrikeShown: true,
522
+ carId: 'ffa641c8-a85f-4d87-9880-b2aa12386520',
523
+ offerName: 'financing',
524
+ vehicleId: 'ffa641c8-a85f-4d87-9880-b2aa12386520',
525
+ vatRate: 19,
526
+ mlCurrentSalesPricePredicted: ' ',
527
+ historyPriceDifference: 1000,
528
+ historyPriceDifferencePerCent: 3,
529
+ margin: 32666,
530
+ toRound: false
531
+ },
532
+ internalNumber: '181212/11921',
533
+ vin: ' ',
534
+ isOnline: true,
535
+ firstIsOnline: 1675669977,
536
+ url: '/search/vehicle/ffa641c8-a85f-4d87-9880-b2aa12386520',
537
+ relativeScore: 0,
538
+ baseUrl: '',
539
+ offerSource: '',
540
+ crawledAt: '',
541
+ ownerName: 'Guardian of Auto.de',
542
+ modificationDate: '24.05.2023',
543
+ seoText: ''
544
+ }
545
+ ];
546
+ const getCheckoutCarList = () => {
547
+ return new Promise((resolve) => {
548
+ resolve(checkoutCars);
549
+ });
550
+ };
551
+
552
+ const LinkRouter = ({ children, link }: IWithRouter) => {
553
+ return (
554
+ <a href={link} >
555
+ {children}
556
+ </a>
557
+ );
558
+ };
559
+
560
+ const aggStatsData = observable({
561
+ '56a33015-04b9-4419-ba0b-95fa52a26b4a': {
562
+ carId: '56a33015-04b9-4419-ba0b-95fa52a26b4a',
563
+ totalFavCount: 3,
564
+ totalCarImpCount: 7399,
565
+ slidingCarImpCount: 10
566
+ },
567
+ get() {
568
+ return {
569
+ 'b359d74f-bb96-4fca-9539-579792fe7c36': {
570
+ carId: '56a33015-04b9-4419-ba0b-95fa52a26b4a',
571
+ totalFavCount: 3,
572
+ totalCarImpCount: 7399,
573
+ slidingCarImpCount: 10
574
+ }
575
+ };
576
+ }
577
+ });
578
+ const mockProps = {
579
+ t,
580
+ LinkRouter,
581
+ checkoutCars,
582
+ PLACEHOLDER_IMAGE_SMALL_URL: 'PLACEHOLDER_IMAGE_SMALL_URL',
583
+ appStore: { language:'en' },
584
+ carsStore: { aggStatsData },
585
+ imagesStore: { getSupportedImageFormat: jest.fn() },
586
+ checkoutStore:{ checkoutCars, getCheckoutCarList:getCheckoutCarListMock }
587
+ };
588
+
589
+ describe('CheckoutSection', () => {
590
+ it('renders correctly', () => {
591
+ const { container } = render(<CheckoutSection {...mockProps as any} />);
592
+ // expect(mockProps.checkoutStore.getCheckoutCarList).toHaveBeenCalledTimes(1);
593
+ expect(container).toBeInTheDocument();
594
+ });
595
+ it('should display correct car data', () => {
596
+ const { container } = render(<CheckoutSection {...mockProps as any} />);
597
+ mockProps.checkoutCars.forEach((element:any) => {
598
+ expect(container).toHaveTextContent(element.title.make);
599
+ });
600
+ // });
601
+ });
602
+ it('should open checkout page with correct URL on car select', () => {
603
+ const { getAllByRole } = render(<CheckoutSection {...mockProps as any} />);
604
+ // mockProps.checkoutStore.getCheckoutCarList()
605
+ // .then((savedCheckoutDataList: any) => {
606
+ const checkoutButton = getAllByRole('link')[0];
607
+ fireEvent.click(checkoutButton);
608
+ const expectedUrl = `/checkout/contact-information?carId=${mockProps.checkoutCars[0].id}&isSavedCheckout=true&mainImageId=${mockProps.checkoutCars[0].mainImageId}&model=${mockProps.checkoutCars[0].title.model}&subModel=${mockProps.checkoutCars[0].title.subModel}&make=${mockProps.checkoutCars[0].title.make}`;
609
+ waitFor(() => expect(window.open).toHaveBeenCalledWith(expectedUrl, '_blank'));
610
+ // });
611
+ });
612
+
613
+ });