Skip to content

Commit

Permalink
Merge pull request #754 from open-formulieren/issue/4918-initial-data…
Browse files Browse the repository at this point in the history
…-reference-not-passed

🐛 [open-formulieren/open-forms#4918] Pass initial_data_reference when redirecting to formstart
  • Loading branch information
sergei-maertens authored Dec 17, 2024
2 parents c28288f + 400f735 commit 57510fc
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 5 deletions.
12 changes: 7 additions & 5 deletions src/components/Form.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -350,16 +350,18 @@ const Form = () => {
) : null;

if (state.startingError) throw state.startingError;

let startPageUrl = introductionPageContent ? 'introductie' : 'startpagina';
const extraStartUrlParams = {};
if (initialDataReference) extraStartUrlParams.initial_data_reference = initialDataReference;
if (initialDataReference) {
extraStartUrlParams.initial_data_reference = initialDataReference;
startPageUrl = `${startPageUrl}?${new URLSearchParams(extraStartUrlParams).toString()}`;
}

// Route the correct page based on URL
const router = (
<Routes>
<Route
path=""
element={<Navigate replace to={introductionPageContent ? 'introductie' : 'startpagina'} />}
/>
<Route path="" element={<Navigate replace to={startPageUrl} />} />

<Route
path="introductie"
Expand Down
33 changes: 33 additions & 0 deletions src/components/Form.spec.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -114,3 +114,36 @@ test('Start form with object reference query param', async () => {
const requestBody = await startSubmissionRequest.json();
expect(requestBody.initialDataReference).toBe('foo');
});

// Regression test for https://github.com/open-formulieren/open-forms/issues/4918
test.each([
{
introductionPageContent: '',
buttonText: 'Login with DigiD',
expectedUrl:
'http://mock-digid.nl/login?next=http%3A%2F%2Flocalhost%2F%3F_start%3D1%26initial_data_reference%3Dfoo',
},
{
introductionPageContent: 'foo',
buttonText: 'Continue',
expectedUrl: '/startpagina?initial_data_reference=foo',
},
])(
'Redirect to start page or introduction page should preserve initial_data_reference param',
async ({introductionPageContent, buttonText, expectedUrl}) => {
mswServer.use(mockAnalyticsToolConfigGet(), mockSubmissionPost(), mockSubmissionStepGet());

render(
<Wrapper
form={buildForm({
loginOptions: [{identifier: 'digid', label: 'DigiD', url: 'http://mock-digid.nl/login'}],
introductionPageContent: introductionPageContent,
})}
initialEntry="/?initial_data_reference=foo"
/>
);

const loginLink = await screen.findByRole('link', {name: buttonText});
expect(loginLink).toHaveAttribute('href', expectedUrl);
}
);

0 comments on commit 57510fc

Please sign in to comment.