Skip to content

Commit ce9805a

Browse files
[PIL-2670] (#637)
change logic of DataRequiredAction to redirect to journey recovery controller when no user answers are found. I also refactored related tests that were failing after the change
1 parent fd137d3 commit ce9805a

28 files changed

+84
-72
lines changed

app/controllers/actions/DataRequiredAction.scala

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,10 @@
1616

1717
package controllers.actions
1818

19-
import models.UserAnswers
19+
import controllers.routes
2020
import models.requests.{DataRequest, OptionalDataRequest}
2121
import play.api.Logging
22+
import play.api.mvc.Results.Redirect
2223
import play.api.mvc.{ActionRefiner, Result}
2324

2425
import javax.inject.Inject
@@ -34,20 +35,7 @@ class DataRequiredActionImpl @Inject() (val executionContext: ExecutionContext)
3435
)
3536

3637
request.userAnswers match {
37-
case None =>
38-
Future.successful(
39-
Right(
40-
DataRequest(
41-
request.request,
42-
request.userId,
43-
request.groupId,
44-
UserAnswers("12345"),
45-
request.enrolments,
46-
request.userIdForEnrolment,
47-
request.isAgent
48-
)
49-
)
50-
)
38+
case None => Future.successful(Left(Redirect(routes.JourneyRecoveryController.onPageLoad())))
5139
case Some(data) =>
5240
Future.successful(
5341
Right(DataRequest(request.request, request.userId, request.groupId, data, request.enrolments, request.userIdForEnrolment, request.isAgent))

test/controllers/CheckYourAnswersControllerSpec.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ class CheckYourAnswersControllerSpec extends SpecBase with SummaryListFluency wi
258258
"redirected to cannot return after subscription error page if the user has already subscribed with a pillar 2 reference" in {
259259

260260
val sessionRepositoryUserAnswers = UserAnswers("id").setOrException(PlrReferencePage, "someID")
261-
val application = applicationBuilder(None)
261+
val application = applicationBuilder(Some(emptyUserAnswers))
262262
.overrides(
263263
bind[SessionRepository].toInstance(mockSessionRepository),
264264
bind[UserAnswersConnectors].toInstance(mockUserAnswersConnectors)
@@ -359,7 +359,7 @@ class CheckYourAnswersControllerSpec extends SpecBase with SummaryListFluency wi
359359

360360
"redirect to inProgress error page if no user data is found" in {
361361

362-
val application = applicationBuilder(userAnswers = None).build()
362+
val application = applicationBuilder(userAnswers = Some(emptyUserAnswers)).build()
363363
running(application) {
364364
val request = FakeRequest(POST, controllers.routes.CheckYourAnswersController.onSubmit().url)
365365
val result = route(application, request).value

test/controllers/TaskListControllerSpec.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ class TaskListControllerSpec extends SpecBase {
6868

6969
"must return OK and the correct view for a GET" in {
7070

71-
val application = applicationBuilder(userAnswers = None)
71+
val application = applicationBuilder(userAnswers = Some(emptyUserAnswers))
7272
.overrides(
7373
bind[SessionRepository].toInstance(mockSessionRepository)
7474
)
@@ -123,7 +123,7 @@ class TaskListControllerSpec extends SpecBase {
123123

124124
"redirected to subscription confirmation page if the user has already subscribed with a pillar 2 reference" in {
125125
val userAnswer = UserAnswers("id").setOrException(PlrReferencePage, "id")
126-
val application = applicationBuilder(None)
126+
val application = applicationBuilder(userAnswers = Some(emptyUserAnswers))
127127
.overrides(
128128
api.inject.bind[SessionRepository].toInstance(mockSessionRepository)
129129
)

test/controllers/bta/HavePillar2TopUpTaxIdControllerSpec.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ class HavePillar2TopUpTaxIdControllerSpec extends SpecBase {
155155
}
156156
}
157157
"must return a Bad Request and errors when invalid data is submitted" in {
158-
val application = applicationBuilder()
158+
val application = applicationBuilder(userAnswers = Some(emptyUserAnswers))
159159
.overrides(bind[UserAnswersConnectors].toInstance(mockUserAnswersConnectors))
160160
.configure(
161161
Seq(
@@ -176,7 +176,7 @@ class HavePillar2TopUpTaxIdControllerSpec extends SpecBase {
176176
}
177177

178178
"must return Bad Request and show specific error message when no option is selected" in {
179-
val application = applicationBuilder()
179+
val application = applicationBuilder(userAnswers = Some(emptyUserAnswers))
180180
.overrides(bind[UserAnswersConnectors].toInstance(mockUserAnswersConnectors))
181181
.configure(
182182
Seq(

test/controllers/dueandoverduereturns/DueAndOverdueReturnsControllerSpec.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class DueAndOverdueReturnsControllerSpec extends SpecBase with ObligationsAndSub
4242
)
4343

4444
lazy val application: Application =
45-
applicationBuilder(userAnswers = None, enrolments)
45+
applicationBuilder(userAnswers = Some(emptyUserAnswers), enrolments)
4646
.overrides(
4747
bind[SessionRepository].toInstance(mockSessionRepository),
4848
bind[ObligationsAndSubmissionsService].toInstance(mockObligationsAndSubmissionsService),

test/controllers/fm/NfmEntityTypeControllerSpec.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ class NfmEntityTypeControllerSpec extends SpecBase {
138138
}
139139

140140
"redirect to bookmark page if previous page not answered" in {
141-
val application = applicationBuilder(userAnswers = None).build()
141+
val application = applicationBuilder(userAnswers = Some(emptyUserAnswers)).build()
142142
running(application) {
143143
val request = FakeRequest(GET, controllers.fm.routes.NfmEntityTypeController.onPageLoad(NormalMode).url)
144144

@@ -249,7 +249,7 @@ class NfmEntityTypeControllerSpec extends SpecBase {
249249
.setOrException(FmEntityTypePage, EntityType.Other)
250250
)
251251

252-
val application = applicationBuilder(userAnswers = None)
252+
val application = applicationBuilder(userAnswers = Some(emptyUserAnswers))
253253
.overrides(bind[UserAnswersConnectors].toInstance(mockUserAnswersConnectors))
254254
.build()
255255

test/controllers/fm/NominateFilingMemberYesNoControllerSpec.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ class NominateFilingMemberYesNoControllerSpec extends SpecBase {
7373
}
7474

7575
"redirect to journey recovery if upe details not provided" in {
76-
val application = applicationBuilder(userAnswers = None).build()
76+
val application = applicationBuilder(userAnswers = Some(emptyUserAnswers)).build()
7777

7878
running(application) {
7979
val request = FakeRequest(GET, controllers.fm.routes.NominateFilingMemberYesNoController.onPageLoad(NormalMode).url)
@@ -85,7 +85,7 @@ class NominateFilingMemberYesNoControllerSpec extends SpecBase {
8585
}
8686

8787
"Bad request if no option is selected" in {
88-
val application = applicationBuilder().build()
88+
val application = applicationBuilder(userAnswers = Some(emptyUserAnswers)).build()
8989
running(application) {
9090
val request =
9191
FakeRequest(POST, controllers.fm.routes.NominateFilingMemberYesNoController.onSubmit(NormalMode).url).withFormUrlEncodedBody(

test/controllers/payments/OutstandingPaymentsControllerSpec.scala

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,11 @@ class OutstandingPaymentsControllerSpec extends SpecBase {
5454
accountStatus = Some(AccountStatus.ActiveAccount)
5555
)
5656

57-
val application = applicationBuilder(enrolments = enrolments, additionalData = Map("features.useAccountActivityApi" -> false))
57+
val application = applicationBuilder(
58+
userAnswers = Some(emptyUserAnswers),
59+
enrolments = enrolments,
60+
additionalData = Map("features.useAccountActivityApi" -> false)
61+
)
5862
.overrides(
5963
bind[SessionRepository].toInstance(mockSessionRepository),
6064
bind[FinancialDataService].toInstance(mockFinancialDataService),
@@ -96,7 +100,11 @@ class OutstandingPaymentsControllerSpec extends SpecBase {
96100
accountStatus = Some(AccountStatus.ActiveAccount)
97101
)
98102

99-
val application = applicationBuilder(enrolments = enrolments, additionalData = Map("features.useAccountActivityApi" -> false))
103+
val application = applicationBuilder(
104+
userAnswers = Some(emptyUserAnswers),
105+
enrolments = enrolments,
106+
additionalData = Map("features.useAccountActivityApi" -> false)
107+
)
100108
.overrides(
101109
bind[SessionRepository].toInstance(mockSessionRepository),
102110
bind[FinancialDataService].toInstance(mockFinancialDataService),
@@ -174,7 +182,11 @@ class OutstandingPaymentsControllerSpec extends SpecBase {
174182
accountStatus = Some(AccountStatus.ActiveAccount)
175183
)
176184

177-
val application = applicationBuilder(enrolments = enrolments, additionalData = Map("features.useAccountActivityApi" -> false))
185+
val application = applicationBuilder(
186+
userAnswers = Some(emptyUserAnswers),
187+
enrolments = enrolments,
188+
additionalData = Map("features.useAccountActivityApi" -> false)
189+
)
178190
.overrides(
179191
bind[SessionRepository].toInstance(mockSessionRepository),
180192
bind[FinancialDataService].toInstance(mockFinancialDataService),
@@ -231,7 +243,11 @@ class OutstandingPaymentsControllerSpec extends SpecBase {
231243
accountStatus = Some(AccountStatus.ActiveAccount)
232244
)
233245

234-
val application = applicationBuilder(enrolments = enrolments, additionalData = Map("features.useAccountActivityApi" -> true))
246+
val application = applicationBuilder(
247+
userAnswers = Some(emptyUserAnswers),
248+
enrolments = enrolments,
249+
additionalData = Map("features.useAccountActivityApi" -> true)
250+
)
235251
.overrides(
236252
bind[SessionRepository].toInstance(mockSessionRepository),
237253
bind[AccountActivityConnector].toInstance(mockAccountActivityConnector),
@@ -272,7 +288,11 @@ class OutstandingPaymentsControllerSpec extends SpecBase {
272288
accountStatus = Some(AccountStatus.ActiveAccount)
273289
)
274290

275-
val application = applicationBuilder(enrolments = enrolments, additionalData = Map("features.useAccountActivityApi" -> true))
291+
val application = applicationBuilder(
292+
userAnswers = Some(emptyUserAnswers),
293+
enrolments = enrolments,
294+
additionalData = Map("features.useAccountActivityApi" -> true)
295+
)
276296
.overrides(
277297
bind[SessionRepository].toInstance(mockSessionRepository),
278298
bind[AccountActivityConnector].toInstance(mockAccountActivityConnector),
@@ -307,7 +327,11 @@ class OutstandingPaymentsControllerSpec extends SpecBase {
307327
accountStatus = Some(AccountStatus.ActiveAccount)
308328
)
309329

310-
val application = applicationBuilder(enrolments = enrolments, additionalData = Map("features.useAccountActivityApi" -> true))
330+
val application = applicationBuilder(
331+
userAnswers = Some(emptyUserAnswers),
332+
enrolments = enrolments,
333+
additionalData = Map("features.useAccountActivityApi" -> true)
334+
)
311335
.overrides(
312336
bind[SessionRepository].toInstance(mockSessionRepository),
313337
bind[AccountActivityConnector].toInstance(mockAccountActivityConnector),

test/controllers/registration/EntityTypeControllerSpec.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ class EntityTypeControllerSpec extends SpecBase {
237237
.setOrException(UpeEntityTypePage, EntityType.Other)
238238
)
239239

240-
val application = applicationBuilder(userAnswers = None)
240+
val application = applicationBuilder(userAnswers = Some(emptyUserAnswers))
241241
.overrides(bind[UserAnswersConnectors].toInstance(mockUserAnswersConnectors))
242242
.build()
243243

test/controllers/registration/UpeContactNameControllerSpec.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ class UpeContactNameControllerSpec extends SpecBase {
9898
}
9999

100100
"redirect to bookmark page if previous page not answered" in {
101-
val application = applicationBuilder(userAnswers = None).build()
101+
val application = applicationBuilder(userAnswers = Some(emptyUserAnswers)).build()
102102
running(application) {
103103
val request = FakeRequest(GET, controllers.registration.routes.UpeContactNameController.onPageLoad(NormalMode).url)
104104

@@ -111,7 +111,7 @@ class UpeContactNameControllerSpec extends SpecBase {
111111

112112
"return bad request when invalid data is submitted" in {
113113

114-
val application = applicationBuilder(userAnswers = None)
114+
val application = applicationBuilder(userAnswers = Some(emptyUserAnswers))
115115
.overrides(bind[UserAnswersConnectors].toInstance(mockUserAnswersConnectors))
116116
.build()
117117
running(application) {

0 commit comments

Comments
 (0)