mirror of
https://github.com/Unleash/unleash.git
synced 2025-02-04 00:18:01 +01:00
test: advanced playground error (#4023)
This commit is contained in:
parent
5b34ceff4c
commit
a5ee50cfc9
@ -3,8 +3,10 @@ import { render } from 'utils/testRenderer';
|
|||||||
import { UIProviderContainer } from '../../providers/UIProvider/UIProviderContainer';
|
import { UIProviderContainer } from '../../providers/UIProvider/UIProviderContainer';
|
||||||
import AdvancedPlayground from './AdvancedPlayground';
|
import AdvancedPlayground from './AdvancedPlayground';
|
||||||
import { createLocalStorage } from 'utils/createLocalStorage';
|
import { createLocalStorage } from 'utils/createLocalStorage';
|
||||||
|
import { testServerRoute, testServerSetup } from 'utils/testServer';
|
||||||
|
import userEvent from '@testing-library/user-event';
|
||||||
|
|
||||||
const testComponent = (
|
const testDisplayComponent = (
|
||||||
<UIProviderContainer>
|
<UIProviderContainer>
|
||||||
<AdvancedPlayground
|
<AdvancedPlayground
|
||||||
FormComponent={props => (
|
FormComponent={props => (
|
||||||
@ -22,6 +24,18 @@ const testComponent = (
|
|||||||
</UIProviderContainer>
|
</UIProviderContainer>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const testEvaluateComponent = (
|
||||||
|
<UIProviderContainer>
|
||||||
|
<AdvancedPlayground
|
||||||
|
FormComponent={props => (
|
||||||
|
<form onSubmit={props.onSubmit}>
|
||||||
|
<button>Submit</button>
|
||||||
|
</form>
|
||||||
|
)}
|
||||||
|
/>
|
||||||
|
</UIProviderContainer>
|
||||||
|
);
|
||||||
|
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
const { setValue } = createLocalStorage('AdvancedPlayground:v1', {});
|
const { setValue } = createLocalStorage('AdvancedPlayground:v1', {});
|
||||||
setValue({});
|
setValue({});
|
||||||
@ -35,7 +49,7 @@ test('should fetch initial form data from local storage', async () => {
|
|||||||
context: { userId: '1' },
|
context: { userId: '1' },
|
||||||
});
|
});
|
||||||
|
|
||||||
render(testComponent);
|
render(testDisplayComponent);
|
||||||
|
|
||||||
expect(screen.getByText('Unleash playground')).toBeInTheDocument();
|
expect(screen.getByText('Unleash playground')).toBeInTheDocument();
|
||||||
expect(screen.getByText('["projectA","projectB"]')).toBeInTheDocument();
|
expect(screen.getByText('["projectA","projectB"]')).toBeInTheDocument();
|
||||||
@ -53,7 +67,7 @@ test('should fetch initial form data from url', async () => {
|
|||||||
context: { userId: '1' },
|
context: { userId: '1' },
|
||||||
});
|
});
|
||||||
|
|
||||||
render(testComponent, {
|
render(testDisplayComponent, {
|
||||||
route: '/playground?context=customContext&environments=customEnv&projects=urlProject&sort=name',
|
route: '/playground?context=customContext&environments=customEnv&projects=urlProject&sort=name',
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -62,3 +76,26 @@ test('should fetch initial form data from url', async () => {
|
|||||||
expect(screen.getByText('["customEnv"]')).toBeInTheDocument();
|
expect(screen.getByText('["customEnv"]')).toBeInTheDocument();
|
||||||
expect(screen.getByText('"customContext"')).toBeInTheDocument();
|
expect(screen.getByText('"customContext"')).toBeInTheDocument();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const server = testServerSetup();
|
||||||
|
|
||||||
|
test('should display error on submit', async () => {
|
||||||
|
testServerRoute(
|
||||||
|
server,
|
||||||
|
'/api/admin/playground/advanced',
|
||||||
|
{
|
||||||
|
name: 'BadDataError',
|
||||||
|
details: [{ message: 'some error about too many items' }],
|
||||||
|
},
|
||||||
|
'post',
|
||||||
|
400
|
||||||
|
);
|
||||||
|
|
||||||
|
render(testEvaluateComponent);
|
||||||
|
|
||||||
|
const user = userEvent.setup();
|
||||||
|
const submitButton = screen.getByText('Submit');
|
||||||
|
user.click(submitButton);
|
||||||
|
|
||||||
|
await screen.findByText('some error about too many items');
|
||||||
|
});
|
||||||
|
@ -59,7 +59,7 @@ export const AdvancedPlayground: VFC<{
|
|||||||
const { evaluateAdvancedPlayground, loading } = usePlaygroundApi();
|
const { evaluateAdvancedPlayground, loading } = usePlaygroundApi();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (environments.length === 0) {
|
if (environments?.length === 0) {
|
||||||
setEnvironments([resolveDefaultEnvironment(availableEnvironments)]);
|
setEnvironments([resolveDefaultEnvironment(availableEnvironments)]);
|
||||||
}
|
}
|
||||||
}, [availableEnvironments]);
|
}, [availableEnvironments]);
|
||||||
|
Loading…
Reference in New Issue
Block a user