@times-components/ts-components 1.41.0 → 1.43.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/CHANGELOG.md +33 -0
- package/dist/components/recommended-articles/RecommendedArticles.d.ts +1 -1
- package/dist/components/recommended-articles/RecommendedArticles.js +16 -3
- package/dist/components/recommended-articles/RecommendedArticles.stories.d.ts +1 -5
- package/dist/components/recommended-articles/RecommendedArticles.stories.js +5 -9
- package/dist/components/recommended-articles/RecommendedFetch.d.ts +2 -1
- package/dist/components/recommended-articles/RecommendedFetch.js +18 -3
- package/dist/components/recommended-articles/__tests__/RecommendedArticles.test.js +80 -9
- package/dist/components/recommended-articles/__tests__/RecommendedFetch.test.js +9 -3
- package/dist/components/recommended-articles/helpers.d.ts +5 -0
- package/dist/components/recommended-articles/helpers.js +6 -0
- package/package.json +3 -3
- package/rnw.js +1 -1
- package/src/components/latest-from-section/__tests__/__snapshots__/LatestFromSection.test.tsx.snap +18 -15
- package/src/components/recommended-articles/RecommendedArticles.stories.tsx +4 -9
- package/src/components/recommended-articles/RecommendedArticles.tsx +24 -4
- package/src/components/recommended-articles/RecommendedFetch.tsx +33 -7
- package/src/components/recommended-articles/__tests__/RecommendedArticles.test.tsx +124 -11
- package/src/components/recommended-articles/__tests__/RecommendedFetch.test.tsx +13 -2
- package/src/components/recommended-articles/__tests__/__snapshots__/RecommendedArticles.test.tsx.snap +57 -5
- package/src/components/recommended-articles/__tests__/__snapshots__/RecommendedFetch.test.tsx.snap +3 -0
- package/src/components/recommended-articles/helpers.ts +5 -0
- package/src/types/externs.d.ts +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,39 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.43.0](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.42.0...@times-components/ts-components@1.43.0) (2022-06-16)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **TDP-1967:** recommended articles analytics ([#2983](https://github.com/newsuk/times-components/issues/2983)) ([425ddb1](https://github.com/newsuk/times-components/commit/425ddb11616ea6f0e6a491160cc64a107d6a6323))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [1.42.0](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.41.1...@times-components/ts-components@1.42.0) (2022-06-15)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* **TDP-1710:** remove react native from card ([#2987](https://github.com/newsuk/times-components/issues/2987)) ([c15a39c](https://github.com/newsuk/times-components/commit/c15a39cd20952fca8fad4dc92ccf200a9cba604d))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
## [1.41.1](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.41.0...@times-components/ts-components@1.41.1) (2022-06-14)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
### Bug Fixes
|
|
32
|
+
|
|
33
|
+
* **TDP-1942:** Recommended article - feature flag ([#2984](https://github.com/newsuk/times-components/issues/2984)) ([e04ca2b](https://github.com/newsuk/times-components/commit/e04ca2be43000afa13152064618e39255808a0e0))
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
6
39
|
# [1.41.0](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.40.0...@times-components/ts-components@1.41.0) (2022-06-08)
|
|
7
40
|
|
|
8
41
|
|
|
@@ -1,13 +1,26 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import RelatedArticles from '@times-components/related-articles';
|
|
3
3
|
import { useFetch } from '../../helpers/fetch/FetchProvider';
|
|
4
|
+
import { useTrackingContext } from '../../helpers/tracking/TrackingContextProvider';
|
|
4
5
|
import { getRelatedArticlesSlice } from './formatters';
|
|
5
|
-
export const RecommendedArticles = ({
|
|
6
|
+
export const RecommendedArticles = ({ heading, isVisible, analyticsStream }) => {
|
|
6
7
|
const { loading, error, data } = useFetch();
|
|
7
8
|
if (loading || error || data === undefined) {
|
|
8
9
|
return null;
|
|
9
10
|
}
|
|
11
|
+
const { fireAnalyticsEvent } = useTrackingContext();
|
|
12
|
+
const slice = getRelatedArticlesSlice(data.recommendations);
|
|
13
|
+
const onClickHandler = (__, article) => {
|
|
14
|
+
const found = slice.items.find(item => item.article.shortIdentifier === article.url.slice(-9));
|
|
15
|
+
if (fireAnalyticsEvent) {
|
|
16
|
+
fireAnalyticsEvent({
|
|
17
|
+
action: 'Clicked',
|
|
18
|
+
object: 'RecommendedArticles',
|
|
19
|
+
attrs: { article_parent_name: found ? found.article.headline : '' }
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
};
|
|
10
23
|
return (React.createElement("div", { id: "recommended-articles", style: { display: isVisible ? 'block' : 'none' } },
|
|
11
|
-
React.createElement(RelatedArticles, { heading:
|
|
24
|
+
React.createElement(RelatedArticles, { heading: heading, slice: slice, isVisible: true, onPress: onClickHandler, analyticsStream: analyticsStream })));
|
|
12
25
|
};
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb21tZW5kZWRBcnRpY2xlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3JlY29tbWVuZGVkLWFydGljbGVzL1JlY29tbWVuZGVkQXJ0aWNsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixPQUFPLGVBQWUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVqRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDcEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUkzQixDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFO0lBQy9DLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLFFBQVEsRUFBTyxDQUFDO0lBRWpELElBQUksT0FBTyxJQUFJLEtBQUssSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1FBQzFDLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxrQkFBa0IsRUFBRSxDQUFDO0lBRXBELE1BQU0sS0FBSyxHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUU1RCxNQUFNLGNBQWMsR0FBRyxDQUFDLEVBQWMsRUFBRSxPQUF3QixFQUFFLEVBQUU7UUFDbEUsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQzVCLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEtBQUssT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDL0QsQ0FBQztRQUVGLElBQUksa0JBQWtCLEVBQUU7WUFDdEIsa0JBQWtCLENBQUM7Z0JBQ2pCLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixNQUFNLEVBQUUscUJBQXFCO2dCQUM3QixLQUFLLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7YUFDcEUsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDLENBQUM7SUFFRixPQUFPLENBQ0wsNkJBQ0UsRUFBRSxFQUFDLHNCQUFzQixFQUN6QixLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtRQUVoRCxvQkFBQyxlQUFlLElBQ2QsT0FBTyxFQUFFLE9BQU8sRUFDaEIsS0FBSyxFQUFFLEtBQUssRUFDWixTQUFTLFFBQ1QsT0FBTyxFQUFFLGNBQWMsRUFDdkIsZUFBZSxFQUFFLGVBQWUsR0FDaEMsQ0FDRSxDQUNQLENBQUM7QUFDSixDQUFDLENBQUMifQ==
|
|
@@ -1,33 +1,29 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { showcaseConverter } from '@times-components/storybook';
|
|
3
|
+
import { getArticles } from './helpers';
|
|
3
4
|
import { FetchProvider } from '../../helpers/fetch/FetchProvider';
|
|
4
5
|
import previewData from '../../fixtures/preview-data/recommended-articles';
|
|
5
6
|
import analyticsStream from '../../fixtures/analytics-actions/analytics-actions';
|
|
6
7
|
import { RecommendedArticles } from './RecommendedArticles';
|
|
7
|
-
export const getArticles = (data, numOfArticles) => ({
|
|
8
|
-
recommendations: {
|
|
9
|
-
articles: data.recommendations.articles.slice(0, numOfArticles)
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
8
|
const recommArticles = {
|
|
13
9
|
children: [
|
|
14
10
|
{
|
|
15
11
|
component: () => (React.createElement(FetchProvider, { previewData: getArticles(previewData, 1) },
|
|
16
|
-
React.createElement(RecommendedArticles, {
|
|
12
|
+
React.createElement(RecommendedArticles, { heading: "Today's news", isVisible: true, analyticsStream: analyticsStream }))),
|
|
17
13
|
name: 'Recommended Articles - 1 Article',
|
|
18
14
|
platform: 'web',
|
|
19
15
|
type: 'story'
|
|
20
16
|
},
|
|
21
17
|
{
|
|
22
18
|
component: () => (React.createElement(FetchProvider, { previewData: getArticles(previewData, 2) },
|
|
23
|
-
React.createElement(RecommendedArticles, {
|
|
19
|
+
React.createElement(RecommendedArticles, { heading: "Today's business", isVisible: true, analyticsStream: analyticsStream }))),
|
|
24
20
|
name: 'Recommended Articles - 2 Article',
|
|
25
21
|
platform: 'web',
|
|
26
22
|
type: 'story'
|
|
27
23
|
},
|
|
28
24
|
{
|
|
29
25
|
component: () => (React.createElement(FetchProvider, { previewData: previewData },
|
|
30
|
-
React.createElement(RecommendedArticles, {
|
|
26
|
+
React.createElement(RecommendedArticles, { heading: "Today's sport", isVisible: true, analyticsStream: analyticsStream }))),
|
|
31
27
|
name: 'Recommended Articles - 3 Article',
|
|
32
28
|
platform: 'web',
|
|
33
29
|
type: 'story'
|
|
@@ -36,4 +32,4 @@ const recommArticles = {
|
|
|
36
32
|
name: 'Typescript Component/Recommended Articles'
|
|
37
33
|
};
|
|
38
34
|
showcaseConverter(module, recommArticles);
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb21tZW5kZWRBcnRpY2xlcy5zdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcmVjb21tZW5kZWQtYXJ0aWNsZXMvUmVjb21tZW5kZWRBcnRpY2xlcy5zdG9yaWVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxXQUFXLE1BQU0sa0RBQWtELENBQUM7QUFDM0UsT0FBTyxlQUFlLE1BQU0sb0RBQW9ELENBQUM7QUFFakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFNUQsTUFBTSxjQUFjLEdBQUc7SUFDckIsUUFBUSxFQUFFO1FBQ1I7WUFDRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FDZixvQkFBQyxhQUFhLElBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRCxvQkFBQyxtQkFBbUIsSUFDbEIsT0FBTyxFQUFDLGNBQWMsRUFDdEIsU0FBUyxRQUNULGVBQWUsRUFBRSxlQUFlLEdBQ2hDLENBQ1ksQ0FDakI7WUFDRCxJQUFJLEVBQUUsa0NBQWtDO1lBQ3hDLFFBQVEsRUFBRSxLQUFLO1lBQ2YsSUFBSSxFQUFFLE9BQU87U0FDZDtRQUNEO1lBQ0UsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQ2Ysb0JBQUMsYUFBYSxJQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDckQsb0JBQUMsbUJBQW1CLElBQ2xCLE9BQU8sRUFBQyxrQkFBa0IsRUFDMUIsU0FBUyxRQUNULGVBQWUsRUFBRSxlQUFlLEdBQ2hDLENBQ1ksQ0FDakI7WUFDRCxJQUFJLEVBQUUsa0NBQWtDO1lBQ3hDLFFBQVEsRUFBRSxLQUFLO1lBQ2YsSUFBSSxFQUFFLE9BQU87U0FDZDtRQUNEO1lBQ0UsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQ2Ysb0JBQUMsYUFBYSxJQUFDLFdBQVcsRUFBRSxXQUFXO2dCQUNyQyxvQkFBQyxtQkFBbUIsSUFDbEIsT0FBTyxFQUFDLGVBQWUsRUFDdkIsU0FBUyxRQUNULGVBQWUsRUFBRSxlQUFlLEdBQ2hDLENBQ1ksQ0FDakI7WUFDRCxJQUFJLEVBQUUsa0NBQWtDO1lBQ3hDLFFBQVEsRUFBRSxLQUFLO1lBQ2YsSUFBSSxFQUFFLE9BQU87U0FDZDtLQUNGO0lBQ0QsSUFBSSxFQUFFLDJDQUEyQztDQUNsRCxDQUFDO0FBRUYsaUJBQWlCLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDIn0=
|
|
@@ -1,12 +1,27 @@
|
|
|
1
1
|
import React, { useEffect, useState } from 'react';
|
|
2
2
|
import { FetchProvider } from '../../helpers/fetch/FetchProvider';
|
|
3
|
+
import { TrackingContextProvider } from '../../helpers/tracking/TrackingContextProvider';
|
|
3
4
|
import { RecommendedArticles } from './RecommendedArticles';
|
|
4
|
-
export const RecommendedFetch = ({ articleId,
|
|
5
|
+
export const RecommendedFetch = ({ articleId, articleHeadline, articleSection, isVisible, analyticsStream }) => {
|
|
5
6
|
const [isClientSide, setIsClientSide] = useState(false);
|
|
6
7
|
useEffect(() => {
|
|
7
8
|
setIsClientSide(true);
|
|
8
9
|
}, []);
|
|
10
|
+
const heading = `Today's ${articleSection}`;
|
|
9
11
|
return isClientSide ? (React.createElement(FetchProvider, { url: `/api/recommended-articles/${articleId}` },
|
|
10
|
-
React.createElement(
|
|
12
|
+
React.createElement(TrackingContextProvider, { context: {
|
|
13
|
+
object: 'RecommendedArticles',
|
|
14
|
+
attrs: {
|
|
15
|
+
event_navigation_action: 'navigation',
|
|
16
|
+
event_navigation_name: 'widget : relevant article',
|
|
17
|
+
event_navigation_browsing_method: 'click',
|
|
18
|
+
section_details: `section : ${articleSection}`,
|
|
19
|
+
article_name: articleHeadline,
|
|
20
|
+
widget_headline: heading.toLowerCase(),
|
|
21
|
+
widget_section: articleSection,
|
|
22
|
+
widget_type: "today's section"
|
|
23
|
+
}
|
|
24
|
+
} },
|
|
25
|
+
React.createElement(RecommendedArticles, { heading: heading, isVisible: isVisible, analyticsStream: analyticsStream })))) : null;
|
|
11
26
|
};
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb21tZW5kZWRGZXRjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3JlY29tbWVuZGVkLWFydGljbGVzL1JlY29tbWVuZGVkRmV0Y2gudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFNUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBTXhCLENBQUMsRUFDSixTQUFTLEVBQ1QsZUFBZSxFQUNmLGNBQWMsRUFDZCxTQUFTLEVBQ1QsZUFBZSxFQUNoQixFQUFFLEVBQUU7SUFDSCxNQUFNLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxHQUFHLFFBQVEsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUVqRSxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVQLE1BQU0sT0FBTyxHQUFHLFdBQVcsY0FBYyxFQUFFLENBQUM7SUFFNUMsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQ3BCLG9CQUFDLGFBQWEsSUFBQyxHQUFHLEVBQUUsNkJBQTZCLFNBQVMsRUFBRTtRQUMxRCxvQkFBQyx1QkFBdUIsSUFDdEIsT0FBTyxFQUFFO2dCQUNQLE1BQU0sRUFBRSxxQkFBcUI7Z0JBQzdCLEtBQUssRUFBRTtvQkFDTCx1QkFBdUIsRUFBRSxZQUFZO29CQUNyQyxxQkFBcUIsRUFBRSwyQkFBMkI7b0JBQ2xELGdDQUFnQyxFQUFFLE9BQU87b0JBQ3pDLGVBQWUsRUFBRSxhQUFhLGNBQWMsRUFBRTtvQkFDOUMsWUFBWSxFQUFFLGVBQWU7b0JBQzdCLGVBQWUsRUFBRSxPQUFPLENBQUMsV0FBVyxFQUFFO29CQUN0QyxjQUFjLEVBQUUsY0FBYztvQkFDOUIsV0FBVyxFQUFFLGlCQUFpQjtpQkFDL0I7YUFDRjtZQUVELG9CQUFDLG1CQUFtQixJQUNsQixPQUFPLEVBQUUsT0FBTyxFQUNoQixTQUFTLEVBQUUsU0FBUyxFQUNwQixlQUFlLEVBQUUsZUFBZSxHQUNoQyxDQUNzQixDQUNaLENBQ2pCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNYLENBQUMsQ0FBQyJ9
|
|
@@ -1,29 +1,100 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import
|
|
2
|
+
import mockDate from 'mockdate';
|
|
3
|
+
import { render, cleanup, fireEvent } from '@testing-library/react';
|
|
4
|
+
import { getArticles } from '../helpers';
|
|
3
5
|
import { useFetch } from '../../../helpers/fetch/FetchProvider';
|
|
6
|
+
import { TrackingContextProvider } from '../../../helpers/tracking/TrackingContextProvider';
|
|
4
7
|
import previewData from '../../../fixtures/preview-data/recommended-articles';
|
|
5
8
|
import { RecommendedArticles } from '../RecommendedArticles';
|
|
6
|
-
jest.mock('@times-components/related-articles', () => 'RelatedArticles');
|
|
7
9
|
jest.mock('../../../helpers/fetch/FetchProvider', () => ({
|
|
8
10
|
useFetch: jest.fn()
|
|
9
11
|
}));
|
|
12
|
+
jest.mock('@times-components/related-articles', () => ({
|
|
13
|
+
__esModule: true,
|
|
14
|
+
default: (props) => (React.createElement("div", null,
|
|
15
|
+
"RelatedArticles",
|
|
16
|
+
React.createElement("div", null, props.heading),
|
|
17
|
+
props.slice.items.map(({ article }) => (React.createElement("div", { onClick: () => props.onPress(null, { url: article.shortIdentifier }) }, article.headline)))))
|
|
18
|
+
}));
|
|
19
|
+
const articles = previewData.recommendations.articles;
|
|
20
|
+
const section = 'news';
|
|
21
|
+
const heading = `Today's ${section}`;
|
|
22
|
+
const initialContext = {
|
|
23
|
+
object: 'RecommendedArticles',
|
|
24
|
+
attrs: {
|
|
25
|
+
event_navigation_action: 'navigation',
|
|
26
|
+
event_navigation_name: 'widget : relevant article',
|
|
27
|
+
event_navigation_browsing_method: 'click',
|
|
28
|
+
section_details: `section : ${section}`,
|
|
29
|
+
article_name: 'Headline',
|
|
30
|
+
widget_headline: heading.toLowerCase(),
|
|
31
|
+
widget_section: section,
|
|
32
|
+
widget_type: "today's section"
|
|
33
|
+
}
|
|
34
|
+
};
|
|
10
35
|
describe('<RecommendedArticles>', () => {
|
|
36
|
+
beforeEach(() => {
|
|
37
|
+
mockDate.set(1620000000000);
|
|
38
|
+
});
|
|
39
|
+
afterEach(() => {
|
|
40
|
+
mockDate.reset();
|
|
41
|
+
jest.clearAllMocks();
|
|
42
|
+
cleanup();
|
|
43
|
+
});
|
|
11
44
|
it('should render the initial loading state correctly', () => {
|
|
12
45
|
useFetch.mockReturnValue({ loading: true });
|
|
13
|
-
const { asFragment } = render(React.createElement(RecommendedArticles, {
|
|
46
|
+
const { asFragment } = render(React.createElement(RecommendedArticles, { heading: heading, analyticsStream: () => ({}) }));
|
|
14
47
|
expect(asFragment().firstChild).toBeNull();
|
|
15
48
|
});
|
|
16
49
|
it('should render the error state correctly', () => {
|
|
17
50
|
useFetch.mockReturnValue({ error: 'Some error occurred' });
|
|
18
|
-
const { asFragment } = render(React.createElement(RecommendedArticles, {
|
|
51
|
+
const { asFragment } = render(React.createElement(RecommendedArticles, { heading: heading, analyticsStream: () => ({}) }));
|
|
19
52
|
expect(asFragment().firstChild).toBeNull();
|
|
20
53
|
});
|
|
21
|
-
it('should render RelatedArticles correctly', () => {
|
|
54
|
+
it('should render RelatedArticles correctly with 1 article', () => {
|
|
55
|
+
useFetch.mockReturnValue({
|
|
56
|
+
data: getArticles(previewData, 1)
|
|
57
|
+
});
|
|
58
|
+
const { asFragment, getByText } = render(React.createElement(RecommendedArticles, { heading: heading, isVisible: true, analyticsStream: () => ({}) }));
|
|
59
|
+
expect(getByText(heading));
|
|
60
|
+
expect(getByText(articles[0].headline));
|
|
61
|
+
expect(asFragment()).toMatchSnapshot();
|
|
62
|
+
});
|
|
63
|
+
it('should render RelatedArticles correctly with 2 articles', () => {
|
|
64
|
+
useFetch.mockReturnValue({
|
|
65
|
+
data: getArticles(previewData, 2)
|
|
66
|
+
});
|
|
67
|
+
const { asFragment, getByText } = render(React.createElement(RecommendedArticles, { heading: heading, analyticsStream: () => ({}) }));
|
|
68
|
+
expect(getByText(heading));
|
|
69
|
+
expect(getByText(articles[0].headline));
|
|
70
|
+
expect(getByText(articles[1].headline));
|
|
71
|
+
expect(asFragment()).toMatchSnapshot();
|
|
72
|
+
});
|
|
73
|
+
it('should render RelatedArticles correctly with 3 articles', () => {
|
|
22
74
|
useFetch.mockReturnValue({ data: previewData });
|
|
23
|
-
const {
|
|
24
|
-
|
|
25
|
-
expect(
|
|
75
|
+
const { asFragment, getByText } = render(React.createElement(RecommendedArticles, { heading: heading, isVisible: true, analyticsStream: () => ({}) }));
|
|
76
|
+
expect(getByText(heading));
|
|
77
|
+
expect(getByText(articles[0].headline));
|
|
78
|
+
expect(getByText(articles[1].headline));
|
|
79
|
+
expect(getByText(articles[2].headline));
|
|
26
80
|
expect(asFragment()).toMatchSnapshot();
|
|
27
81
|
});
|
|
82
|
+
it('should fire analytics event when an article is clicked', () => {
|
|
83
|
+
const analyticsStream = jest.fn();
|
|
84
|
+
useFetch.mockReturnValue({ data: previewData });
|
|
85
|
+
const { getByText } = render(React.createElement(TrackingContextProvider, { context: initialContext, analyticsStream: analyticsStream },
|
|
86
|
+
React.createElement(RecommendedArticles, { heading: heading, isVisible: true, analyticsStream: () => ({}) })));
|
|
87
|
+
fireEvent.click(getByText(articles[0].headline));
|
|
88
|
+
expect(analyticsStream).toHaveBeenCalledTimes(1);
|
|
89
|
+
expect(analyticsStream).toHaveBeenCalledWith({
|
|
90
|
+
action: 'Clicked',
|
|
91
|
+
object: 'RecommendedArticles',
|
|
92
|
+
attrs: {
|
|
93
|
+
...initialContext.attrs,
|
|
94
|
+
eventTime: '2021-05-03T00:00:00.000Z',
|
|
95
|
+
article_parent_name: articles[0].headline
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
});
|
|
28
99
|
});
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb21tZW5kZWRBcnRpY2xlcy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcmVjb21tZW5kZWQtYXJ0aWNsZXMvX190ZXN0c19fL1JlY29tbWVuZGVkQXJ0aWNsZXMudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sUUFBUSxNQUFNLFVBQVUsQ0FBQztBQUNoQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM1RixPQUFPLFdBQVcsTUFBTSxxREFBcUQsQ0FBQztBQUU5RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU3RCxJQUFJLENBQUMsSUFBSSxDQUFDLHNDQUFzQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDdkQsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7Q0FDcEIsQ0FBQyxDQUFDLENBQUM7QUFFSixJQUFJLENBQUMsSUFBSSxDQUFDLG9DQUFvQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDckQsVUFBVSxFQUFFLElBQUk7SUFDaEIsT0FBTyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxDQUN2Qjs7UUFFRSxpQ0FBTSxLQUFLLENBQUMsT0FBTyxDQUFPO1FBQ3pCLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFPLEVBQUUsRUFBRSxDQUFDLENBQzNDLDZCQUNFLE9BQU8sRUFBRSxHQUFH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
|
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { render } from '@testing-library/react';
|
|
3
3
|
import { RecommendedFetch } from '../RecommendedFetch';
|
|
4
|
+
jest.mock('../RecommendedArticles', () => ({
|
|
5
|
+
RecommendedArticles: () => React.createElement("div", null, "RecommendedArticles")
|
|
6
|
+
}));
|
|
4
7
|
jest.mock('../../../helpers/fetch/FetchProvider', () => ({
|
|
5
|
-
FetchProvider: () => React.createElement("div", null,
|
|
8
|
+
FetchProvider: (props) => (React.createElement("div", null,
|
|
9
|
+
"FetchProvider",
|
|
10
|
+
props.children))
|
|
6
11
|
}));
|
|
7
12
|
describe('<RecommendedFetch>', () => {
|
|
8
13
|
it('should render correctly', () => {
|
|
9
|
-
const { asFragment, getByText } = render(React.createElement(RecommendedFetch, { articleId: "1234",
|
|
14
|
+
const { asFragment, getByText } = render(React.createElement(RecommendedFetch, { articleId: "1234", articleHeadline: "Some headline", articleSection: "News", analyticsStream: () => ({}) }));
|
|
10
15
|
expect(getByText('FetchProvider'));
|
|
16
|
+
expect(getByText('RecommendedArticles'));
|
|
11
17
|
expect(asFragment()).toMatchSnapshot();
|
|
12
18
|
});
|
|
13
19
|
});
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb21tZW5kZWRGZXRjaC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcmVjb21tZW5kZWQtYXJ0aWNsZXMvX190ZXN0c19fL1JlY29tbWVuZGVkRmV0Y2gudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDekMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFLENBQUMsdURBQThCO0NBQzFELENBQUMsQ0FBQyxDQUFDO0FBRUosSUFBSSxDQUFDLElBQUksQ0FBQyxzQ0FBc0MsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELGFBQWEsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsQ0FDN0I7O1FBRUcsS0FBSyxDQUFDLFFBQVEsQ0FDWCxDQUNQO0NBQ0YsQ0FBQyxDQUFDLENBQUM7QUFFSixRQUFRLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFO0lBQ2xDLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLEVBQUU7UUFDakMsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQ3RDLG9CQUFDLGdCQUFnQixJQUNmLFNBQVMsRUFBQyxNQUFNLEVBQ2hCLGVBQWUsRUFBQyxlQUFlLEVBQy9CLGNBQWMsRUFBQyxNQUFNLEVBQ3JCLGVBQWUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUMzQixDQUNILENBQUM7UUFFRixNQUFNLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDbkMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7UUFDekMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export const getArticles = (data, numOfArticles) => ({
|
|
2
|
+
recommendations: {
|
|
3
|
+
articles: data.recommendations.articles.slice(0, numOfArticles)
|
|
4
|
+
}
|
|
5
|
+
});
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3JlY29tbWVuZGVkLWFydGljbGVzL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBUyxFQUFFLGFBQXFCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDaEUsZUFBZSxFQUFFO1FBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDO0tBQ2hFO0NBQ0YsQ0FBQyxDQUFDIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@times-components/ts-components",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.43.0",
|
|
4
4
|
"description": "Reuseable Typescript React Components",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"dev": "dist/index.js",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"@times-components/link": "3.10.5",
|
|
58
58
|
"@times-components/provider": "1.32.0",
|
|
59
59
|
"@times-components/provider-queries": "2.17.0",
|
|
60
|
-
"@times-components/related-articles": "6.8.
|
|
60
|
+
"@times-components/related-articles": "6.8.26",
|
|
61
61
|
"@times-components/ts-slices": "1.3.24",
|
|
62
62
|
"@times-components/ts-styleguide": "1.36.2",
|
|
63
63
|
"@times-components/utils": "6.12.1",
|
|
@@ -119,5 +119,5 @@
|
|
|
119
119
|
"@testing-library/jest-dom/extend-expect"
|
|
120
120
|
]
|
|
121
121
|
},
|
|
122
|
-
"gitHead": "
|
|
122
|
+
"gitHead": "98f211815592e40ad990676564a3136b48b79bf7"
|
|
123
123
|
}
|