Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
package viewmodels

import base.SpecBase
import controllers.routes.$className$Controller
import pages.$className$Page
import play.api.Application
import play.api.i18n.Messages
import viewmodels.govuk.summarylist.*
import viewmodels.implicits.*

class $className$SummarySpec extends SpecBase {

lazy val app: Application = applicationBuilder().build()

implicit val messages: Messages = this.messages(app)

"$className$Summary" - {

"must return None when the question has not been answered" in {
$className$Summary.row(emptyUserAnswers) mustBe None
}

"must return the correct row when the answer is Yes" in {
val answers =
emptyUserAnswers
.set($className$Page, true)
.success
.value

$className$Summary.row(answers).value mustBe
SummaryListRowViewModel(
key = "$className;format="decap"$.checkYourAnswersLabel",
value = ValueViewModel("site.yes"),
actions = Seq(
ActionItemViewModel(
"site.change",
$className$Controller.onPageLoad().url
).withVisuallyHiddenText(
messages("$className;format="decap"$.change.hidden")
)
)
)
}

"must return the correct row when the answer is No" in {
val answers =
emptyUserAnswers
.set($className$Page, false)
.success
.value

$className$Summary.row(answers).value mustBe
SummaryListRowViewModel(
key = "$className;format="decap"$.checkYourAnswersLabel",
value = ValueViewModel("site.no"),
actions = Seq(
ActionItemViewModel(
"site.change",
$className$Controller.onPageLoad().url
).withVisuallyHiddenText(
messages("$className;format="decap"$.change.hidden")
)
)
)
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
package views

import base.SpecBase
import forms.$className$FormProvider
import models.NormalMode
import org.jsoup.Jsoup
import org.jsoup.nodes.Document
import play.api.test.FakeRequest
import play.api.test.Helpers.running
import views.html.$className$View

class $className$ViewSpec extends SpecBase {

private val form = new $className$FormProvider()()

"$className$View" - {

"render the page correctly" in {

val application = applicationBuilder().build()

running(application) {

val view = application.injector.instanceOf[$className$View]

val html = view(form, NormalMode)(FakeRequest(), messages(application))

val document: Document = Jsoup.parse(html.toString)

document.title() must include(
messages(application)("$className;format="decap"$.title")
)

document.select("h1").select(".govuk-fieldset__heading").text() mustEqual
messages(application)("$className;format="decap"$.heading")

document.select("span").select(".govuk-caption-l").text() mustEqual
messages(application)("changeRegistrationDetails.caption")

document.getElementById("value").attr("value") mustEqual "true"

document.getElementById("value-no").attr("value") mustEqual "false"

document.select(".govuk-button").text() mustEqual
messages(application)("site.continue")
}
}

"render an error summary when there are form errors" in {

val application = applicationBuilder().build()

running(application) {

val view = application.injector.instanceOf[$className$View]

val boundForm = form.bind(Map("value" -> ""))

val html = view(boundForm, NormalMode)(FakeRequest(), messages(application))

val document: Document = Jsoup.parse(html.toString)

document.select(".govuk-error-summary").size() mustEqual 1

document.body().text() must include(
messages(application)("$className;format="decap"$.error.required")
)
}
}
}
}