@jetshop/core 5.13.2 → 5.13.3-beta.0
Sign up to get free protection for your applications and to get access to all the features.
- package/ChannelHandler/ChannelHandler.d.ts +2 -0
- package/ChannelHandler/ChannelHandler.js +9 -3
- package/ChannelHandler/ChannelHandler.js.map +1 -1
- package/ChannelHandler/PreserveRedirectRouteQuery.gql +1 -1
- package/ChannelHandler/channelUtils.d.ts +4 -0
- package/ChannelHandler/channelUtils.js +113 -7
- package/ChannelHandler/channelUtils.js.map +1 -1
- package/ChannelHandler/redirectUtils.test.js +24 -48
- package/ChannelHandler/redirectUtilsGroupedChannels.test.js +732 -0
- package/analytics/Analytics.js +1 -1
- package/analytics/Analytics.js.map +1 -1
- package/analytics/AnalyticsProvider.js +1 -1
- package/analytics/AnalyticsProvider.js.map +1 -1
- package/analytics/integrations/ga4.js +61 -62
- package/analytics/integrations/ga4.js.map +1 -1
- package/analytics/integrations/unslugify.js +0 -2
- package/analytics/integrations/unslugify.js.map +1 -1
- package/components/AuthContext/AuthProvider.js +2 -2
- package/components/AuthContext/AuthProvider.js.map +1 -1
- package/components/AuthContext/AuthProvider.test.js +2 -2
- package/components/ChannelContext/ChannelContext.d.ts +1 -0
- package/components/ChannelContext/ChannelContext.js.map +1 -1
- package/components/ChannelContext/ChannelProvider.js +4 -2
- package/components/ChannelContext/ChannelProvider.js.map +1 -1
- package/components/ChannelContext/useCountrySettings.js +2 -2
- package/components/ChannelContext/useCountrySettings.js.map +1 -1
- package/components/ConfigProvider.d.ts +0 -1
- package/components/ConfigProvider.js.map +1 -1
- package/components/Head.js +9 -4
- package/components/Head.js.map +1 -1
- package/components/OpenGraph/OpenGraph.test.js +2 -2
- package/components/OpenGraph/OpenGraphGeneralPageData.js +6 -6
- package/components/OpenGraph/OpenGraphGeneralPageData.js.map +1 -1
- package/components/OpenGraph/OpenGraphProductData.js +1 -1
- package/components/OpenGraph/OpenGraphProductData.js.map +1 -1
- package/components/Pagination/PaginationProvider.test.js +29 -29
- package/components/SortOrder/SortOrderContainer.js +1 -1
- package/components/SortOrder/SortOrderContainer.js.map +1 -1
- package/data/fragments/ChannelsFragment.gql +1 -0
- package/experiments/ExperimentsProvider.test.js +12 -12
- package/experiments/integration.test.js +6 -6
- package/experiments/useExperiment.test.js +10 -10
- package/hooks/Channels/useChannelSettings.js +1 -1
- package/hooks/Channels/useChannelSettings.js.map +1 -1
- package/hooks/Channels/useChannelSettings.test.js +1 -1
- package/hooks/usePrice.test.js +2 -2
- package/hooks/useShopConfig.d.ts +1 -1
- package/hooks/useShopConfig.js +1 -1
- package/hooks/useShopConfig.js.map +1 -1
- package/package.json +2 -2
- package/test-utils/ProviderPyramid.js +4 -4
- package/test-utils/variables.js +1234 -0
@@ -8,11 +8,13 @@ export declare class ChannelHandler {
|
|
8
8
|
recommendedChannel?: SelectedChannel;
|
9
9
|
channels?: Channel[];
|
10
10
|
getPrimaryRoutePath?: GetPrimaryRoutePath;
|
11
|
+
selectedChannelGroup?: Channel[] | undefined;
|
11
12
|
constructor(args?: {
|
12
13
|
selectedChannel?: SelectedChannel;
|
13
14
|
recommendedChannel?: SelectedChannel;
|
14
15
|
channels?: Channel[];
|
15
16
|
getPrimaryRoutePath?: GetPrimaryRoutePath;
|
17
|
+
selectedChannelGroup?: Channel[] | undefined;
|
16
18
|
});
|
17
19
|
setGetPrimaryRoutePath: (getPrimaryRoutePath: GetPrimaryRoutePath) => GetPrimaryRoutePath;
|
18
20
|
getSelectedChannel: () => SelectedChannel;
|
@@ -10,13 +10,14 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
10
10
|
return t;
|
11
11
|
};
|
12
12
|
import qs from 'qs';
|
13
|
-
import { getChannelBasename, getChannelHeaders, getLanguageFromCulture, isInDev } from './channelUtils';
|
13
|
+
import { getChannelBasename, getChannelHeaders, getLanguageFromCulture, isInDev, getGroupedChannels } from './channelUtils';
|
14
14
|
export class ChannelHandler {
|
15
15
|
constructor(args = {
|
16
16
|
selectedChannel: undefined,
|
17
17
|
recommendedChannel: undefined,
|
18
18
|
channels: undefined,
|
19
|
-
getPrimaryRoutePath: undefined
|
19
|
+
getPrimaryRoutePath: undefined,
|
20
|
+
selectedChannelGroup: undefined
|
20
21
|
}) {
|
21
22
|
this.setGetPrimaryRoutePath = (getPrimaryRoutePath) => (this.getPrimaryRoutePath = getPrimaryRoutePath);
|
22
23
|
this.getSelectedChannel = () => this.selectedChannel;
|
@@ -29,6 +30,10 @@ export class ChannelHandler {
|
|
29
30
|
this.getRecommendedChannel = () => this.recommendedChannel;
|
30
31
|
this.setChannels = (channels) => {
|
31
32
|
this.channels = channels;
|
33
|
+
this.selectedChannelGroup = getGroupedChannels(channels, {
|
34
|
+
// Selected channel here is based on the one returned in getSelectedAndRecommendedChannel
|
35
|
+
groupName: this.selectedChannel.groupName
|
36
|
+
});
|
32
37
|
};
|
33
38
|
this.getChannels = () => this.channels;
|
34
39
|
this.getChannelHeaders = () => getChannelHeaders(this.selectedChannel);
|
@@ -90,11 +95,12 @@ export class ChannelHandler {
|
|
90
95
|
.then((url) => window.location.assign(url))
|
91
96
|
.catch((url) => window.location.assign(url));
|
92
97
|
};
|
93
|
-
const { selectedChannel, recommendedChannel, channels, getPrimaryRoutePath } = args;
|
98
|
+
const { selectedChannel, recommendedChannel, channels, getPrimaryRoutePath, selectedChannelGroup } = args;
|
94
99
|
this.selectedChannel = selectedChannel;
|
95
100
|
this.recommendedChannel = recommendedChannel;
|
96
101
|
this.channels = channels;
|
97
102
|
this.getPrimaryRoutePath = getPrimaryRoutePath;
|
103
|
+
this.selectedChannelGroup = selectedChannelGroup;
|
98
104
|
}
|
99
105
|
getPathWithoutBasename(url) {
|
100
106
|
const urlObject = new URL(url);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ChannelHandler.js","sourceRoot":"","sources":["ChannelHandler.ts"],"names":[],"mappings":";;;;;;;;;;;AAEA,OAAO,EAAE,MAAM,IAAI,CAAC;AAGpB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,OAAO,
|
1
|
+
{"version":3,"file":"ChannelHandler.js","sourceRoot":"","sources":["ChannelHandler.ts"],"names":[],"mappings":"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"}
|
@@ -9,6 +9,9 @@ export interface QueryObject {
|
|
9
9
|
redirectDisabled?: boolean;
|
10
10
|
articlenumber?: string;
|
11
11
|
}
|
12
|
+
export declare const getGroupedChannels: (availableChannels: Channel[], { groupName }: {
|
13
|
+
groupName: string;
|
14
|
+
}) => Channel[];
|
12
15
|
export declare const getURLBasename: (url: URL) => string;
|
13
16
|
export declare const getURLLanguageBasename: ({ url, singleDomainMode }: {
|
14
17
|
url: URL;
|
@@ -52,6 +55,7 @@ export declare function getSelectedAndRecommendedChannel({ url, singleDomainMode
|
|
52
55
|
redirect: boolean;
|
53
56
|
selectedChannel: SelectedChannel;
|
54
57
|
recommendedChannel: SelectedChannel;
|
58
|
+
channels: Channel[];
|
55
59
|
};
|
56
60
|
export declare function getChannelHeaders(channel?: SelectedChannel): {
|
57
61
|
currency: string;
|
@@ -1,5 +1,19 @@
|
|
1
1
|
import acceptLanguageParser from 'accept-language-parser';
|
2
2
|
import qs from 'qs';
|
3
|
+
const allChannelsGrouped = (availableChannels) => availableChannels.every((channel) => { var _a; return (_a = channel === null || channel === void 0 ? void 0 : channel.groupName) === null || _a === void 0 ? void 0 : _a.length; });
|
4
|
+
export const getGroupedChannels = (availableChannels, { groupName }) => {
|
5
|
+
const currentChannel = availableChannels.find((channel) => channel.groupName === groupName);
|
6
|
+
if (!currentChannel) {
|
7
|
+
return undefined;
|
8
|
+
}
|
9
|
+
const selectedChannelGroup = availableChannels.filter((channel) => channel.groupName === currentChannel.groupName);
|
10
|
+
if (selectedChannelGroup) {
|
11
|
+
return selectedChannelGroup;
|
12
|
+
}
|
13
|
+
else {
|
14
|
+
return undefined;
|
15
|
+
}
|
16
|
+
};
|
3
17
|
export const getURLBasename = (url) => {
|
4
18
|
return url.pathname.split('/')[1];
|
5
19
|
};
|
@@ -177,8 +191,68 @@ function setGeoIpAndAcceptLanguageCookies({ cookies, geoipCountry, acceptLanguag
|
|
177
191
|
path: '/'
|
178
192
|
});
|
179
193
|
}
|
180
|
-
|
181
|
-
|
194
|
+
function getGroupedChannelsByUrl({ url, channels, singleDomainMode, cookies, geoipCountry }) {
|
195
|
+
const hasGroupedChannels = allChannelsGrouped(channels);
|
196
|
+
if (!hasGroupedChannels) {
|
197
|
+
return {
|
198
|
+
hasGroupedChannels,
|
199
|
+
groupByChannel: undefined
|
200
|
+
};
|
201
|
+
}
|
202
|
+
switch (true) {
|
203
|
+
case isInDev(url): {
|
204
|
+
if (singleDomainMode) {
|
205
|
+
const currentBaseUrl = getURLBasename(new URL(url));
|
206
|
+
// -> se, de, dk, es etcetc
|
207
|
+
return {
|
208
|
+
hasGroupedChannels,
|
209
|
+
groupByChannel: channels.find((channel) =>
|
210
|
+
// We always split channel.url to consider if trailing slashes are added in as BaseUrl
|
211
|
+
sanitizeURL(channel.url).split('/')[1] === currentBaseUrl)
|
212
|
+
};
|
213
|
+
}
|
214
|
+
else {
|
215
|
+
// Try to match with anything during development + non-singledomain,
|
216
|
+
// this is b/c we can't match dev urls with any baseurl.
|
217
|
+
// If one wan't to test it in dev one can use the ?channel=XX param.
|
218
|
+
const { activeChannel, chosenChannel } = getCurrentChannel({
|
219
|
+
url,
|
220
|
+
singleDomainMode,
|
221
|
+
channels,
|
222
|
+
cookies,
|
223
|
+
geoipCountry
|
224
|
+
});
|
225
|
+
return {
|
226
|
+
hasGroupedChannels,
|
227
|
+
// Active channel is given first priority. If it is null we are most likely in staging or development so chosenChannel or defaultChannel is used
|
228
|
+
groupByChannel: activeChannel || chosenChannel || getDefaultChannel(channels)
|
229
|
+
};
|
230
|
+
}
|
231
|
+
}
|
232
|
+
case singleDomainMode: {
|
233
|
+
const currentBaseUrl = sanitizeURL(url).split('/', 2);
|
234
|
+
// -> se, de, dk, es etcetc
|
235
|
+
return {
|
236
|
+
hasGroupedChannels,
|
237
|
+
groupByChannel: channels.find((channel) =>
|
238
|
+
// We always split channel.url to consider if trailing slashes are added in as BaseUrl
|
239
|
+
sanitizeURL(channel.url).split('/')[1] === currentBaseUrl[1]) || getDefaultChannel(channels)
|
240
|
+
};
|
241
|
+
}
|
242
|
+
default: {
|
243
|
+
const currentBaseUrl = sanitizeURL(url).split('/')[0];
|
244
|
+
// -> domain.com
|
245
|
+
return {
|
246
|
+
hasGroupedChannels,
|
247
|
+
groupByChannel: channels.find((channel) =>
|
248
|
+
// We always split channel.url to consider if trailing slashes are added in as BaseUrl
|
249
|
+
sanitizeURL(channel.url).split('/')[0] === currentBaseUrl)
|
250
|
+
};
|
251
|
+
}
|
252
|
+
}
|
253
|
+
}
|
254
|
+
// Is where we determine current channel to get return values in getSelectedAndRecommendedChannel
|
255
|
+
function getCurrentChannel({ url, singleDomainMode, channels, cookies, geoipCountry }) {
|
182
256
|
const { activeChannel, activeChannels } = getChannelFromPathOrUrl({
|
183
257
|
url,
|
184
258
|
singleDomainMode,
|
@@ -188,11 +262,43 @@ export function getSelectedAndRecommendedChannel({ url, singleDomainMode, channe
|
|
188
262
|
cookies,
|
189
263
|
channels
|
190
264
|
});
|
265
|
+
const channelFromGeoIp = findChannelByCountry(geoipCountry || cookies.get('geoipCountry'), channels);
|
266
|
+
// But have default channel as fallback,
|
191
267
|
const defaultChannel = getDefaultChannel(channels);
|
268
|
+
return {
|
269
|
+
activeChannel,
|
270
|
+
activeChannels,
|
271
|
+
chosenChannel,
|
272
|
+
channelFromGeoIp,
|
273
|
+
defaultChannel
|
274
|
+
};
|
275
|
+
}
|
276
|
+
export function getSelectedAndRecommendedChannel({ url, singleDomainMode, channels, cookies, geoipCountry, acceptedLanguages, disableGeoRedirect }) {
|
277
|
+
setCookiesFromQueryString({ cookies, url });
|
278
|
+
const { hasGroupedChannels, groupByChannel } = getGroupedChannelsByUrl({
|
279
|
+
url,
|
280
|
+
channels,
|
281
|
+
singleDomainMode,
|
282
|
+
cookies,
|
283
|
+
geoipCountry
|
284
|
+
});
|
285
|
+
// If available, use channel group from here on
|
286
|
+
// NB: All channels must be grouped and groupName is nullable.
|
287
|
+
const availableChannels = hasGroupedChannels && (groupByChannel === null || groupByChannel === void 0 ? void 0 : groupByChannel.groupName)
|
288
|
+
? getGroupedChannels(channels, {
|
289
|
+
groupName: groupByChannel.groupName
|
290
|
+
})
|
291
|
+
: channels;
|
292
|
+
const { defaultChannel, chosenChannel, activeChannel, activeChannels, channelFromGeoIp } = getCurrentChannel({
|
293
|
+
url,
|
294
|
+
singleDomainMode,
|
295
|
+
channels: availableChannels,
|
296
|
+
cookies,
|
297
|
+
geoipCountry
|
298
|
+
});
|
192
299
|
// Active channel is given first priority. If it is null we are most likely in staging or development so chosenChannel or defaultChannel is used
|
193
300
|
const pureChannel = activeChannel || chosenChannel || defaultChannel;
|
194
301
|
let redirect = false;
|
195
|
-
const channelFromGeoIp = findChannelByCountry(geoipCountry || cookies.get('geoipCountry'), channels);
|
196
302
|
let pureRecommendedChannel;
|
197
303
|
// If a channel has been chosen we want to redirect to it
|
198
304
|
if (chosenChannel &&
|
@@ -203,9 +309,7 @@ export function getSelectedAndRecommendedChannel({ url, singleDomainMode, channe
|
|
203
309
|
redirect = true;
|
204
310
|
pureRecommendedChannel = chosenChannel;
|
205
311
|
}
|
206
|
-
else if (pureChannel
|
207
|
-
channelFromGeoIp &&
|
208
|
-
pureChannel.id !== channelFromGeoIp.id) {
|
312
|
+
else if (channelFromGeoIp && pureChannel.id !== channelFromGeoIp.id) {
|
209
313
|
pureRecommendedChannel = channelFromGeoIp;
|
210
314
|
redirect = !disableGeoRedirect && !chosenChannel;
|
211
315
|
// this should happen when we can't find a matching channel from the url so we want to redirect such that the basename is included
|
@@ -250,7 +354,9 @@ export function getSelectedAndRecommendedChannel({ url, singleDomainMode, channe
|
|
250
354
|
return {
|
251
355
|
redirect,
|
252
356
|
selectedChannel,
|
253
|
-
recommendedChannel
|
357
|
+
recommendedChannel,
|
358
|
+
// for testing purposes mainly
|
359
|
+
channels: availableChannels
|
254
360
|
};
|
255
361
|
}
|
256
362
|
export function getChannelHeaders(channel) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"channelUtils.js","sourceRoot":"","sources":["channelUtils.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"channelUtils.js","sourceRoot":"","sources":["channelUtils.ts"],"names":[],"mappings":"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"}
|
@@ -3,41 +3,23 @@ import {
|
|
3
3
|
getSelectedAndRecommendedChannel
|
4
4
|
} from './channelUtils';
|
5
5
|
import { MockLink } from 'apollo-link-mock';
|
6
|
-
import {
|
6
|
+
import {
|
7
|
+
InMemoryCache,
|
8
|
+
IntrospectionFragmentMatcher
|
9
|
+
} from 'apollo-cache-inmemory';
|
7
10
|
import ApolloClient from 'apollo-client';
|
8
11
|
import gql from 'graphql-tag';
|
9
12
|
import { ChannelHandler } from './ChannelHandler';
|
10
|
-
import {
|
13
|
+
import {
|
14
|
+
channels,
|
15
|
+
singleDomainChannels,
|
16
|
+
groupedChannels,
|
17
|
+
groupedSingleDomainChannels
|
18
|
+
} from '../test-utils/variables';
|
11
19
|
import { Cookies } from 'react-cookie';
|
12
20
|
import { primaryRouteForPathFetcher } from './redirectUtils';
|
13
|
-
|
14
|
-
|
15
|
-
query preserveRedirectRouteQuery($path: String!) {
|
16
|
-
route(path: $path) {
|
17
|
-
id
|
18
|
-
object {
|
19
|
-
... on Category {
|
20
|
-
id
|
21
|
-
__typename
|
22
|
-
}
|
23
|
-
... on Product {
|
24
|
-
id
|
25
|
-
__typename
|
26
|
-
}
|
27
|
-
... on Page {
|
28
|
-
id
|
29
|
-
__typename
|
30
|
-
}
|
31
|
-
... on StartPage {
|
32
|
-
id
|
33
|
-
__typename
|
34
|
-
}
|
35
|
-
__typename
|
36
|
-
}
|
37
|
-
__typename
|
38
|
-
}
|
39
|
-
}
|
40
|
-
`;
|
21
|
+
import PreserveRedirectRouteQuery from './PreserveRedirectRouteQuery.gql';
|
22
|
+
import fragmentTypes from '@jetshop/core/data/fragmentTypes';
|
41
23
|
|
42
24
|
const startPagePathnameRedirectQuery = gql`
|
43
25
|
query StartPagePathnameRedirectQuery($id: Int!) {
|
@@ -90,7 +72,7 @@ const productPathnameRedirectQuery = gql`
|
|
90
72
|
const redirectQueryMocks = [
|
91
73
|
{
|
92
74
|
request: {
|
93
|
-
query:
|
75
|
+
query: PreserveRedirectRouteQuery,
|
94
76
|
variables: {
|
95
77
|
path: '/'
|
96
78
|
}
|
@@ -115,7 +97,7 @@ const redirectQueryMocks = [
|
|
115
97
|
startPagePathnameRedirectRequest,
|
116
98
|
{
|
117
99
|
request: {
|
118
|
-
query:
|
100
|
+
query: PreserveRedirectRouteQuery,
|
119
101
|
variables: {
|
120
102
|
path: '/accessories/orchid-peach-bag'
|
121
103
|
}
|
@@ -175,7 +157,16 @@ const redirectQueryMocks = [
|
|
175
157
|
|
176
158
|
function createClient(mocks) {
|
177
159
|
return new ApolloClient({
|
178
|
-
cache: new InMemoryCache({
|
160
|
+
cache: new InMemoryCache({
|
161
|
+
addTypename: true,
|
162
|
+
fragmentMatcher: new IntrospectionFragmentMatcher({
|
163
|
+
introspectionQueryResultData: {
|
164
|
+
__schema: {
|
165
|
+
types: fragmentTypes
|
166
|
+
}
|
167
|
+
}
|
168
|
+
})
|
169
|
+
}),
|
179
170
|
link: new MockLink(mocks)
|
180
171
|
});
|
181
172
|
}
|
@@ -308,7 +299,6 @@ describe('Single domain mode', () => {
|
|
308
299
|
expect(redirect).toBeFalsy();
|
309
300
|
expect(recommendedChannel).toBeFalsy();
|
310
301
|
});
|
311
|
-
|
312
302
|
it('Will redirect when the url is at the wrong channel and the channel is default', () => {
|
313
303
|
const cookies = new Cookies();
|
314
304
|
const { recommendedChannel, redirect } = getSelectedAndRecommendedChannel({
|
@@ -320,7 +310,6 @@ describe('Single domain mode', () => {
|
|
320
310
|
expect(redirect).toBe(true);
|
321
311
|
expect(recommendedChannel.url).toBe(selectedChannelSingleDomain.url);
|
322
312
|
});
|
323
|
-
|
324
313
|
it('Will not redirect when the redirect is disabled', () => {
|
325
314
|
const cookies = new Cookies();
|
326
315
|
const { redirect } = getSelectedAndRecommendedChannel({
|
@@ -331,7 +320,6 @@ describe('Single domain mode', () => {
|
|
331
320
|
});
|
332
321
|
expect(redirect).toBe(false);
|
333
322
|
});
|
334
|
-
|
335
323
|
it('Will not when the url is at the right channel', () => {
|
336
324
|
const cookies = new Cookies();
|
337
325
|
const { redirect } = getSelectedAndRecommendedChannel({
|
@@ -342,7 +330,6 @@ describe('Single domain mode', () => {
|
|
342
330
|
});
|
343
331
|
expect(redirect).toBe(false);
|
344
332
|
});
|
345
|
-
|
346
333
|
it('Will redirect when the url is at the wrong channel', () => {
|
347
334
|
const cookies = new Cookies();
|
348
335
|
cookies.set('channel', singleDomainChannels[2].name);
|
@@ -355,7 +342,6 @@ describe('Single domain mode', () => {
|
|
355
342
|
expect(redirect).toBe(true);
|
356
343
|
expect(recommendedChannel.url).toBe('https://flight-m2.jetshop.se/uk');
|
357
344
|
});
|
358
|
-
|
359
345
|
it('Georedirect will respect single domain mode', () => {
|
360
346
|
const cookies = new Cookies();
|
361
347
|
const { redirect, recommendedChannel } = getSelectedAndRecommendedChannel({
|
@@ -368,7 +354,6 @@ describe('Single domain mode', () => {
|
|
368
354
|
expect(redirect).toBe(true);
|
369
355
|
expect(recommendedChannel.url).toBe('https://flight-m2.jetshop.se/uk');
|
370
356
|
});
|
371
|
-
|
372
357
|
it('Georedirect will respect single domain mode when there is a domain path', async () => {
|
373
358
|
const urlToPreserve = '/accessories/orchid-peach-bag';
|
374
359
|
const cookies = new Cookies();
|
@@ -388,7 +373,6 @@ describe('Single domain mode', () => {
|
|
388
373
|
getPrimaryRoutePath,
|
389
374
|
channels
|
390
375
|
});
|
391
|
-
|
392
376
|
const redirectUrl = channelHandler.getRedirectUrl({
|
393
377
|
client,
|
394
378
|
url: selectedChannelSingleDomain.url + urlToPreserve,
|
@@ -399,7 +383,6 @@ describe('Single domain mode', () => {
|
|
399
383
|
'https://flight-m2.jetshop.se/uk/accessories/bags/orchid-peach-bag-uk?culture=sv-SE&channelCountry=UK&channel=UK'
|
400
384
|
);
|
401
385
|
});
|
402
|
-
|
403
386
|
it('Redirect on single domain mode when the basename shows up in the url', async () => {
|
404
387
|
const urlToPreserve = '/accessories/int/orchid-peach-bag';
|
405
388
|
const cookies = new Cookies();
|
@@ -418,7 +401,6 @@ describe('Single domain mode', () => {
|
|
418
401
|
getPrimaryRoutePath,
|
419
402
|
channels
|
420
403
|
});
|
421
|
-
|
422
404
|
const redirectUrl = channelHandler.getRedirectUrl({
|
423
405
|
client,
|
424
406
|
url: channels[0].url + urlToPreserve,
|
@@ -429,7 +411,6 @@ describe('Single domain mode', () => {
|
|
429
411
|
`https://flight-m2.jetshop.se/uk${urlToPreserve}?culture=sv-SE&channelCountry=UK&channel=UK`
|
430
412
|
);
|
431
413
|
});
|
432
|
-
|
433
414
|
it('Redirect on single domain mode when there is a domain path but no basename', async () => {
|
434
415
|
const urlToPreserve = '/accessories/orchid-peach-bag';
|
435
416
|
const cookies = new Cookies();
|
@@ -448,7 +429,6 @@ describe('Single domain mode', () => {
|
|
448
429
|
getPrimaryRoutePath,
|
449
430
|
channels
|
450
431
|
});
|
451
|
-
|
452
432
|
const redirectUrl = channelHandler.getRedirectUrl({
|
453
433
|
client,
|
454
434
|
url: channels[0].url + urlToPreserve,
|
@@ -459,7 +439,6 @@ describe('Single domain mode', () => {
|
|
459
439
|
`https://flight.jetshop.se/int${urlToPreserve}?culture=en-GB&channelCountry=US&channel=INT`
|
460
440
|
);
|
461
441
|
});
|
462
|
-
|
463
442
|
it('Will set the appropriate language based on basename', async () => {
|
464
443
|
const cookies = new Cookies();
|
465
444
|
const { selectedChannel } = getSelectedAndRecommendedChannel({
|
@@ -469,7 +448,6 @@ describe('Single domain mode', () => {
|
|
469
448
|
});
|
470
449
|
expect(selectedChannel.language.culture).toBe('en-GB');
|
471
450
|
});
|
472
|
-
|
473
451
|
it('Will set the appropriate language based on basename in singledomain mode', async () => {
|
474
452
|
const cookies = new Cookies();
|
475
453
|
const { selectedChannel } = getSelectedAndRecommendedChannel({
|
@@ -480,7 +458,6 @@ describe('Single domain mode', () => {
|
|
480
458
|
});
|
481
459
|
expect(selectedChannel.language.culture).toBe('en-GB');
|
482
460
|
});
|
483
|
-
|
484
461
|
it('Will redirect to a new language basename based on cookies', async () => {
|
485
462
|
const cookies = new Cookies();
|
486
463
|
cookies.set('culture', 'en-GB');
|
@@ -507,7 +484,6 @@ describe('Single domain mode', () => {
|
|
507
484
|
'https://flight-m2.jetshop.se/en/?culture=en-GB&channelCountry=SE&channel=SE'
|
508
485
|
);
|
509
486
|
});
|
510
|
-
|
511
487
|
it('Will redirect to a new language basename based on cookies in single domain mode', async () => {
|
512
488
|
const cookies = new Cookies();
|
513
489
|
cookies.set('culture', 'en-GB');
|