/
TopBar.test.js
74 lines (65 loc) · 2.08 KB
/
TopBar.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/**
* Copyright (c) 2022, RTE (http://www.rte-france.com)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
import expect from 'expect';
import React from 'react';
import { createRoot } from 'react-dom/client';
import { act } from 'react-dom/test-utils';
import { IntlProvider } from 'react-intl';
import TopBar from './TopBar';
import { top_bar_en } from '../../';
import PowsyblLogo from '../images/powsybl_logo.svg';
import { red } from '@mui/material/colors';
import { ThemeProvider, createTheme } from '@mui/material/styles';
let container = null;
beforeEach(() => {
// setup a DOM element as a render target
container = document.createElement('div');
document.body.appendChild(container);
});
afterEach(() => {
// cleanup on exiting
container.remove();
container = null;
});
const apps = [
{ name: 'App1', url: '/app1', appColor: 'blue', hiddenInAppsMenu: false },
{ name: 'App2', url: '/app2' },
];
const theme = createTheme({
palette: {
primary: {
main: red[500],
},
},
});
it('renders', () => {
const root = createRoot(container);
act(() => {
root.render(
<ThemeProvider theme={theme}>
<IntlProvider locale="en" messages={top_bar_en}>
<TopBar
appName="Demo"
appColor="#808080"
appLogo={PowsyblLogo}
onParametersClick={() => {}}
onLogoutClick={() => {}}
onLogoClick={() => {}}
user={{ profile: { name: 'John Doe' } }}
appsAndUrls={apps}
>
<p>testchild</p>
</TopBar>
</IntlProvider>
</ThemeProvider>
);
});
expect(container.textContent).toContain('GridDemotestchildJD');
act(() => {
root.unmount();
});
});