diff --git a/app/controllers/CheckYourAnswersController.scala b/app/controllers/CheckYourAnswersController.scala index 98549d92..235364ad 100644 --- a/app/controllers/CheckYourAnswersController.scala +++ b/app/controllers/CheckYourAnswersController.scala @@ -21,6 +21,7 @@ import controllers.actions.{DataRequiredAction, DataRetrievalAction, IdentifierA import play.api.i18n.{I18nSupport, MessagesApi} import play.api.mvc.{Action, AnyContent, MessagesControllerComponents} import uk.gov.hmrc.play.bootstrap.frontend.controller.FrontendBaseController +import viewmodels.checkAnswers.ApplicationNameSummary import viewmodels.govuk.summarylist._ import views.html.CheckYourAnswersView @@ -37,7 +38,9 @@ class CheckYourAnswersController @Inject()( implicit request => val list = SummaryListViewModel( - rows = Seq.empty + rows = Seq( + ApplicationNameSummary.row(request.userAnswers) + ).flatten ) Ok(view(list)) diff --git a/test/controllers/CheckYourAnswersControllerSpec.scala b/test/controllers/CheckYourAnswersControllerSpec.scala index 5e87e2fe..c95f5015 100644 --- a/test/controllers/CheckYourAnswersControllerSpec.scala +++ b/test/controllers/CheckYourAnswersControllerSpec.scala @@ -17,16 +17,23 @@ package controllers import base.SpecBase +import controllers.CheckYourAnswersControllerSpec.buildSummaryList +import generators.Generators +import models.UserAnswers +import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks +import play.api.i18n.Messages import play.api.test.FakeRequest import play.api.test.Helpers._ +import uk.gov.hmrc.govukfrontend.views.viewmodels.summarylist.SummaryList +import viewmodels.checkAnswers.ApplicationNameSummary import viewmodels.govuk.SummaryListFluency import views.html.CheckYourAnswersView -class CheckYourAnswersControllerSpec extends SpecBase with SummaryListFluency { +class CheckYourAnswersControllerSpec extends SpecBase with SummaryListFluency with ScalaCheckPropertyChecks with Generators { "Check Your Answers Controller" - { - "must return OK and the correct view for a GET" in { + "must return OK and the correct view for a GET with empty user answers" in { val application = applicationBuilder(userAnswers = Some(emptyUserAnswers)).build() @@ -36,13 +43,33 @@ class CheckYourAnswersControllerSpec extends SpecBase with SummaryListFluency { val result = route(application, request).value val view = application.injector.instanceOf[CheckYourAnswersView] - val list = SummaryListViewModel(Seq.empty) + val list = buildSummaryList(emptyUserAnswers, messages(application)) status(result) mustEqual OK contentAsString(result) mustEqual view(list)(request, messages(application)).toString } } + "must return OK and the correct view for a GET with complete user answers" in { + + forAll((userAnswers: UserAnswers) => { + val application = applicationBuilder(userAnswers = Some(userAnswers)).build() + + running(application) { + val request = FakeRequest(GET, routes.CheckYourAnswersController.onPageLoad.url) + + val result = route(application, request).value + + val view = application.injector.instanceOf[CheckYourAnswersView] + val list = buildSummaryList(userAnswers, messages(application)) + + status(result) mustEqual OK + contentAsString(result) mustEqual view(list)(request, messages(application)).toString + } + }) + + } + "must redirect to Journey Recovery for a GET if no existing data is found" in { val application = applicationBuilder(userAnswers = None).build() @@ -58,3 +85,15 @@ class CheckYourAnswersControllerSpec extends SpecBase with SummaryListFluency { } } } + +object CheckYourAnswersControllerSpec extends SummaryListFluency { + + def buildSummaryList(userAnswers: UserAnswers, messages: Messages): SummaryList = { + SummaryListViewModel( + Seq( + ApplicationNameSummary.row(userAnswers)(messages) + ).flatten + ) + } + +}