From 16ed433705e1855e15a3cbcfbf6c62afe0306ea8 Mon Sep 17 00:00:00 2001 From: gianantoniopini <63844628+gianantoniopini@users.noreply.github.com> Date: Fri, 22 Jan 2021 06:36:11 +0100 Subject: [PATCH] Exported LoadingScreen testId and language Storage item key in order to be used in unit tests --- src/components/router/LoadingScreen.js | 5 ++++- src/contexts/SettingsContext.js | 8 +++++--- src/pages/app/__tests__/builder.test.js | 9 +++++---- src/pages/app/__tests__/dashboard.test.js | 2 +- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/components/router/LoadingScreen.js b/src/components/router/LoadingScreen.js index 19b6ec3a..b5f9ba41 100644 --- a/src/components/router/LoadingScreen.js +++ b/src/components/router/LoadingScreen.js @@ -3,8 +3,10 @@ import React, { memo } from 'react'; import { getRandomTip } from '../../data/tips'; import Logo from '../shared/Logo'; +const dataTestId = 'loading-screen'; + const LoadingScreen = () => ( - +
@@ -17,3 +19,4 @@ const LoadingScreen = () => ( ); export default memo(LoadingScreen); +export { dataTestId }; diff --git a/src/contexts/SettingsContext.js b/src/contexts/SettingsContext.js index e17e6b1d..a3277a53 100644 --- a/src/contexts/SettingsContext.js +++ b/src/contexts/SettingsContext.js @@ -2,6 +2,8 @@ import i18next from 'i18next'; import React, { createContext, memo, useEffect, useState } from 'react'; import themeConfig from '../data/themeConfig'; +const languageStorageItemKey = 'language'; + const defaultState = { theme: 'Dark', setTheme: () => {}, @@ -18,7 +20,7 @@ const SettingsProvider = ({ children }) => { useEffect(() => { const prefTheme = localStorage.getItem('theme') || defaultState.theme; const prefLanguage = - localStorage.getItem('language') || defaultState.language; + localStorage.getItem(languageStorageItemKey) || defaultState.language; setTheme(prefTheme); setLanguage(prefLanguage); }, []); @@ -32,7 +34,7 @@ const SettingsProvider = ({ children }) => { }, [theme]); useEffect(() => { - localStorage.setItem('language', language); + localStorage.setItem(languageStorageItemKey, language); i18next.changeLanguage(language); }, [language]); @@ -54,4 +56,4 @@ export default SettingsContext; const memoizedProvider = memo(SettingsProvider); -export { memoizedProvider as SettingsProvider }; +export { memoizedProvider as SettingsProvider, languageStorageItemKey }; diff --git a/src/pages/app/__tests__/builder.test.js b/src/pages/app/__tests__/builder.test.js index d1551e62..c6f0ebd5 100644 --- a/src/pages/app/__tests__/builder.test.js +++ b/src/pages/app/__tests__/builder.test.js @@ -10,7 +10,11 @@ import { import FirebaseStub, { DatabaseConstants } from 'gatsby-plugin-firebase'; -import { SettingsProvider } from '../../../contexts/SettingsContext'; +import { dataTestId as loadingScreenTestId } from '../../../components/router/LoadingScreen'; +import { + SettingsProvider, + languageStorageItemKey, +} from '../../../contexts/SettingsContext'; import { ModalProvider } from '../../../contexts/ModalContext'; import { UserProvider } from '../../../contexts/UserContext'; import { @@ -25,7 +29,6 @@ describe('Builder', () => { let resumeId = null; let resume = null; let mockDatabaseUpdateFunction = null; - const loadingScreenTestId = 'loading-screen'; async function setup( resumeIdParameter, @@ -118,8 +121,6 @@ describe('Builder', () => { }); describe('settings', () => { - const languageStorageItemKey = 'language'; - beforeEach(async () => { await setup(DatabaseConstants.demoStateResume1Id); }); diff --git a/src/pages/app/__tests__/dashboard.test.js b/src/pages/app/__tests__/dashboard.test.js index a2ff6adf..a8e65ae5 100644 --- a/src/pages/app/__tests__/dashboard.test.js +++ b/src/pages/app/__tests__/dashboard.test.js @@ -9,6 +9,7 @@ import FirebaseStub, { DatabaseConstants } from 'gatsby-plugin-firebase'; import '../../../i18n/index'; import '../../../utils/dayjs'; +import { dataTestId as loadingScreenTestId } from '../../../components/router/LoadingScreen'; import { SettingsProvider } from '../../../contexts/SettingsContext'; import { ModalProvider } from '../../../contexts/ModalContext'; import { UserProvider } from '../../../contexts/UserContext'; @@ -20,7 +21,6 @@ import Dashboard from '../dashboard'; describe('Dashboard', () => { let resumes = null; const user = DatabaseConstants.user1; - const loadingScreenTestId = 'loading-screen'; async function setup(waitForLoadingScreenToDisappear = true) { FirebaseStub.database().initializeData();