From a224c1681b5ac0573a59b2a911793ae1588fa727 Mon Sep 17 00:00:00 2001
From: Jeremiah Tabb <51095001+jollyjerr@users.noreply.github.com>
Date: Thu, 29 Apr 2021 18:28:47 -0600
Subject: [PATCH] add i18next mocks to tests (#470)
---
.../web/src/components/__tests__/BackButton.test.tsx | 9 ++++++++-
.../web/src/components/__tests__/HomeButtons.test.tsx | 11 +++++++++++
.../web/src/components/__tests__/Hotlines.test.tsx | 11 +++++++++++
.../web/src/components/__tests__/Resource.test.tsx | 11 +++++++++++
4 files changed, 41 insertions(+), 1 deletion(-)
diff --git a/packages/web/src/components/__tests__/BackButton.test.tsx b/packages/web/src/components/__tests__/BackButton.test.tsx
index 7fb418d11..c5446bffa 100644
--- a/packages/web/src/components/__tests__/BackButton.test.tsx
+++ b/packages/web/src/components/__tests__/BackButton.test.tsx
@@ -1,6 +1,9 @@
import { fireEvent, render } from "@testing-library/react";
+
import BackButton from "../BackButton";
+import { I18nextProvider } from "react-i18next";
import React from "react";
+import i18n from "../../i18n";
import { useHistory } from "react-router-dom";
jest.mock("react-router-dom", () => ({
@@ -12,7 +15,11 @@ const mockUseHistory = useHistory as jest.Mock;
describe("", () => {
const setup = (overrides = {}) => {
- return render();
+ return render(
+
+
+
+ );
};
it("calls the passed action when clicked", () => {
diff --git a/packages/web/src/components/__tests__/HomeButtons.test.tsx b/packages/web/src/components/__tests__/HomeButtons.test.tsx
index 369c0fc2b..4180f8b3d 100644
--- a/packages/web/src/components/__tests__/HomeButtons.test.tsx
+++ b/packages/web/src/components/__tests__/HomeButtons.test.tsx
@@ -8,6 +8,17 @@ jest.mock("../HomeLink", () => ({
{children}
),
}));
+jest.mock("react-i18next", () => ({
+ // this mock makes sure any components using the translate hook can use it without a warning being shown
+ useTranslation: () => {
+ return {
+ t: (str: string) => str,
+ i18n: {
+ changeLanguage: () => new Promise(() => ({})),
+ },
+ };
+ },
+}));
describe("", () => {
const routerLinkTexts = routerLinkButtons.map(
diff --git a/packages/web/src/components/__tests__/Hotlines.test.tsx b/packages/web/src/components/__tests__/Hotlines.test.tsx
index ac3fcf64e..d6061732b 100644
--- a/packages/web/src/components/__tests__/Hotlines.test.tsx
+++ b/packages/web/src/components/__tests__/Hotlines.test.tsx
@@ -1,9 +1,20 @@
import Hotlines, { hotlineList } from "../Hotlines";
+
import React from "react";
import { render } from "@testing-library/react";
jest.mock("../HotlineCard", () => () => );
jest.mock("../PageBanner", () => () => null);
+jest.mock("react-i18next", () => ({
+ useTranslation: () => {
+ return {
+ t: (str: string) => str,
+ i18n: {
+ changeLanguage: () => new Promise(() => ({})),
+ },
+ };
+ },
+}));
describe("", () => {
it("renders a hotline card for each hotline", () => {
diff --git a/packages/web/src/components/__tests__/Resource.test.tsx b/packages/web/src/components/__tests__/Resource.test.tsx
index 9114a5003..04a4afca5 100644
--- a/packages/web/src/components/__tests__/Resource.test.tsx
+++ b/packages/web/src/components/__tests__/Resource.test.tsx
@@ -35,6 +35,17 @@ jest.mock("../../App.styles", () => ({
},
},
}));
+jest.mock("react-i18next", () => ({
+ // this mock makes sure any components using the translate hook can use it without a warning being shown
+ useTranslation: () => {
+ return {
+ t: (str: string) => str,
+ i18n: {
+ changeLanguage: () => new Promise(() => ({})),
+ },
+ };
+ },
+}));
const mockUseResources = useResources as jest.Mock;