Files
nebula.js/commands/serve/web/utils/testRenderer.jsx
Christian Veinfors 897275ae7c feat: listbox grid layout (#994)
* feat: prototype listbox grid layout

* feat: apply listbox specific theme

* refactor: wip

* test: add null check

* fix: merge conflict wip

* refactor: merged master

* fix: get column count from sizes

* refactor: wip generalise even more

* refactor: add back forgotten props

* refactor: break out funcs

* test: grid-list-components

* test: derive options unit tests

* test: styled components 1

* refactor: break out data loading

* refactor: fixes to make it work

* fix: include textAlign

* test: cover new funcs with unit tests

* test: horizontal min batch size

* test: measure text

* test: add test for grid component and clean up

* Update apis/nucleus/src/components/listbox/assets/get-list-sizes.js

Co-authored-by: Christian Veinfors <christian.veinfors@gmail.com>

* Update apis/nucleus/src/components/listbox/components/ListBoxRowColumn.jsx

Co-authored-by: Daniel Sjöstrand <99665802+DanielS-Qlik@users.noreply.github.com>

* refactor: use default export

* fix: move listCount fetch into search to ensure
  it is up to date

* fix: lint fixes

* test: fix failing test

* test: fix failing test

* test: update test for disclaimer

* chore: try to change order of test:rendering

* test: plywright

* fix: render list also when disclaimer is shown

* fix: ensure list count falls back to 0

* refactor: use typography for disclaimer

Co-authored-by: Johan Lahti <johanlahti@gmail.com>
Co-authored-by: Daniel Sjöstrand <99665802+DanielS-Qlik@users.noreply.github.com>
Co-authored-by: Johan Lahti <johanlahti@users.noreply.github.com>
2022-12-20 10:46:39 +01:00

53 lines
1.4 KiB
JavaScript

import React from 'react';
import { render } from '@testing-library/react';
import userEvents from '@testing-library/user-event';
import { BrowserRouter } from 'react-router-dom';
import { createTheme, ThemeProvider } from '@nebula.js/ui/theme';
import { RootContext } from '../contexts/RootContext';
const theme = createTheme('light');
export function TestRenderer(component, contextValuesOverride) {
const contextValue = {
// context values
storage: () => {},
// useInfo result
info: {},
setInfo: () => {},
// useConnection result
glob: {},
setGlobal: () => {},
treatAsDesktop: false,
setTreatAsDesktop: () => {},
error: {},
setError: () => {},
activeStep: 0,
setActiveStep: () => {},
// useCachedConnections result
cachedConnectionsData: {
cachedConnections: [],
addCachedConnections: () => {},
removeCachedConnection: () => {},
},
// override what ever you want in render level
...contextValuesOverride,
};
const Wrapper = ({ children }) => (
<BrowserRouter>
<RootContext.Provider value={contextValue}>
<ThemeProvider theme={theme}>{children}</ThemeProvider>
</RootContext.Provider>
</BrowserRouter>
);
return { ...render(component, { wrapper: Wrapper }), userEvents: userEvents.setup() };
}
export const RouterWrapper = ({ children }) => <BrowserRouter>{children}</BrowserRouter>;