From b9f39449685c8cb65838c25ff7e043f16ddf88b0 Mon Sep 17 00:00:00 2001 From: Phil Lee Date: Wed, 23 Nov 2022 13:28:06 +0000 Subject: [PATCH] add start of bulk upload logs journey --- .../bulk_upload_logs_controller.rb | 37 +++++++++++++ app/views/bulk_upload_logs/show.html.erb | 1 + .../bulk_upload_logs_controller_spec.rb | 54 +++++++++++++++++++ 3 files changed, 92 insertions(+) create mode 100644 app/controllers/bulk_upload_logs_controller.rb create mode 100644 app/views/bulk_upload_logs/show.html.erb create mode 100644 spec/requests/bulk_upload_logs_controller_spec.rb diff --git a/app/controllers/bulk_upload_logs_controller.rb b/app/controllers/bulk_upload_logs_controller.rb new file mode 100644 index 000000000..248da1927 --- /dev/null +++ b/app/controllers/bulk_upload_logs_controller.rb @@ -0,0 +1,37 @@ +class BulkUploadLogsController < ApplicationController + before_action :authenticate_user! + + def start + if in_crossover_period? + redirect_to bulk_upload_path(id: "year") + else + redirect_to bulk_upload_path(id: "prepare-your-file") + end + end + +private + + def in_crossover_period? + FormHandler.instance.forms.values.any?(&:in_crossover_period?) + end + + def bulk_upload_path(id:) + case log_type + when "lettings" + bulk_upload_lettings_log_path(id:) + when "sales" + bulk_upload_sales_log_path(id:) + end + end + + def log_type + case request.path.split("/")[1] + when "lettings-logs" + "lettings" + when "sales-logs" + "sales" + else + raise "Log type not handled" + end + end +end diff --git a/app/views/bulk_upload_logs/show.html.erb b/app/views/bulk_upload_logs/show.html.erb new file mode 100644 index 000000000..7c5959ba8 --- /dev/null +++ b/app/views/bulk_upload_logs/show.html.erb @@ -0,0 +1 @@ +Find me in app/views/bulk_upload_logs/show.html.erb diff --git a/spec/requests/bulk_upload_logs_controller_spec.rb b/spec/requests/bulk_upload_logs_controller_spec.rb new file mode 100644 index 000000000..411ab81e7 --- /dev/null +++ b/spec/requests/bulk_upload_logs_controller_spec.rb @@ -0,0 +1,54 @@ +require "rails_helper" + +RSpec.describe BulkUploadLogsController, type: :request do + let(:user) { FactoryBot.create(:user) } + let(:organisation) { user.organisation } + + before do + sign_in user + end + + describe "GET /lettings-logs/bulk-upload-logs/start" do + context "when not in crossover period" do + it "redirects to /prepare-your-file" do + Timecop.freeze(2023, 8, 1) do + get "/lettings-logs/bulk-upload-logs/start", params: {} + + expect(response).to redirect_to("/lettings-logs/bulk-upload-logs/prepare-your-file") + end + end + end + + context "when in crossover period" do + it "redirects to /year" do + Timecop.freeze(2023, 6, 1) do + get "/lettings-logs/bulk-upload-logs/start", params: {} + + expect(response).to redirect_to("/lettings-logs/bulk-upload-logs/year") + end + end + end + end + + describe "GET /sales-logs/bulk-upload-logs/start" do + context "when not in crossover period" do + it "redirects to /prepare-your-file" do + Timecop.freeze(2023, 8, 1) do + get "/sales-logs/bulk-upload-logs/start", params: {} + + expect(response).to redirect_to("/sales-logs/bulk-upload-logs/prepare-your-file") + end + end + end + + context "when in crossover period" do + it "redirects to /year" do + Timecop.freeze(2023, 6, 1) do + get "/sales-logs/bulk-upload-logs/start", params: {} + + expect(response).to redirect_to("/sales-logs/bulk-upload-logs/year") + end + end + end + end +end