@jetshop/core 5.13.2 → 5.13.3-beta.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.
- 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');
|