From eae59ea322be31faa6fab4e41cb0375e31c0bd39 Mon Sep 17 00:00:00 2001 From: Ingrid04 Date: Thu, 28 Oct 2021 12:07:46 -0400 Subject: [PATCH 1/2] testing react --- src/components/Resources/Resources.js | 13 +++---- src/components/Resources/Resources.test.js | 42 ++++++++++++++++++++++ src/components/Toggle.js | 2 +- 3 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 src/components/Resources/Resources.test.js diff --git a/src/components/Resources/Resources.js b/src/components/Resources/Resources.js index 30f9f34..6516db3 100644 --- a/src/components/Resources/Resources.js +++ b/src/components/Resources/Resources.js @@ -15,14 +15,15 @@ return ( { ResourcesList.map(resource =>
-

{resource.name}

-

{resource.body} +

{resource.name}

+

{resource.body}

- More info + More info -
)} - + ) + } + - + ); } \ No newline at end of file diff --git a/src/components/Resources/Resources.test.js b/src/components/Resources/Resources.test.js new file mode 100644 index 0000000..175826c --- /dev/null +++ b/src/components/Resources/Resources.test.js @@ -0,0 +1,42 @@ +import { render, screen, fireEvent } from "@testing-library/react"; +import { MemoryRouter, Link } from 'react-router-dom'; +import { createMemoryHistory } from 'history'; +import SingleResource from '../SingleResource/SingleResource'; +import Resources from "./Resources"; +import Toggle from "../Toggle"; + +// test.afterEach(cleanup) + +describe("Resources Component", () => { + it('rendered toggle', () => { + const { getByTestId } = render(); + const toggle = getByTestId("toggle"); + expect(toggle).toBeTruthy(); + }); +}) + +test("resource name", () => { + render(
); + const resourceName = screen.getByTestId("name"); + expect(resourceName).toBeInTheDocument(); +}); +// screen.debug(); + +test("resource body", () => { + render(
); + const resourceBody = screen.getByTestId("body"); + expect(resourceBody).toBeInTheDocument(); +}); +test("link working", () => { + const history = createMemoryHistory(); + history.push = jest.fn(); + + const { getByText } = render( + + More info + + ); + + fireEvent.click(getByText('More info')); + expect(history.push).toHaveBeenCalledWith(`/resources/${resource.id}`); +}); \ No newline at end of file diff --git a/src/components/Toggle.js b/src/components/Toggle.js index 66d5df2..95db65a 100644 --- a/src/components/Toggle.js +++ b/src/components/Toggle.js @@ -8,7 +8,7 @@ import './Toggle.css'; export default function Toggle(){ const history = useHistory(); return ( -
+

Open Source Programs

From d3f370485fcbd4a2ff3c1b3c2ab406ae09d0baa8 Mon Sep 17 00:00:00 2001 From: Ingrid04 Date: Wed, 10 Nov 2021 13:48:59 -0500 Subject: [PATCH 2/2] testing --- package-lock.json | 17 ++++++++ package.json | 1 + src/components/Resources/Resources.test.js | 46 ++++++++++++++++------ yarn.lock | 9 ++++- 4 files changed, 59 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 98310f1..e9487ed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "@testing-library/jest-dom": "^5.14.1", "@testing-library/react": "^11.2.7", "@testing-library/user-event": "^12.8.3", + "axios": "^0.24.0", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^5.3.0", @@ -4463,6 +4464,14 @@ "node": ">=4" } }, + "node_modules/axios": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", + "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "dependencies": { + "follow-redirects": "^1.14.4" + } + }, "node_modules/axobject-query": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", @@ -25239,6 +25248,14 @@ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.3.3.tgz", "integrity": "sha512-/lqqLAmuIPi79WYfRpy2i8z+x+vxU3zX2uAm0gs1q52qTuKwolOj1P8XbufpXcsydrpKx2yGn2wzAnxCMV86QA==" }, + "axios": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", + "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "requires": { + "follow-redirects": "^1.14.4" + } + }, "axobject-query": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", diff --git a/package.json b/package.json index dc764d6..cc764da 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "@testing-library/jest-dom": "^5.14.1", "@testing-library/react": "^11.2.7", "@testing-library/user-event": "^12.8.3", + "axios": "^0.24.0", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^5.3.0", diff --git a/src/components/Resources/Resources.test.js b/src/components/Resources/Resources.test.js index 175826c..66a5d7a 100644 --- a/src/components/Resources/Resources.test.js +++ b/src/components/Resources/Resources.test.js @@ -4,6 +4,7 @@ import { createMemoryHistory } from 'history'; import SingleResource from '../SingleResource/SingleResource'; import Resources from "./Resources"; import Toggle from "../Toggle"; +import axios from "axios"; // test.afterEach(cleanup) @@ -27,16 +28,35 @@ test("resource body", () => { const resourceBody = screen.getByTestId("body"); expect(resourceBody).toBeInTheDocument(); }); -test("link working", () => { - const history = createMemoryHistory(); - history.push = jest.fn(); - - const { getByText } = render( - - More info - - ); - - fireEvent.click(getByText('More info')); - expect(history.push).toHaveBeenCalledWith(`/resources/${resource.id}`); -}); \ No newline at end of file +// test("link working", () => { +// const history = createMemoryHistory(); +// history.push = jest.fn(); + + +jest.mock('axios'); + +it('returns the first resource', async () => { + axios.get.mockResolvedValue({ + data: [ + { + userId: 1, + id: 1, + title: 'My First Album' + } + ] + }); + + const resource = await SingleResource(); + expect(resource).toHaveBeenCalledTimes('/resources/1'); +}); + + + // const { getByText } = render( + // + // More info + // + // ); + + // fireEvent.click(getByText('More info')); + // expect(history.push).toHaveBeenCalledWith(`resources/1`); +// }); \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 2415dcb..496c8c4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2598,6 +2598,13 @@ "resolved" "https://registry.npmjs.org/axe-core/-/axe-core-4.3.3.tgz" "version" "4.3.3" +"axios@^0.24.0": + "integrity" "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==" + "resolved" "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz" + "version" "0.24.0" + dependencies: + "follow-redirects" "^1.14.4" + "axobject-query@^2.2.0": "integrity" "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" "resolved" "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz" @@ -5229,7 +5236,7 @@ "inherits" "^2.0.3" "readable-stream" "^2.3.6" -"follow-redirects@^1.0.0": +"follow-redirects@^1.0.0", "follow-redirects@^1.14.4": "integrity" "sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==" "resolved" "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.4.tgz" "version" "1.14.4"