@oanda/labs-value-at-risk-widget 1.0.63 → 1.0.65

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.
Files changed (41) hide show
  1. package/CHANGELOG.md +524 -0
  2. package/dist/main/ValueAtRiskWidget/ChartWithData.js +2 -4
  3. package/dist/main/ValueAtRiskWidget/ChartWithData.js.map +1 -1
  4. package/dist/main/ValueAtRiskWidget/Tool.js +1 -1
  5. package/dist/main/ValueAtRiskWidget/Tool.js.map +1 -1
  6. package/dist/main/ValueAtRiskWidget/ToolWithData.js +2 -4
  7. package/dist/main/ValueAtRiskWidget/ToolWithData.js.map +1 -1
  8. package/dist/main/ValueAtRiskWidget/ValueAtRiskWidget.js +16 -21
  9. package/dist/main/ValueAtRiskWidget/ValueAtRiskWidget.js.map +1 -1
  10. package/dist/main/ValueAtRiskWidget/Widget.js +2 -4
  11. package/dist/main/ValueAtRiskWidget/Widget.js.map +1 -1
  12. package/dist/main/ValueAtRiskWidget/components/Chart/Chart.js +3 -3
  13. package/dist/main/ValueAtRiskWidget/components/Chart/Chart.js.map +1 -1
  14. package/dist/main/ValueAtRiskWidget/components/Legend/Legend.js +3 -4
  15. package/dist/main/ValueAtRiskWidget/components/Legend/Legend.js.map +1 -1
  16. package/dist/module/ValueAtRiskWidget/ChartWithData.js +3 -3
  17. package/dist/module/ValueAtRiskWidget/ChartWithData.js.map +1 -1
  18. package/dist/module/ValueAtRiskWidget/Tool.js +3 -3
  19. package/dist/module/ValueAtRiskWidget/Tool.js.map +1 -1
  20. package/dist/module/ValueAtRiskWidget/ToolWithData.js +3 -3
  21. package/dist/module/ValueAtRiskWidget/ToolWithData.js.map +1 -1
  22. package/dist/module/ValueAtRiskWidget/ValueAtRiskWidget.js +18 -23
  23. package/dist/module/ValueAtRiskWidget/ValueAtRiskWidget.js.map +1 -1
  24. package/dist/module/ValueAtRiskWidget/Widget.js +3 -3
  25. package/dist/module/ValueAtRiskWidget/Widget.js.map +1 -1
  26. package/dist/module/ValueAtRiskWidget/components/Chart/Chart.js +3 -3
  27. package/dist/module/ValueAtRiskWidget/components/Chart/Chart.js.map +1 -1
  28. package/dist/module/ValueAtRiskWidget/components/Legend/Legend.js +3 -3
  29. package/dist/module/ValueAtRiskWidget/components/Legend/Legend.js.map +1 -1
  30. package/package.json +3 -3
  31. package/src/ValueAtRiskWidget/ChartWithData.tsx +3 -3
  32. package/src/ValueAtRiskWidget/Tool.tsx +3 -3
  33. package/src/ValueAtRiskWidget/ToolWithData.tsx +3 -3
  34. package/src/ValueAtRiskWidget/ValueAtRiskWidget.tsx +26 -31
  35. package/src/ValueAtRiskWidget/Widget.tsx +3 -3
  36. package/src/ValueAtRiskWidget/components/Chart/Chart.tsx +3 -3
  37. package/src/ValueAtRiskWidget/components/Legend/Legend.tsx +3 -3
  38. package/test/ChartWithData.test.tsx +7 -7
  39. package/test/Tool.test.tsx +5 -5
  40. package/test/ToolWithData.test.tsx +3 -3
  41. package/test/Widget.test.tsx +3 -3
@@ -1,5 +1,5 @@
1
- import React, { useContext } from 'react';
2
- import { Size, ThemeContext } from '@oanda/labs-widget-common';
1
+ import React from 'react';
2
+ import { Size, useLayoutProvider } from '@oanda/labs-widget-common';
3
3
  import { useLocale } from '@oanda/mono-i18n';
4
4
  import { DataNames } from './types';
5
5
  import { DesktopLegend } from './DesktopLegend';
@@ -11,7 +11,7 @@ const Legend = _ref => {
11
11
  const {
12
12
  size,
13
13
  isDark
14
- } = useContext(ThemeContext);
14
+ } = useLayoutProvider();
15
15
  const {
16
16
  lang
17
17
  } = useLocale();
@@ -1 +1 @@
1
- {"version":3,"file":"Legend.js","names":["React","useContext","Size","ThemeContext","useLocale","DataNames","DesktopLegend","MobileLegend","Legend","_ref","data","size","isDark","lang","isDesktop","DESKTOP","createElement","Fragment","id","AVERAGE","label","value","valueAtRiskChart","down","average","MEDIAN","median","THRESHOLD","threshold","MIN","max","up","MAX","valueDown","valueUp"],"sources":["../../../../../src/ValueAtRiskWidget/components/Legend/Legend.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport {\n Size,\n ThemeContext,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport {\n DataNames, LegendProps,\n} from './types';\nimport { DesktopLegend } from './DesktopLegend';\nimport { MobileLegend } from './MobileLegend';\n\nconst Legend = ({ data }: LegendProps) => {\n const { size, isDark } = useContext(ThemeContext);\n const { lang } = useLocale();\n const isDesktop = size === Size.DESKTOP;\n\n return (\n <>\n {isDesktop ? (\n <>\n <DesktopLegend\n isDark={isDark}\n lang={lang}\n data={[\n {\n id: DataNames.AVERAGE,\n label: lang('average'),\n value: data.valueAtRiskChart!.down.average,\n },\n {\n id: DataNames.MEDIAN,\n label: lang('median'),\n value: data.valueAtRiskChart!.down.median,\n },\n {\n id: DataNames.THRESHOLD,\n label: `${lang('threshold')} (95%)`,\n value: data.valueAtRiskChart!.down.threshold,\n },\n {\n id: DataNames.MIN,\n label: lang('min'),\n value: data.valueAtRiskChart!.down.max,\n },\n ]}\n />\n <DesktopLegend\n isDark={isDark}\n lang={lang}\n data={[\n {\n id: DataNames.AVERAGE,\n label: lang('average'),\n value: data.valueAtRiskChart!.up.average,\n },\n {\n id: DataNames.MEDIAN,\n label: lang('median'),\n value: data.valueAtRiskChart!.up.median,\n },\n {\n id: DataNames.THRESHOLD,\n label: `${lang('threshold')} (95%)`,\n value: data.valueAtRiskChart!.up.threshold,\n },\n {\n id: DataNames.MAX,\n label: lang('max'),\n value: data.valueAtRiskChart!.up.max,\n },\n ]}\n />\n </>\n ) : (\n <MobileLegend\n isDark={isDark}\n lang={lang}\n data={[\n {\n id: DataNames.AVERAGE,\n label: lang('average'),\n valueDown: data.valueAtRiskChart!.down.average,\n valueUp: data.valueAtRiskChart!.up.average,\n },\n {\n id: DataNames.MEDIAN,\n label: lang('median'),\n valueDown: data.valueAtRiskChart!.down.median,\n valueUp: data.valueAtRiskChart!.up.median,\n },\n {\n id: DataNames.THRESHOLD,\n label: `${lang('threshold')} (95%)`,\n valueDown: data.valueAtRiskChart!.down.threshold,\n valueUp: data.valueAtRiskChart!.up.threshold,\n },\n {\n id: DataNames.MAX,\n label: `${lang('min')}/${lang('max')}`,\n valueDown: data.valueAtRiskChart!.down.max,\n valueUp: data.valueAtRiskChart!.up.max,\n },\n ]}\n />\n )}\n </>\n );\n};\n\nexport { Legend };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Legend.js","names":["React","Size","useLayoutProvider","useLocale","DataNames","DesktopLegend","MobileLegend","Legend","_ref","data","size","isDark","lang","isDesktop","DESKTOP","createElement","Fragment","id","AVERAGE","label","value","valueAtRiskChart","down","average","MEDIAN","median","THRESHOLD","threshold","MIN","max","up","MAX","valueDown","valueUp"],"sources":["../../../../../src/ValueAtRiskWidget/components/Legend/Legend.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Size,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport {\n DataNames, LegendProps,\n} from './types';\nimport { DesktopLegend } from './DesktopLegend';\nimport { MobileLegend } from './MobileLegend';\n\nconst Legend = ({ data }: LegendProps) => {\n const { size, isDark } = useLayoutProvider();\n const { lang } = useLocale();\n const isDesktop = size === Size.DESKTOP;\n\n return (\n <>\n {isDesktop ? (\n <>\n <DesktopLegend\n isDark={isDark}\n lang={lang}\n data={[\n {\n id: DataNames.AVERAGE,\n label: lang('average'),\n value: data.valueAtRiskChart!.down.average,\n },\n {\n id: DataNames.MEDIAN,\n label: lang('median'),\n value: data.valueAtRiskChart!.down.median,\n },\n {\n id: DataNames.THRESHOLD,\n label: `${lang('threshold')} (95%)`,\n value: data.valueAtRiskChart!.down.threshold,\n },\n {\n id: DataNames.MIN,\n label: lang('min'),\n value: data.valueAtRiskChart!.down.max,\n },\n ]}\n />\n <DesktopLegend\n isDark={isDark}\n lang={lang}\n data={[\n {\n id: DataNames.AVERAGE,\n label: lang('average'),\n value: data.valueAtRiskChart!.up.average,\n },\n {\n id: DataNames.MEDIAN,\n label: lang('median'),\n value: data.valueAtRiskChart!.up.median,\n },\n {\n id: DataNames.THRESHOLD,\n label: `${lang('threshold')} (95%)`,\n value: data.valueAtRiskChart!.up.threshold,\n },\n {\n id: DataNames.MAX,\n label: lang('max'),\n value: data.valueAtRiskChart!.up.max,\n },\n ]}\n />\n </>\n ) : (\n <MobileLegend\n isDark={isDark}\n lang={lang}\n data={[\n {\n id: DataNames.AVERAGE,\n label: lang('average'),\n valueDown: data.valueAtRiskChart!.down.average,\n valueUp: data.valueAtRiskChart!.up.average,\n },\n {\n id: DataNames.MEDIAN,\n label: lang('median'),\n valueDown: data.valueAtRiskChart!.down.median,\n valueUp: data.valueAtRiskChart!.up.median,\n },\n {\n id: DataNames.THRESHOLD,\n label: `${lang('threshold')} (95%)`,\n valueDown: data.valueAtRiskChart!.down.threshold,\n valueUp: data.valueAtRiskChart!.up.threshold,\n },\n {\n id: DataNames.MAX,\n label: `${lang('min')}/${lang('max')}`,\n valueDown: data.valueAtRiskChart!.down.max,\n valueUp: data.valueAtRiskChart!.up.max,\n },\n ]}\n />\n )}\n </>\n );\n};\n\nexport { Legend };\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oanda/labs-value-at-risk-widget",
3
- "version": "1.0.63",
3
+ "version": "1.0.65",
4
4
  "description": "Labs Value At Risk Widget",
5
5
  "main": "dist/main/index.js",
6
6
  "module": "dist/module/index.js",
@@ -12,7 +12,7 @@
12
12
  "author": "OANDA",
13
13
  "license": "UNLICENSED",
14
14
  "dependencies": {
15
- "@oanda/labs-widget-common": "^1.0.171",
15
+ "@oanda/labs-widget-common": "^1.0.173",
16
16
  "@oanda/mono-i18n": "10.0.1",
17
17
  "echarts": "5.5.0",
18
18
  "echarts-for-react": "3.0.2",
@@ -23,5 +23,5 @@
23
23
  "@graphql-codegen/client-preset": "4.1.0",
24
24
  "@graphql-codegen/typescript": "4.0.1"
25
25
  },
26
- "gitHead": "f978676624ce706f807cbecc432c67ed809dbf48"
26
+ "gitHead": "67a7801f99f0bab94dd6067a102761f51de786c1"
27
27
  }
@@ -1,9 +1,9 @@
1
- import React, { useContext } from 'react';
1
+ import React from 'react';
2
2
  import classnames from 'classnames';
3
3
  import { useQuery } from '@apollo/client';
4
4
  import {
5
5
  ChartError, Size, Spinner, SpinnerSize,
6
- ThemeContext,
6
+ useLayoutProvider,
7
7
  } from '@oanda/labs-widget-common';
8
8
  import { Chart } from './components/Chart';
9
9
  import { getValueAtRiskChart } from '../gql/getValueAtRiskChart';
@@ -14,7 +14,7 @@ import { Legend } from './components/Legend';
14
14
  const ChartWithData = ({
15
15
  instrument, duration, bars, division,
16
16
  }: ChartWithDataProps) => {
17
- const { size } = useContext(ThemeContext);
17
+ const { size } = useLayoutProvider();
18
18
  const isDesktop = size === Size.DESKTOP;
19
19
 
20
20
  const { loading, data, error } = useQuery<
@@ -1,7 +1,7 @@
1
- import React, { useState, useContext } from 'react';
1
+ import React, { useState } from 'react';
2
2
  import classnames from 'classnames';
3
3
  import {
4
- Select, SelectOption, Size, ThemeContext,
4
+ Select, SelectOption, Size, useLayoutProvider,
5
5
  } from '@oanda/labs-widget-common';
6
6
  import { useLocale } from '@oanda/mono-i18n';
7
7
  import { getAssetClassesList, getInstrumentsByAssetClassId } from './utils';
@@ -11,7 +11,7 @@ import { ChartWithData } from './ChartWithData';
11
11
 
12
12
  const Tool = ({ data, division }: ToolProps) => {
13
13
  const { lang } = useLocale();
14
- const { size } = useContext(ThemeContext);
14
+ const { size } = useLayoutProvider();
15
15
  const isDesktop = size === Size.DESKTOP;
16
16
 
17
17
  const assetClassesOptions = getAssetClassesList(data!.valueAtRiskAssetClasses!);
@@ -1,7 +1,7 @@
1
- import React, { useContext } from 'react';
1
+ import React from 'react';
2
2
  import classnames from 'classnames';
3
3
  import {
4
- ChartError, Size, Spinner, SpinnerSize, ThemeContext,
4
+ ChartError, Size, Spinner, SpinnerSize, useLayoutProvider,
5
5
  } from '@oanda/labs-widget-common';
6
6
  import { useQuery } from '@apollo/client';
7
7
  import { getValueAtRiskAssetClasses } from '../gql/getValueAtRiskAssetClasses';
@@ -10,7 +10,7 @@ import { ToolWithDataProps } from './types';
10
10
  import { GetValueAtRiskAssetClassesQuery, GetValueAtRiskAssetClassesQueryVariables } from '../gql/types/graphql';
11
11
 
12
12
  const ToolWithData = ({ division }: ToolWithDataProps) => {
13
- const { size } = useContext(ThemeContext);
13
+ const { size } = useLayoutProvider();
14
14
  const isDesktop = size === Size.DESKTOP;
15
15
  const { loading, data, error } = useQuery<
16
16
  GetValueAtRiskAssetClassesQuery,
@@ -1,10 +1,7 @@
1
1
  import React from 'react';
2
- import { LocaleProvider } from '@oanda/mono-i18n';
3
- import { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';
4
- import {
5
- ChartError, ThemeProvider, getLocale,
6
- renderComponent,
7
- } from '@oanda/labs-widget-common';
2
+ import { ApolloClient, InMemoryCache } from '@apollo/client';
3
+ import { WidgetProvider, WidgetWrapper } from '@oanda/labs-widget-common';
4
+
8
5
  import { ValueAtRiskConfig } from './types';
9
6
  import { translations } from '../translations';
10
7
  import { ToolWithData } from './ToolWithData';
@@ -28,31 +25,29 @@ const ValueAtRiskWidget = ({
28
25
  const isWidget = !!instrument && !!duration && !!bars;
29
26
 
30
27
  return (
31
- <ThemeProvider theme={theme}>
32
- <LocaleProvider locale={getLocale(locale)} translations={translations}>
33
- <ApolloProvider client={client}>
34
- {isParamError && (
35
- <div className="lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary">
36
- <ChartError />
37
- </div>
38
- )}
39
-
40
- { !isParamError && renderComponent({
41
- logoLink,
42
- linkArea: 'logo',
43
- Component: isWidget ? (
44
- <Widget
45
- division={division}
46
- instrument={instrument}
47
- duration={duration}
48
- bars={bars}
49
- />
50
- ) : <ToolWithData division={division} />,
51
- }) }
52
-
53
- </ApolloProvider>
54
- </LocaleProvider>
55
- </ThemeProvider>
28
+ <WidgetProvider
29
+ locale={locale}
30
+ translations={translations}
31
+ client={client}
32
+ theme={theme}
33
+ >
34
+ <WidgetWrapper
35
+ logoLink={logoLink}
36
+ linkArea="logo"
37
+ isParamError={isParamError}
38
+ >
39
+ {
40
+ isWidget ? (
41
+ <Widget
42
+ division={division}
43
+ instrument={instrument}
44
+ duration={duration}
45
+ bars={bars}
46
+ />
47
+ ) : <ToolWithData division={division} />
48
+ }
49
+ </WidgetWrapper>
50
+ </WidgetProvider>
56
51
  );
57
52
  };
58
53
 
@@ -1,6 +1,6 @@
1
- import React, { useContext } from 'react';
1
+ import React from 'react';
2
2
  import classnames from 'classnames';
3
- import { Size, ThemeContext } from '@oanda/labs-widget-common';
3
+ import { Size, useLayoutProvider } from '@oanda/labs-widget-common';
4
4
  import { useLocale } from '@oanda/mono-i18n';
5
5
  import { WidgetProps } from './types';
6
6
  import { ChartWithData } from './ChartWithData';
@@ -12,7 +12,7 @@ const Widget = ({
12
12
  bars,
13
13
  }: WidgetProps) => {
14
14
  const { lang } = useLocale();
15
- const { size } = useContext(ThemeContext);
15
+ const { size } = useLayoutProvider();
16
16
  const isDesktop = size === Size.DESKTOP;
17
17
 
18
18
  return (
@@ -1,4 +1,4 @@
1
- import React, { useContext } from 'react';
1
+ import React from 'react';
2
2
  import ReactEChartsCore from 'echarts-for-react/lib/core';
3
3
  import * as echarts from 'echarts/core';
4
4
  import { LineChart, CustomChart } from 'echarts/charts';
@@ -17,7 +17,7 @@ import { useLocale } from '@oanda/mono-i18n';
17
17
  import {
18
18
  Size,
19
19
  Theme,
20
- ThemeContext,
20
+ useLayoutProvider,
21
21
  getChartTheme,
22
22
  } from '@oanda/labs-widget-common';
23
23
  import { CHART_HEIGHT } from './constants';
@@ -43,7 +43,7 @@ echarts.registerTheme('light_theme', getChartTheme(Theme.Light));
43
43
 
44
44
  const Chart = ({ values }: ChartProps) => {
45
45
  const { lang } = useLocale();
46
- const { isDark, size } = useContext(ThemeContext);
46
+ const { isDark, size } = useLayoutProvider();
47
47
  const isDesktop = size === Size.DESKTOP;
48
48
 
49
49
  return (
@@ -1,7 +1,7 @@
1
- import React, { useContext } from 'react';
1
+ import React from 'react';
2
2
  import {
3
3
  Size,
4
- ThemeContext,
4
+ useLayoutProvider,
5
5
  } from '@oanda/labs-widget-common';
6
6
  import { useLocale } from '@oanda/mono-i18n';
7
7
  import {
@@ -11,7 +11,7 @@ import { DesktopLegend } from './DesktopLegend';
11
11
  import { MobileLegend } from './MobileLegend';
12
12
 
13
13
  const Legend = ({ data }: LegendProps) => {
14
- const { size, isDark } = useContext(ThemeContext);
14
+ const { size, isDark } = useLayoutProvider();
15
15
  const { lang } = useLocale();
16
16
  const isDesktop = size === Size.DESKTOP;
17
17
 
@@ -4,7 +4,7 @@
4
4
  import React from 'react';
5
5
  import { render } from '@testing-library/react';
6
6
  import { MockedProvider } from '@apollo/client/testing';
7
- import { Size, ThemeContext } from '@oanda/labs-widget-common';
7
+ import { MockLayoutProvider } from '@oanda/labs-widget-common';
8
8
  import { Division, ValueAtRiskBars, ValueAtRiskDuration } from '../src/gql/types/graphql';
9
9
  import { getValueAtRiskChartErrorMock, getValueAtRiskChartMock } from './mocks/responsesMocks';
10
10
  import { ChartWithData } from '../src/ValueAtRiskWidget/ChartWithData';
@@ -13,14 +13,14 @@ describe('ChartWithData component', () => {
13
13
  it('should render chart view', async () => {
14
14
  const { findByTestId } = render(
15
15
  <MockedProvider mocks={getValueAtRiskChartMock('CORN')}>
16
- <ThemeContext.Provider value={{ size: Size.DESKTOP, isDark: false }}>
16
+ <MockLayoutProvider isDark={false}>
17
17
  <ChartWithData
18
18
  division={Division.Oc}
19
19
  instrument="CORN"
20
20
  bars={ValueAtRiskBars.C100}
21
21
  duration={ValueAtRiskDuration.C1}
22
22
  />
23
- </ThemeContext.Provider>
23
+ </MockLayoutProvider>
24
24
  </MockedProvider>,
25
25
  );
26
26
 
@@ -30,14 +30,14 @@ describe('ChartWithData component', () => {
30
30
  it('should render mobile chart view', async () => {
31
31
  const { findByTestId } = render(
32
32
  <MockedProvider mocks={getValueAtRiskChartMock('CORN')}>
33
- <ThemeContext.Provider value={{ size: Size.MOBILE, isDark: false }}>
33
+ <MockLayoutProvider isDark={false}>
34
34
  <ChartWithData
35
35
  division={Division.Oc}
36
36
  instrument="CORN"
37
37
  bars={ValueAtRiskBars.C100}
38
38
  duration={ValueAtRiskDuration.C1}
39
39
  />
40
- </ThemeContext.Provider>
40
+ </MockLayoutProvider>
41
41
  </MockedProvider>,
42
42
  );
43
43
 
@@ -47,14 +47,14 @@ describe('ChartWithData component', () => {
47
47
  it('should render error view', async () => {
48
48
  const { findByTestId } = render(
49
49
  <MockedProvider mocks={getValueAtRiskChartErrorMock}>
50
- <ThemeContext.Provider value={{ size: Size.DESKTOP, isDark: false }}>
50
+ <MockLayoutProvider isDark={false}>
51
51
  <ChartWithData
52
52
  division={Division.Oc}
53
53
  instrument="AUD_USD"
54
54
  bars={ValueAtRiskBars.C100}
55
55
  duration={ValueAtRiskDuration.C1}
56
56
  />
57
- </ThemeContext.Provider>
57
+ </MockLayoutProvider>
58
58
  </MockedProvider>,
59
59
  );
60
60
 
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import React from 'react';
5
5
  import { render, fireEvent } from '@testing-library/react';
6
- import { ThemeContext, Size } from '@oanda/labs-widget-common';
6
+ import { MockLayoutProvider } from '@oanda/labs-widget-common';
7
7
  import { MockedProvider } from '@apollo/client/testing';
8
8
  import { Tool } from '../src/ValueAtRiskWidget/Tool';
9
9
  import { assetClassesMock, getValueAtRiskChartMock } from './mocks';
@@ -17,12 +17,12 @@ describe('Tool component', () => {
17
17
  it('should render tool view', () => {
18
18
  const { getByTestId } = render(
19
19
  <MockedProvider mocks={getValueAtRiskChartMock()}>
20
- <ThemeContext.Provider value={{ size: Size.DESKTOP, isDark: true }}>
20
+ <MockLayoutProvider>
21
21
  <Tool
22
22
  data={data}
23
23
  division={Division.Oc}
24
24
  />
25
- </ThemeContext.Provider>
25
+ </MockLayoutProvider>
26
26
  </MockedProvider>,
27
27
  );
28
28
 
@@ -31,12 +31,12 @@ describe('Tool component', () => {
31
31
  it('should change asset class and instruments list on click', () => {
32
32
  const { container, getByTestId } = render(
33
33
  <MockedProvider mocks={[...getValueAtRiskChartMock('AUD_USD'), ...getValueAtRiskChartMock('AUS200')]}>
34
- <ThemeContext.Provider value={{ size: Size.DESKTOP, isDark: true }}>
34
+ <MockLayoutProvider>
35
35
  <Tool
36
36
  data={data}
37
37
  division={Division.Oc}
38
38
  />
39
- </ThemeContext.Provider>
39
+ </MockLayoutProvider>
40
40
  </MockedProvider>,
41
41
  );
42
42
  expect(getByTestId('value-at-risk-tool-wrapper')).toBeInTheDocument();
@@ -4,7 +4,7 @@
4
4
  import React from 'react';
5
5
  import { render } from '@testing-library/react';
6
6
  import { MockedProvider } from '@apollo/client/testing';
7
- import { Size, ThemeContext } from '@oanda/labs-widget-common';
7
+ import { MockLayoutProvider } from '@oanda/labs-widget-common';
8
8
  import { ToolWithData } from '../src/ValueAtRiskWidget/ToolWithData';
9
9
  import { Division } from '../src/gql/types/graphql';
10
10
  import { getValueAtRiskAssetClassesMock, getValueAtRiskChartMock } from './mocks/responsesMocks';
@@ -13,9 +13,9 @@ describe('Main component', () => {
13
13
  it('should render tool view', async () => {
14
14
  const { findByTestId } = render(
15
15
  <MockedProvider mocks={[...getValueAtRiskAssetClassesMock, ...getValueAtRiskChartMock()]}>
16
- <ThemeContext.Provider value={{ size: Size.DESKTOP, isDark: false }}>
16
+ <MockLayoutProvider isDark={false}>
17
17
  <ToolWithData division={Division.Oc} />
18
- </ThemeContext.Provider>
18
+ </MockLayoutProvider>
19
19
  </MockedProvider>,
20
20
  );
21
21
 
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import React from 'react';
5
5
  import { render } from '@testing-library/react';
6
- import { ThemeContext, Size } from '@oanda/labs-widget-common';
6
+ import { MockLayoutProvider } from '@oanda/labs-widget-common';
7
7
  import { MockedProvider } from '@apollo/client/testing';
8
8
  import { getValueAtRiskChartMock } from './mocks';
9
9
  import { Division, ValueAtRiskBars, ValueAtRiskDuration } from '../src/gql/types/graphql';
@@ -13,14 +13,14 @@ describe('Widget component', () => {
13
13
  it('should render widget view', () => {
14
14
  const { getByTestId } = render(
15
15
  <MockedProvider mocks={getValueAtRiskChartMock()}>
16
- <ThemeContext.Provider value={{ size: Size.DESKTOP, isDark: true }}>
16
+ <MockLayoutProvider>
17
17
  <Widget
18
18
  division={Division.Oc}
19
19
  instrument="AUD_USD"
20
20
  bars={ValueAtRiskBars.C100}
21
21
  duration={ValueAtRiskDuration.C1}
22
22
  />
23
- </ThemeContext.Provider>
23
+ </MockLayoutProvider>
24
24
  </MockedProvider>,
25
25
  );
26
26