import { screen } from '@testing-library/react'; import { render } from 'utils/testRenderer'; import { UIProviderContainer } from '../../providers/UIProvider/UIProviderContainer'; import AdvancedPlayground from './AdvancedPlayground'; import { createLocalStorage } from 'utils/createLocalStorage'; const testComponent = ( (
{JSON.stringify(props.projects)}
{JSON.stringify(props.environments)}
{JSON.stringify(props.context)}
)} />
); afterEach(() => { const { setValue } = createLocalStorage('AdvancedPlayground:v1', {}); setValue({}); }); test('should fetch initial form data from local storage', async () => { const { setValue } = createLocalStorage('AdvancedPlayground:v1', {}); setValue({ projects: ['projectA', 'projectB'], environments: ['development', 'production'], context: { userId: '1' }, }); render(testComponent); expect(screen.getByText('Unleash playground')).toBeInTheDocument(); expect(screen.getByText('["projectA","projectB"]')).toBeInTheDocument(); expect( screen.getByText('["development","production"]') ).toBeInTheDocument(); expect(screen.getByText('{"userId":"1"}')).toBeInTheDocument(); }); test('should fetch initial form data from url', async () => { const { setValue } = createLocalStorage('AdvancedPlayground:v1', {}); setValue({ projects: ['projectA', 'projectB'], environments: ['development', 'production'], context: { userId: '1' }, }); render(testComponent, { route: '/playground?context=customContext&environments=customEnv&projects=urlProject&sort=name', }); expect(screen.getByText('Unleash playground')).toBeInTheDocument(); expect(screen.getByText('["urlProject"]')).toBeInTheDocument(); expect(screen.getByText('["customEnv"]')).toBeInTheDocument(); expect(screen.getByText('"customContext"')).toBeInTheDocument(); });