Merge pull request #11173 from mabashian/hub-to-controller

Adds support for pre-filling EE add form name, description, and image from query params
This commit is contained in:
Tiago Góes 2021-10-05 15:57:31 -03:00 committed by GitHub
commit d58d460119
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 47 additions and 4 deletions

View File

@ -100,10 +100,14 @@ const AuthorizedRoutes = ({ routeConfig }) => {
const ProtectedRoute = ({ children, ...rest }) => {
const { authRedirectTo, setAuthRedirectTo } = useSession();
const { pathname } = useLocation();
const location = useLocation();
useEffect(() => {
setAuthRedirectTo(authRedirectTo === '/logout' ? '/' : pathname);
setAuthRedirectTo(
authRedirectTo === '/logout'
? '/'
: `${location.pathname}${location.search}`
);
});
if (isAuthenticated(document.cookie)) {

View File

@ -27,6 +27,24 @@ function ExecutionEnvironmentAdd() {
const handleCancel = () => {
history.push(`/execution_environments`);
};
const hubParams = {
description: '',
image: '',
name: '',
};
history.location.search
.replace(/^\?/, '')
.split('&')
.map((s) => s.split('='))
.forEach(([key, val]) => {
if (!(key in hubParams)) {
return;
}
hubParams[key] = decodeURIComponent(val);
});
return (
<PageSection>
<Card>
@ -38,6 +56,7 @@ function ExecutionEnvironmentAdd() {
submitError={submitError}
onCancel={handleCancel}
me={me || {}}
executionEnvironment={hubParams}
/>
)}
</Config>

View File

@ -86,6 +86,8 @@ describe('<ExecutionEnvironmentAdd/>', () => {
context: { router: { history } },
});
});
await waitForElement(wrapper, 'ContentLoading', (el) => el.length === 0);
});
afterEach(() => {
@ -108,8 +110,6 @@ describe('<ExecutionEnvironmentAdd/>', () => {
});
test('handleCancel should return the user back to the execution environments list', async () => {
await waitForElement(wrapper, 'ContentLoading', (el) => el.length === 0);
wrapper.find('Button[aria-label="Cancel"]').simulate('click');
expect(history.location.pathname).toEqual('/execution_environments');
});
@ -131,4 +131,23 @@ describe('<ExecutionEnvironmentAdd/>', () => {
wrapper.update();
expect(wrapper.find('FormSubmitError').length).toBe(1);
});
test('should parse and prefill select form fields from query params', async () => {
history = createMemoryHistory({
initialEntries: [
'/execution_environments/add?image=https://myhub.io/repo:2.0',
],
});
await act(async () => {
wrapper = mountWithContexts(<ExecutionEnvironmentAdd me={mockMe} />, {
context: { router: { history } },
});
});
await waitForElement(wrapper, 'ContentLoading', (el) => el.length === 0);
expect(
wrapper.find('input#execution-environment-image').prop('value')
).toEqual('https://myhub.io/repo:2.0');
});
});

View File

@ -212,6 +212,7 @@ function ExecutionEnvironmentForm({
};
return (
<Formik
enableReinitialize
initialValues={initialValues}
onSubmit={(values) => onSubmit(values)}
>