diff --git a/app/uk/gov/hmrc/merchandiseinbaggagefrontend/controllers/GoodsDestinationController.scala b/app/uk/gov/hmrc/merchandiseinbaggagefrontend/controllers/GoodsDestinationController.scala index b5e942a76..005d8f80e 100644 --- a/app/uk/gov/hmrc/merchandiseinbaggagefrontend/controllers/GoodsDestinationController.scala +++ b/app/uk/gov/hmrc/merchandiseinbaggagefrontend/controllers/GoodsDestinationController.scala @@ -33,7 +33,7 @@ class GoodsDestinationController @Inject()( .bindFromRequest() .fold( formWithErrors => BadRequest(view(formWithErrors)), - value => Ok + value => Redirect(routes.SkeletonJourneyController.valueWeightOfGoods()) ) } diff --git a/app/uk/gov/hmrc/merchandiseinbaggagefrontend/controllers/SkeletonJourneyController.scala b/app/uk/gov/hmrc/merchandiseinbaggagefrontend/controllers/SkeletonJourneyController.scala index 78178c712..e9f68fb7d 100644 --- a/app/uk/gov/hmrc/merchandiseinbaggagefrontend/controllers/SkeletonJourneyController.scala +++ b/app/uk/gov/hmrc/merchandiseinbaggagefrontend/controllers/SkeletonJourneyController.scala @@ -23,70 +23,62 @@ class SkeletonJourneyController @Inject()(mcc: MessagesControllerComponents, pag extends FrontendController(mcc) { val start: Action[AnyContent] = Action { implicit request => - Ok(page(s"start.title", routes.SkeletonJourneyController.importExport())) + Ok(page(s"start.title", routes.SkeletonJourneyController.selectDeclarationType())) } - val importExport: Action[AnyContent] = Action { implicit request => - Ok(page(s"importExport.title", routes.SkeletonJourneyController.multipleCountriesEuCheck())) + val selectDeclarationType: Action[AnyContent] = Action { implicit request => + Ok(page(s"selectDeclarationType.title", routes.SkeletonJourneyController.exciseAndRestrictedGoods())) } - val multipleCountriesEuCheck: Action[AnyContent] = Action { implicit request => - Ok(page(s"multipleCountriesEuCheck.title", routes.SkeletonJourneyController.goodsExcise())) - } - - val goodsExcise: Action[AnyContent] = Action { implicit request => - Ok(page(s"goodsExcise.title", routes.SkeletonJourneyController.valueWeightOfGoods())) + val exciseAndRestrictedGoods: Action[AnyContent] = Action { implicit request => + Ok(page(s"exciseAndRestrictedGoods.title", routes.GoodsDestinationController.onPageLoad())) } val valueWeightOfGoods: Action[AnyContent] = Action { implicit request => - Ok(page(s"valueWeightOfGoods.title", routes.SkeletonJourneyController.goodsType())) - } - - val goodsType: Action[AnyContent] = Action { implicit request => - Ok(page(s"goodsType.title", routes.SkeletonJourneyController.goodsCategory())) + Ok(page(s"valueWeightOfGoods.title", routes.SkeletonJourneyController.searchGoods())) } - val goodsCategory: Action[AnyContent] = Action { implicit request => - Ok(page(s"goodsCategory.title", routes.SkeletonJourneyController.goodsDetailsWhere())) + val searchGoods: Action[AnyContent] = Action { implicit request => + Ok(page(s"searchGoods.title", routes.SkeletonJourneyController.searchGoodsCountry())) } - val goodsDetailsWhere: Action[AnyContent] = Action { implicit request => - Ok(page(s"goodsDetailsWhere.title", routes.SkeletonJourneyController.goodsDetailsCost())) + val searchGoodsCountry: Action[AnyContent] = Action { implicit request => + Ok(page(s"searchGoodsCountry.title", routes.SkeletonJourneyController.purchaseDetails())) } - val goodsDetailsCost: Action[AnyContent] = Action { implicit request => - Ok(page(s"goodsDetailsCost.title", routes.SkeletonJourneyController.goodsReview())) + val purchaseDetails: Action[AnyContent] = Action { implicit request => + Ok(page(s"purchaseDetails.title", routes.SkeletonJourneyController.reviewGoods())) } - val goodsReview: Action[AnyContent] = Action { implicit request => - Ok(page(s"goodsReview.title", routes.SkeletonJourneyController.calculation())) + val reviewGoods: Action[AnyContent] = Action { implicit request => + Ok(page(s"reviewGoods.title", routes.SkeletonJourneyController.taxCalculation())) } - val calculation: Action[AnyContent] = Action { implicit request => - Ok(page(s"calculation.title", routes.SkeletonJourneyController.traderAgent())) + val taxCalculation: Action[AnyContent] = Action { implicit request => + Ok(page(s"taxCalculation.title", routes.SkeletonJourneyController.customsAgent())) } - val traderAgent: Action[AnyContent] = Action { implicit request => - Ok(page(s"traderAgent.title", routes.SkeletonJourneyController.traderDetails())) + val customsAgent: Action[AnyContent] = Action { implicit request => + Ok(page(s"customsAgent.title", routes.SkeletonJourneyController.traderDetails())) } val traderDetails: Action[AnyContent] = Action { implicit request => - Ok(page(s"traderDetails.title", routes.SkeletonJourneyController.traderAddress())) + Ok(page(s"traderDetails.title", routes.SkeletonJourneyController.enterTraderAddress())) } - val traderAddress: Action[AnyContent] = Action { implicit request => - Ok(page(s"traderAddress.title", routes.SkeletonJourneyController.traderAddressList())) + val enterTraderAddress: Action[AnyContent] = Action { implicit request => + Ok(page(s"enterTraderAddress.title", routes.SkeletonJourneyController.selectTraderAddress())) } - val traderAddressList: Action[AnyContent] = Action { implicit request => - Ok(page(s"traderAddressList.title", routes.SkeletonJourneyController.traderEori())) + val selectTraderAddress: Action[AnyContent] = Action { implicit request => + Ok(page(s"selectTraderAddress.title", routes.SkeletonJourneyController.enterEoriNumber())) } - val traderEori: Action[AnyContent] = Action { implicit request => - Ok(page(s"traderEori.title", routes.SkeletonJourneyController.traderJourney())) + val enterEoriNumber: Action[AnyContent] = Action { implicit request => + Ok(page(s"enterEoriNumber.title", routes.SkeletonJourneyController.traderJourneyDetails())) } - val traderJourney: Action[AnyContent] = Action { implicit request => - Ok(page(s"traderJourney.title", routes.CheckYourAnswersController.onPageLoad())) + val traderJourneyDetails: Action[AnyContent] = Action { implicit request => + Ok(page(s"traderJourneyDetails.title", routes.CheckYourAnswersController.onPageLoad())) } } diff --git a/app/uk/gov/hmrc/merchandiseinbaggagefrontend/model/core/GoodsDestination.scala b/app/uk/gov/hmrc/merchandiseinbaggagefrontend/model/core/GoodsDestination.scala index ea3de58a9..856ac1f90 100644 --- a/app/uk/gov/hmrc/merchandiseinbaggagefrontend/model/core/GoodsDestination.scala +++ b/app/uk/gov/hmrc/merchandiseinbaggagefrontend/model/core/GoodsDestination.scala @@ -34,4 +34,4 @@ object GoodsDestination extends Enumerable.Implicits { implicit val enumerable: Enumerable[GoodsDestination] = Enumerable(values.map(v => v.toString -> v): _*) -} \ No newline at end of file +} diff --git a/app/uk/gov/hmrc/merchandiseinbaggagefrontend/views/SkeletonPage.scala.html b/app/uk/gov/hmrc/merchandiseinbaggagefrontend/views/SkeletonPage.scala.html index f660e2b11..e5e9fdde5 100644 --- a/app/uk/gov/hmrc/merchandiseinbaggagefrontend/views/SkeletonPage.scala.html +++ b/app/uk/gov/hmrc/merchandiseinbaggagefrontend/views/SkeletonPage.scala.html @@ -13,5 +13,5 @@ @layout(pageTitle = Some(messages(titleMessageKey))) {

@messages(titleMessageKey)

- @button(messages("next.button"), href = Some(next.url), classes = Some("govuk-button")) + @button(messages("site.continue"), href = Some(next.url)) } diff --git a/conf/app.routes b/conf/app.routes index ac212d7da..65376b5d5 100644 --- a/conf/app.routes +++ b/conf/app.routes @@ -9,22 +9,20 @@ GET /payment uk.gov.hmrc.merchandiseinbaggagefronten GET /process-payment uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.PaymentController.onSubmit() GET /start uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.start -GET /import-export uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.importExport -GET /multiple-countries-eu-check uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.multipleCountriesEuCheck -GET /goods-excise uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.goodsExcise +GET /select-declaration-type uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.selectDeclarationType +GET /excise-and-restricted-goods uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.exciseAndRestrictedGoods GET /value-weight-of-goods uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.valueWeightOfGoods -GET /goods-type uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.goodsType -GET /goods-category uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.goodsCategory -GET /goods-details-where uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.goodsDetailsWhere -GET /goods-details-cost uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.goodsDetailsCost -GET /goods-review uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.goodsReview -GET /calculation uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.calculation -GET /trader-agent uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.traderAgent +GET /search-goods uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.searchGoods +GET /search-goods-country uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.searchGoodsCountry +GET /purchase-details uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.purchaseDetails +GET /review-goods uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.reviewGoods +GET /tax-calculation uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.taxCalculation +GET /customs-agent uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.customsAgent GET /trader-details uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.traderDetails -GET /trader-address uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.traderAddress -GET /trader-address-list uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.traderAddressList -GET /trader-eori uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.traderEori -GET /trader-journey uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.traderJourney +GET /enter-trader-address uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.enterTraderAddress +GET /select-trader-address uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.selectTraderAddress +GET /enter-eori-number uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.enterEoriNumber +GET /trader-journey-details uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.SkeletonJourneyController.traderJourneyDetails # GoodsDestination GET /goods-destination uk.gov.hmrc.merchandiseinbaggagefrontend.controllers.GoodsDestinationController.onPageLoad() diff --git a/conf/messages b/conf/messages index c0ad0fd24..e5943deda 100644 --- a/conf/messages +++ b/conf/messages @@ -19,22 +19,20 @@ payment.button = Pay now next.button = Next start.title = Declaring merchandise in your baggage -importExport.title = What do you need to declare? -multipleCountriesEuCheck.title = Where are the goods coming from? -goodsExcise.title = Are you bringing in excise or restricted goods? -valueWeightOfGoods.title = Is the total value of the goods over £873 or 1000kg? -goodsType.title = Enter the detail of each individual item -goodsCategory.title = Which rate of VAT do the goods fit into? -goodsDetailsWhere.title = In which country did you purchase the goods? -goodsDetailsCost.title = How much did you pay for the goods? -goodsReview.title = Review your goods -calculation.title = Tax due on these goods -traderAgent.title = Are you a customs agent? -traderDetails.title = What is the name of carrying the goods? -traderAddress.title = What is your address? -traderAddressList.title = Select your address -traderEori.title = What is your EORI number? -traderJourney.title = What your journey details? +selectDeclarationType.title = What do you need to declare? +exciseAndRestrictedGoods.title = Are you bringing in excise goods or restricted goods? +valueWeightOfGoods.title = Is the total value of the goods over £1500 or 1000kg? +searchGoods.title = What goods are you bringing into the UK? +searchGoodsCountry.title = In what country did you buy the x? +purchaseDetails.title = How much did you pay for the x? +reviewGoods.title = Review your goods +taxCalculation.title = Tax due on these goods £x +customsAgent.title = Are you a customs agent? +traderDetails.title = Enter the name of the person carrying the goods +enterTraderAddress.title = Find your address +selectTraderAddress.title = Select your address +enterEoriNumber.title = What is your EORI number? +traderJourneyDetails.title = Journey Details checkYourAnswers.title = Check your answers before making your declaration diff --git a/test/uk/gov/hmrc/merchandiseinbaggagefrontend/controllers/GoodsDestinationControllerSpec.scala b/test/uk/gov/hmrc/merchandiseinbaggagefrontend/controllers/GoodsDestinationControllerSpec.scala index b669ada5b..c69e5ff38 100644 --- a/test/uk/gov/hmrc/merchandiseinbaggagefrontend/controllers/GoodsDestinationControllerSpec.scala +++ b/test/uk/gov/hmrc/merchandiseinbaggagefrontend/controllers/GoodsDestinationControllerSpec.scala @@ -39,16 +39,15 @@ class GoodsDestinationControllerSpec extends BaseSpecWithApplication { } //TODO assert against redirection/storage when MIBM-77 done - "return OK when valid selection submitted" in { + "Redirect to /value-weight-of-goods when valid selection submitted" in { val request = FakeRequest(POST, route).withCSRFToken .asInstanceOf[FakeRequest[AnyContentAsEmpty.type]] .withFormUrlEncodedBody(("value", "ni")) - val submittedForm = form.bindFromRequest()(request) - val result = controller.onSubmit()(request) - status(result) mustEqual OK + status(result) mustEqual SEE_OTHER + redirectLocation(result).get mustEqual routes.SkeletonJourneyController.valueWeightOfGoods().toString } "return BAD_REQUEST and errors when no selection made" in { diff --git a/test/uk/gov/hmrc/merchandiseinbaggagefrontend/controllers/SkeletonJourneyControllerSpec.scala b/test/uk/gov/hmrc/merchandiseinbaggagefrontend/controllers/SkeletonJourneyControllerSpec.scala index 4d47752e3..46e0e817f 100644 --- a/test/uk/gov/hmrc/merchandiseinbaggagefrontend/controllers/SkeletonJourneyControllerSpec.scala +++ b/test/uk/gov/hmrc/merchandiseinbaggagefrontend/controllers/SkeletonJourneyControllerSpec.scala @@ -19,151 +19,133 @@ class SkeletonJourneyControllerSpec extends BaseSpecWithApplication { val title = "Declaring merchandise in your baggage" val getRequest = buildGet(routes.SkeletonJourneyController.start().url) - ensure(controller.start(getRequest), title, routes.SkeletonJourneyController.importExport()) + ensure(controller.start(getRequest), title, routes.SkeletonJourneyController.selectDeclarationType()) } } - "importExport" should { + "selectDeclarationType" should { "render the page" in { val title = "What do you need to declare?" - val getRequest = buildGet(routes.SkeletonJourneyController.importExport().url) + val getRequest = buildGet(routes.SkeletonJourneyController.selectDeclarationType().url) - ensure(controller.importExport(getRequest), title, routes.SkeletonJourneyController.multipleCountriesEuCheck()) + ensure(controller.selectDeclarationType(getRequest), title, routes.SkeletonJourneyController.exciseAndRestrictedGoods()) } } - "multipleCountriesEuCheck" should { + "exciseAndRestrictedGoods" should { "render the page" in { - val title = "Where are the goods coming from?" - val getRequest = buildGet(routes.SkeletonJourneyController.multipleCountriesEuCheck().url) + val title = "Are you bringing in excise goods or restricted goods?" + val getRequest = buildGet(routes.SkeletonJourneyController.exciseAndRestrictedGoods().url) - ensure(controller.multipleCountriesEuCheck(getRequest), title, routes.SkeletonJourneyController.goodsExcise()) - } - } - - "goodsExcise" should { - "render the page" in { - val title = "Are you bringing in excise or restricted goods?" - val getRequest = buildGet(routes.SkeletonJourneyController.goodsExcise().url) - - ensure(controller.goodsExcise(getRequest), title, routes.SkeletonJourneyController.valueWeightOfGoods()) + ensure(controller.exciseAndRestrictedGoods(getRequest), title, routes.GoodsDestinationController.onPageLoad()) } } "valueWeightOfGoods" should { "render the page" in { - val title = "Is the total value of the goods over £873 or 1000kg?" + val title = "Is the total value of the goods over £1500 or 1000kg?" val getRequest = buildGet(routes.SkeletonJourneyController.valueWeightOfGoods().url) - ensure(controller.valueWeightOfGoods(getRequest), title, routes.SkeletonJourneyController.goodsType()) - } - } - - "goodsType" should { - "render the page" in { - val title = "Enter the detail of each individual item" - val getRequest = buildGet(routes.SkeletonJourneyController.goodsType().url) - - ensure(controller.goodsType(getRequest), title, routes.SkeletonJourneyController.goodsCategory()) + ensure(controller.valueWeightOfGoods(getRequest), title, routes.SkeletonJourneyController.searchGoods()) } } - "goodsCategory" should { + "searchGoods" should { "render the page" in { - val title = "Which rate of VAT do the goods fit into?" - val getRequest = buildGet(routes.SkeletonJourneyController.goodsCategory().url) + val title = "What goods are you bringing into the UK?" + val getRequest = buildGet(routes.SkeletonJourneyController.searchGoods().url) - ensure(controller.goodsCategory(getRequest), title, routes.SkeletonJourneyController.goodsDetailsWhere()) + ensure(controller.searchGoods(getRequest), title, routes.SkeletonJourneyController.searchGoodsCountry()) } } - "goodsDetailsWhere" should { + "searchGoodsCountry" should { "render the page" in { - val title = "In which country did you purchase the goods?" - val getRequest = buildGet(routes.SkeletonJourneyController.goodsDetailsWhere().url) + val title = "In what country did you buy the x?" + val getRequest = buildGet(routes.SkeletonJourneyController.searchGoodsCountry().url) - ensure(controller.goodsDetailsWhere(getRequest), title, routes.SkeletonJourneyController.goodsDetailsCost()) + ensure(controller.searchGoodsCountry(getRequest), title, routes.SkeletonJourneyController.purchaseDetails()) } } - "goodsDetailsCost" should { + "purchaseDetails" should { "render the page" in { - val title = "How much did you pay for the goods?" - val getRequest = buildGet(routes.SkeletonJourneyController.goodsDetailsCost().url) + val title = "How much did you pay for the x?" + val getRequest = buildGet(routes.SkeletonJourneyController.purchaseDetails().url) - ensure(controller.goodsDetailsCost(getRequest), title, routes.SkeletonJourneyController.goodsReview()) + ensure(controller.purchaseDetails(getRequest), title, routes.SkeletonJourneyController.reviewGoods()) } } - "goodsReview" should { + "reviewGoods" should { "render the page" in { val title = "Review your goods" - val getRequest = buildGet(routes.SkeletonJourneyController.goodsReview().url) + val getRequest = buildGet(routes.SkeletonJourneyController.reviewGoods().url) - ensure(controller.goodsReview(getRequest), title, routes.SkeletonJourneyController.calculation()) + ensure(controller.reviewGoods(getRequest), title, routes.SkeletonJourneyController.taxCalculation()) } } - "calculation" should { + "taxCalculation" should { "render the page" in { - val title = "Tax due on these goods" - val getRequest = buildGet(routes.SkeletonJourneyController.calculation().url) + val title = "Tax due on these goods £x" + val getRequest = buildGet(routes.SkeletonJourneyController.taxCalculation().url) - ensure(controller.calculation(getRequest), title, routes.SkeletonJourneyController.traderAgent()) + ensure(controller.taxCalculation(getRequest), title, routes.SkeletonJourneyController.customsAgent()) } } - "traderAgent" should { + "customsAgent" should { "render the page" in { val title = "Are you a customs agent?" - val getRequest = buildGet(routes.SkeletonJourneyController.traderAgent().url) + val getRequest = buildGet(routes.SkeletonJourneyController.customsAgent().url) - ensure(controller.traderAgent(getRequest), title, routes.SkeletonJourneyController.traderDetails()) + ensure(controller.customsAgent(getRequest), title, routes.SkeletonJourneyController.traderDetails()) } } "traderDetails" should { "render the page" in { - val title = "What is the name of carrying the goods?" + val title = "Enter the name of the person carrying the goods" val getRequest = buildGet(routes.SkeletonJourneyController.traderDetails().url) - ensure(controller.traderDetails(getRequest), title, routes.SkeletonJourneyController.traderAddress()) + ensure(controller.traderDetails(getRequest), title, routes.SkeletonJourneyController.enterTraderAddress()) } } - "traderAddress" should { + "enterTraderAddress" should { "render the page" in { - val title = "What is your address?" - val getRequest = buildGet(routes.SkeletonJourneyController.traderAddress().url) + val title = "Find your address" + val getRequest = buildGet(routes.SkeletonJourneyController.enterTraderAddress().url) - ensure(controller.traderAddress(getRequest), title, routes.SkeletonJourneyController.traderAddressList()) + ensure(controller.enterTraderAddress(getRequest), title, routes.SkeletonJourneyController.selectTraderAddress()) } } - "traderAddressList" should { + "selectTraderAddress" should { "render the page" in { val title = "Select your address" - val getRequest = buildGet(routes.SkeletonJourneyController.traderAddressList().url) + val getRequest = buildGet(routes.SkeletonJourneyController.selectTraderAddress().url) - ensure(controller.traderAddressList(getRequest), title, routes.SkeletonJourneyController.traderEori()) + ensure(controller.selectTraderAddress(getRequest), title, routes.SkeletonJourneyController.enterEoriNumber()) } } - "traderEori" should { + "enterEoriNumber" should { "render the page" in { val title = "What is your EORI number?" - val getRequest = buildGet(routes.SkeletonJourneyController.traderEori().url) + val getRequest = buildGet(routes.SkeletonJourneyController.enterEoriNumber().url) - ensure(controller.traderEori(getRequest), title, routes.SkeletonJourneyController.traderJourney()) + ensure(controller.enterEoriNumber(getRequest), title, routes.SkeletonJourneyController.traderJourneyDetails()) } } - "traderJourney" should { + "traderJourneyDetails" should { "render the page" in { - val title = "What your journey details?" - val getRequest = buildGet(routes.SkeletonJourneyController.traderJourney().url) + val title = "Journey Details" + val getRequest = buildGet(routes.SkeletonJourneyController.traderJourneyDetails().url) - ensure(controller.traderJourney(getRequest), title, routes.CheckYourAnswersController.onPageLoad()) + ensure(controller.traderJourneyDetails(getRequest), title, routes.CheckYourAnswersController.onPageLoad()) } }