From bd2823e9e88a740ed11a9221f1a24624d4733deb Mon Sep 17 00:00:00 2001 From: Antonin Cezard <acezard@gmail.com> Date: Wed, 26 Jan 2022 16:57:46 +0100 Subject: [PATCH] feat: Add WebviewProvider in BarProvider --- react/BarContextProvider/index.jsx | 5 ++++- react/BarContextProvider/index.spec.jsx | 25 +++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/react/BarContextProvider/index.jsx b/react/BarContextProvider/index.jsx index 783d3db122..2466abfb2e 100644 --- a/react/BarContextProvider/index.jsx +++ b/react/BarContextProvider/index.jsx @@ -4,6 +4,7 @@ import { BreakpointsProvider } from '../hooks/useBreakpoints' import { CozyProvider } from 'cozy-client' import { Provider } from 'react-redux' +import { WebviewIntentProvider } from 'cozy-intent' const BarContextProvider = props => { if (!props.children) return null @@ -13,7 +14,9 @@ const BarContextProvider = props => { <I18nContext.Provider value={{ f: props.f, t: props.t, lang: props.lang }} > - <BreakpointsProvider>{props.children}</BreakpointsProvider> + <BreakpointsProvider> + <WebviewIntentProvider>{props.children}</WebviewIntentProvider> + </BreakpointsProvider> </I18nContext.Provider> </CozyProvider> </Provider> diff --git a/react/BarContextProvider/index.spec.jsx b/react/BarContextProvider/index.spec.jsx index 7e52d62705..96968508e1 100644 --- a/react/BarContextProvider/index.spec.jsx +++ b/react/BarContextProvider/index.spec.jsx @@ -7,10 +7,15 @@ import CozyClient, { } from 'cozy-client' import configureStore from 'redux-mock-store' import { Provider, useStore } from 'react-redux' +import { isFlagshipApp } from 'cozy-device-helper' import BarContextProvider from '.' import I18n, { useI18n, translate } from '../I18n' +jest.mock('cozy-device-helper', () => ({ + isFlagshipApp: jest.fn() +})) + const locales = { helloworld: 'Hello World !' } const localesBar = { a: 'b' } @@ -64,4 +69,24 @@ describe('BarContextProvider', () => { ) expect(root.html()).toBe('<div>Hello World !<br>6 Jan<br>en</div>') }) + + it('should try to provide a cozy-intent context', async () => { + const client = createMockClient({}) + const mockStore = configureStore() + const store = mockStore(x => x) + mount( + <Provider store={store}> + <CozyProvider client={client}> + <I18n lang="en" dictRequire={() => locales}> + <App /> + </I18n> + </CozyProvider> + </Provider> + ) + + // Currently only the WebviewProvider should call this function in BarContext + // This is an easy way to test that the provider is working, albeit brittle + // A full test would need to mock cozy-intent, post-me and react-native + expect(isFlagshipApp).toHaveBeenCalled() + }) })