Skip to content

Commit

Permalink
feat: application disclaimer page redirects to 404 if data is missing
Browse files Browse the repository at this point in the history
  • Loading branch information
matthieu-foucault committed Apr 16, 2021
1 parent f8b1e74 commit 123bdcb
Show file tree
Hide file tree
Showing 4 changed files with 185 additions and 80 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,11 @@ class NewApplicationDisclaimer extends Component<Props> {
latestDraftRevision
} = application;

if (!applicationRevision || !latestDraftRevision) {
router.push('/404');
return null;
}

if (
latestDraftRevision.versionNumber !== applicationRevision.versionNumber
) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,13 @@ exports[`View submitted application page displays a "Resume latest draft" button
</Link>
</ApplicationDecision>
<Relay(ApplicationDetailsComponent)
applicationRevision={
Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_applicationRevision": true,
},
}
}
liveValidate={false}
query={
Object {
Expand All @@ -71,7 +78,6 @@ exports[`View submitted application page displays a "Resume latest draft" button
},
"application": Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_application": true,
"ReviseApplicationButtonContainer_application": true,
},
"applicationReviewStepsByApplicationId": Object {
Expand All @@ -91,6 +97,11 @@ exports[`View submitted application page displays a "Resume latest draft" button
},
],
},
"applicationRevisionByStringVersionNumber": Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_applicationRevision": true,
},
},
"applicationRevisionStatus": Object {
"applicationRevisionStatus": "REQUESTED_CHANGES",
},
Expand Down Expand Up @@ -159,7 +170,6 @@ exports[`View submitted application page displays a "Revise" button when changes
application={
Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_application": true,
"ReviseApplicationButtonContainer_application": true,
},
"applicationReviewStepsByApplicationId": Object {
Expand All @@ -179,6 +189,11 @@ exports[`View submitted application page displays a "Revise" button when changes
},
],
},
"applicationRevisionByStringVersionNumber": Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_applicationRevision": true,
},
},
"applicationRevisionStatus": Object {
"applicationRevisionStatus": "REQUESTED_CHANGES",
},
Expand All @@ -197,6 +212,13 @@ exports[`View submitted application page displays a "Revise" button when changes
/>
</ApplicationDecision>
<Relay(ApplicationDetailsComponent)
applicationRevision={
Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_applicationRevision": true,
},
}
}
liveValidate={false}
query={
Object {
Expand All @@ -205,7 +227,6 @@ exports[`View submitted application page displays a "Revise" button when changes
},
"application": Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_application": true,
"ReviseApplicationButtonContainer_application": true,
},
"applicationReviewStepsByApplicationId": Object {
Expand All @@ -225,6 +246,11 @@ exports[`View submitted application page displays a "Revise" button when changes
},
],
},
"applicationRevisionByStringVersionNumber": Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_applicationRevision": true,
},
},
"applicationRevisionStatus": Object {
"applicationRevisionStatus": "REQUESTED_CHANGES",
},
Expand Down Expand Up @@ -281,6 +307,13 @@ exports[`View submitted application page does not show an application decision w
md={12}
>
<Relay(ApplicationDetailsComponent)
applicationRevision={
Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_applicationRevision": true,
},
}
}
liveValidate={false}
query={
Object {
Expand All @@ -289,7 +322,6 @@ exports[`View submitted application page does not show an application decision w
},
"application": Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_application": true,
"ReviseApplicationButtonContainer_application": true,
},
"applicationReviewStepsByApplicationId": Object {
Expand All @@ -309,6 +341,11 @@ exports[`View submitted application page does not show an application decision w
},
],
},
"applicationRevisionByStringVersionNumber": Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_applicationRevision": true,
},
},
"applicationRevisionStatus": Object {
"applicationRevisionStatus": "SUBMITTED",
},
Expand Down Expand Up @@ -426,6 +463,13 @@ exports[`View submitted application page should render a "View most recent submi
}
/>
<Relay(ApplicationDetailsComponent)
applicationRevision={
Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_applicationRevision": true,
},
}
}
liveValidate={false}
query={
Object {
Expand All @@ -434,7 +478,6 @@ exports[`View submitted application page should render a "View most recent submi
},
"application": Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_application": true,
"ReviseApplicationButtonContainer_application": true,
},
"applicationReviewStepsByApplicationId": Object {
Expand All @@ -454,6 +497,11 @@ exports[`View submitted application page should render a "View most recent submi
},
],
},
"applicationRevisionByStringVersionNumber": Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_applicationRevision": true,
},
},
"applicationRevisionStatus": Object {
"applicationRevisionStatus": "REQUESTED_CHANGES",
},
Expand Down Expand Up @@ -571,6 +619,13 @@ exports[`View submitted application page should render a "View most recent submi
}
/>
<Relay(ApplicationDetailsComponent)
applicationRevision={
Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_applicationRevision": true,
},
}
}
liveValidate={false}
query={
Object {
Expand All @@ -579,7 +634,6 @@ exports[`View submitted application page should render a "View most recent submi
},
"application": Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_application": true,
"ReviseApplicationButtonContainer_application": true,
},
"applicationReviewStepsByApplicationId": Object {
Expand All @@ -599,6 +653,11 @@ exports[`View submitted application page should render a "View most recent submi
},
],
},
"applicationRevisionByStringVersionNumber": Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_applicationRevision": true,
},
},
"applicationRevisionStatus": Object {
"applicationRevisionStatus": "REQUESTED_CHANGES",
},
Expand Down Expand Up @@ -664,6 +723,13 @@ exports[`View submitted application page shows approval when reviewed and approv
}
/>
<Relay(ApplicationDetailsComponent)
applicationRevision={
Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_applicationRevision": true,
},
}
}
liveValidate={false}
query={
Object {
Expand All @@ -672,7 +738,6 @@ exports[`View submitted application page shows approval when reviewed and approv
},
"application": Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_application": true,
"ReviseApplicationButtonContainer_application": true,
},
"applicationReviewStepsByApplicationId": Object {
Expand All @@ -692,6 +757,11 @@ exports[`View submitted application page shows approval when reviewed and approv
},
],
},
"applicationRevisionByStringVersionNumber": Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_applicationRevision": true,
},
},
"applicationRevisionStatus": Object {
"applicationRevisionStatus": "APPROVED",
},
Expand Down Expand Up @@ -757,6 +827,13 @@ exports[`View submitted application page shows rejection when reviewed and rejec
}
/>
<Relay(ApplicationDetailsComponent)
applicationRevision={
Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_applicationRevision": true,
},
}
}
liveValidate={false}
query={
Object {
Expand All @@ -765,7 +842,6 @@ exports[`View submitted application page shows rejection when reviewed and rejec
},
"application": Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_application": true,
"ReviseApplicationButtonContainer_application": true,
},
"applicationReviewStepsByApplicationId": Object {
Expand All @@ -785,6 +861,11 @@ exports[`View submitted application page shows rejection when reviewed and rejec
},
],
},
"applicationRevisionByStringVersionNumber": Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_applicationRevision": true,
},
},
"applicationRevisionStatus": Object {
"applicationRevisionStatus": "REJECTED",
},
Expand Down Expand Up @@ -850,6 +931,13 @@ exports[`View submitted application page shows reviewer comments when reviewed a
}
/>
<Relay(ApplicationDetailsComponent)
applicationRevision={
Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_applicationRevision": true,
},
}
}
liveValidate={false}
query={
Object {
Expand All @@ -858,7 +946,6 @@ exports[`View submitted application page shows reviewer comments when reviewed a
},
"application": Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_application": true,
"ReviseApplicationButtonContainer_application": true,
},
"applicationReviewStepsByApplicationId": Object {
Expand All @@ -878,6 +965,11 @@ exports[`View submitted application page shows reviewer comments when reviewed a
},
],
},
"applicationRevisionByStringVersionNumber": Object {
" $fragmentRefs": Object {
"ApplicationDetailsContainer_applicationRevision": true,
},
},
"applicationRevisionStatus": Object {
"applicationRevisionStatus": "REJECTED",
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,21 +24,26 @@ const query: disclaimerNewApplicationQueryResponse['query'] = {
}
};

const router = {
query: {
applicationId: 'skjdh839',
hasSwrsReport: true,
version: 1
}
};

describe('Interstitial application legal disclaimer page', () => {
let router;
beforeEach(() => {
router = {
query: {
applicationId: 'skjdh839',
hasSwrsReport: true,
version: 1
},
push: jest.fn()
};
});

it('matches the last accepted Snapshot', () => {
const wrapper = shallow(
<NewApplicationDisclaimer query={query} router={router} />
);
expect(wrapper).toMatchSnapshot();
});

it('passes an application to the ApplicationConsent component', () => {
const wrapper = shallow(
<NewApplicationDisclaimer query={query} router={router} />
Expand All @@ -50,4 +55,52 @@ describe('Interstitial application legal disclaimer page', () => {
.prop('applicationRevision')
).toBe(query.application.applicationRevisionByStringVersionNumber);
});

it('redirects to the 404 page if the application is missing', () => {
const wrapper = shallow(
<NewApplicationDisclaimer
query={{...query, application: null}}
router={router}
/>
);

expect(wrapper).toBeEmpty();
expect(router.push).toBeCalledWith('/404');
});

it('redirects to the 404 page if the application revision by version number is missing', () => {
const wrapper = shallow(
<NewApplicationDisclaimer
query={{
...query,
application: {
...query.application,
applicationRevisionByStringVersionNumber: null
}
}}
router={router}
/>
);

expect(wrapper).toBeEmpty();
expect(router.push).toBeCalledWith('/404');
});

it('redirects to the 404 page if the application latest draft revision missing', () => {
const wrapper = shallow(
<NewApplicationDisclaimer
query={{
...query,
application: {
...query.application,
latestDraftRevision: null
}
}}
router={router}
/>
);

expect(wrapper).toBeEmpty();
expect(router.push).toBeCalledWith('/404');
});
});
Loading

0 comments on commit 123bdcb

Please sign in to comment.