@times-components/ts-components 1.79.0 → 1.80.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 CHANGED
@@ -3,6 +3,17 @@
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.80.0](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.79.0...@times-components/ts-components@1.80.0) (2023-09-15)
7
+
8
+
9
+ ### Features
10
+
11
+ * **TMRX-1300:** Mock fetch in tests ([#3532](https://github.com/newsuk/times-components/issues/3532)) ([5dbef7f](https://github.com/newsuk/times-components/commit/5dbef7fe7c7edebe69bfc20bbd7b966a4761c646))
12
+
13
+
14
+
15
+
16
+
6
17
  # [1.79.0](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.78.0...@times-components/ts-components@1.79.0) (2023-09-13)
7
18
 
8
19
 
@@ -1,8 +1,10 @@
1
1
  import React from 'react';
2
- import { render } from '@testing-library/react';
2
+ import { render, waitFor } from '@testing-library/react';
3
3
  import '@testing-library/jest-dom';
4
4
  import MockDate from 'mockdate';
5
+ import { mockFetch } from '../../../test-utils/mockFetch';
5
6
  import ArticleHeader from '../ArticleHeader';
7
+ mockFetch(null);
6
8
  describe('ArticleHeader', () => {
7
9
  describe('Same calendar day during GMT', () => {
8
10
  afterEach(() => MockDate.reset());
@@ -87,5 +89,32 @@ describe('ArticleHeader', () => {
87
89
  expect(getByText('December 31')).toBeVisible();
88
90
  });
89
91
  });
92
+ describe('Article header byline', () => {
93
+ beforeEach(() => MockDate.set('2022-01-01T02:30:00+00:00'));
94
+ const updated = '2021-12-31T22:30:00+00:00';
95
+ const authorData = {
96
+ slug: 'oliver-wright',
97
+ name: 'Oliver Wright',
98
+ image: 'https://www.staging-thetimes.co.uk/imageserver/image/methode%2Ftimes%2Fstag%2Fweb%2Fbin%2Fe1ca81d9-5ef0-442e-9493-8d9705bd9d03.jpg?crop=270%2C270%2C0%2C0&resize=200',
99
+ jobTitle: 'Business Columnist'
100
+ };
101
+ it('Does not display the author details if the fetch request throws an error', async () => {
102
+ mockFetch(null);
103
+ const { queryByText, queryByRole } = render(React.createElement(ArticleHeader, { updated: updated, authorSlug: authorData.slug, description: "Analysis" }));
104
+ expect(queryByText(authorData.name)).not.toBeInTheDocument();
105
+ expect(queryByText(authorData.jobTitle)).not.toBeInTheDocument();
106
+ expect(queryByRole('img')).not.toBeInTheDocument();
107
+ });
108
+ it('Displays the author details on successful fetch', async () => {
109
+ mockFetch(authorData);
110
+ const { getByText, getByRole } = render(React.createElement(ArticleHeader, { updated: updated, authorSlug: authorData.slug, description: "Analysis" }));
111
+ await waitFor(() => {
112
+ expect(global.fetch).toHaveBeenCalledWith(`/api/author-profile/${authorData.slug}`);
113
+ });
114
+ expect(getByText(authorData.name)).toBeInTheDocument();
115
+ expect(getByText(authorData.jobTitle)).toBeInTheDocument();
116
+ expect(getByRole('img')).toHaveAttribute('src', authorData.image);
117
+ });
118
+ });
90
119
  });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aWNsZUhlYWRlci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXJ0aWNsZS1oZWFkZXIvX190ZXN0c19fL0FydGljbGVIZWFkZXIudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRCxPQUFPLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sUUFBUSxNQUFNLFVBQVUsQ0FBQztBQUVoQyxPQUFPLGFBQWEsTUFBTSxrQkFBa0IsQ0FBQztBQUU3QyxRQUFRLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtJQUM3QixRQUFRLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFO1FBQzVDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUVsQyxNQUFNLE9BQU8sR0FBRywyQkFBMkIsQ0FBQztRQUU1QyxFQUFFLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxFQUFFO1lBQ3JDLFFBQVEsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUUxQyxNQUFNLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxHQUFHLE1BQU0sQ0FDekMsb0JBQUMsYUFBYSxJQUFDLE9BQU8sRUFBRSxPQUFPLEdBQUksQ0FDcEMsQ0FBQztZQUVGLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMzQyxNQUFNLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMzRCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSxHQUFHLEVBQUU7WUFDcEMsUUFBUSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxD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
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aWNsZUhlYWRlci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXJ0aWNsZS1oZWFkZXIvX190ZXN0c19fL0FydGljbGVIZWFkZXIudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTywyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTFELE9BQU8sYUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBRTdDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUVoQixRQUFRLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtJQUM3QixRQUFRLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFO1FBQzVDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUVsQyxNQUFNLE9BQU8sR0FBRywyQkFBMkIsQ0FBQztRQUU1QyxFQUFFLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxFQUFFO1lBQ3JDLFFBQVEsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUUxQyxNQUFNLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxHQUFHLE1BQU0sQ0FDekMsb0JBQUMsYUFBYSxJQUFDLE9BQU8sRUFBRSxPQUFPLEdBQUksQ0FDcEMsQ0FBQztZQUVGLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMzQyxNQUFNLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMzRCxDQUFDLENB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
@@ -0,0 +1 @@
1
+ export declare const mockFetch: (mockResponse: any) => void;
@@ -0,0 +1,6 @@
1
+ export const mockFetch = (mockResponse) => {
2
+ global.fetch = jest.fn(() => Promise.resolve({
3
+ json: () => Promise.resolve(mockResponse)
4
+ }));
5
+ };
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja0ZldGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QtdXRpbHMvbW9ja0ZldGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLFlBQWlCLEVBQUUsRUFBRTtJQUM1QyxNQUFNLENBQUMsS0FBbUIsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUN6QyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ2QsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO0tBQzFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@times-components/ts-components",
3
- "version": "1.79.0",
3
+ "version": "1.80.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.14.1",
58
58
  "@times-components/provider": "1.39.0",
59
59
  "@times-components/provider-queries": "2.20.1",
60
- "@times-components/related-articles": "6.17.21",
60
+ "@times-components/related-articles": "6.17.22",
61
61
  "@times-components/ts-slices": "1.8.22",
62
62
  "@times-components/ts-styleguide": "1.47.0",
63
63
  "@times-components/utils": "6.16.17",
@@ -113,5 +113,5 @@
113
113
  "@testing-library/jest-dom/extend-expect"
114
114
  ]
115
115
  },
116
- "gitHead": "3706e3f5ec4e811105c886166f2b4cd72011f55d"
116
+ "gitHead": "a992c2d4152c46df0980fdb27ac70101e05c95a6"
117
117
  }
@@ -1,10 +1,13 @@
1
1
  import React from 'react';
2
- import { render } from '@testing-library/react';
2
+ import { render, waitFor } from '@testing-library/react';
3
3
  import '@testing-library/jest-dom';
4
4
  import MockDate from 'mockdate';
5
+ import { mockFetch } from '../../../test-utils/mockFetch';
5
6
 
6
7
  import ArticleHeader from '../ArticleHeader';
7
8
 
9
+ mockFetch(null);
10
+
8
11
  describe('ArticleHeader', () => {
9
12
  describe('Same calendar day during GMT', () => {
10
13
  afterEach(() => MockDate.reset());
@@ -144,4 +147,54 @@ describe('ArticleHeader', () => {
144
147
  expect(getByText('December 31')).toBeVisible();
145
148
  });
146
149
  });
150
+
151
+ describe('Article header byline', () => {
152
+ beforeEach(() => MockDate.set('2022-01-01T02:30:00+00:00'));
153
+
154
+ const updated = '2021-12-31T22:30:00+00:00';
155
+ const authorData = {
156
+ slug: 'oliver-wright',
157
+ name: 'Oliver Wright',
158
+ image:
159
+ 'https://www.staging-thetimes.co.uk/imageserver/image/methode%2Ftimes%2Fstag%2Fweb%2Fbin%2Fe1ca81d9-5ef0-442e-9493-8d9705bd9d03.jpg?crop=270%2C270%2C0%2C0&resize=200',
160
+ jobTitle: 'Business Columnist'
161
+ };
162
+
163
+ it('Does not display the author details if the fetch request throws an error', async () => {
164
+ mockFetch(null);
165
+
166
+ const { queryByText, queryByRole } = render(
167
+ <ArticleHeader
168
+ updated={updated}
169
+ authorSlug={authorData.slug}
170
+ description="Analysis"
171
+ />
172
+ );
173
+
174
+ expect(queryByText(authorData.name)).not.toBeInTheDocument();
175
+ expect(queryByText(authorData.jobTitle)).not.toBeInTheDocument();
176
+ expect(queryByRole('img')).not.toBeInTheDocument();
177
+ });
178
+
179
+ it('Displays the author details on successful fetch', async () => {
180
+ mockFetch(authorData);
181
+ const { getByText, getByRole } = render(
182
+ <ArticleHeader
183
+ updated={updated}
184
+ authorSlug={authorData.slug}
185
+ description="Analysis"
186
+ />
187
+ );
188
+
189
+ await waitFor(() => {
190
+ expect(global.fetch).toHaveBeenCalledWith(
191
+ `/api/author-profile/${authorData.slug}`
192
+ );
193
+ });
194
+
195
+ expect(getByText(authorData.name)).toBeInTheDocument();
196
+ expect(getByText(authorData.jobTitle)).toBeInTheDocument();
197
+ expect(getByRole('img')).toHaveAttribute('src', authorData.image);
198
+ });
199
+ });
147
200
  });
@@ -0,0 +1,7 @@
1
+ export const mockFetch = (mockResponse: any) => {
2
+ (global.fetch as jest.Mock) = jest.fn(() =>
3
+ Promise.resolve({
4
+ json: () => Promise.resolve(mockResponse)
5
+ })
6
+ );
7
+ };