From 72fcd5bc4808d65890c2291db28cb6b16e3008d1 Mon Sep 17 00:00:00 2001 From: Andrew White Date: Thu, 13 Feb 2025 19:00:57 +0000 Subject: [PATCH] Rename NewPolicyClass to PolicyClass --- .../policy_areas/policy_classes_controller.rb | 6 +-- app/models/planning_application.rb | 2 +- .../planning_application_policy_class.rb | 4 +- .../{new_policy_class.rb => policy_class.rb} | 2 +- app/models/policy_part.rb | 2 +- app/models/policy_section.rb | 6 +-- .../policy_areas/policy_classes/new.html.erb | 6 +-- .../_assess_against_legislation.html.erb | 2 +- .../policy_classes/index.html.erb | 2 +- config/locales/en.yml | 10 ++--- ...3183440_rename_new_policy_classes_table.rb | 9 ++++ ...83643_rename_new_policy_class_id_column.rb | 10 +++++ ...213184646_rename_new_policy_class_index.rb | 11 +++++ db/schema.rb | 42 +++++++++---------- db/seeds.rb | 4 +- .../bops_config/gpdo/base_controller.rb | 2 +- .../gpdo/policy_class_controller.rb | 4 +- .../gpdo/policy_parts/_form.html.erb | 2 +- engines/bops_config/spec/system/gpdo_spec.rb | 18 ++++---- .../planning_application_policy_class.rb | 2 +- .../{new_policy_class.rb => policy_class.rb} | 2 +- spec/factories/policy_section.rb | 2 +- ...icy_class_spec.rb => policy_class_spec.rb} | 6 +-- spec/models/policy_section_spec.rb | 10 ++--- .../assessment_against_legislation_spec.rb | 16 +++---- .../review/policy_class_spec.rb | 10 ++--- .../review/tasks_index_spec.rb | 4 +- 27 files changed, 110 insertions(+), 86 deletions(-) rename app/models/{new_policy_class.rb => policy_class.rb} (94%) create mode 100644 db/migrate/20250213183440_rename_new_policy_classes_table.rb create mode 100644 db/migrate/20250213183643_rename_new_policy_class_id_column.rb create mode 100644 db/migrate/20250213184646_rename_new_policy_class_index.rb rename spec/factories/{new_policy_class.rb => policy_class.rb} (86%) rename spec/models/{new_policy_class_spec.rb => policy_class_spec.rb} (86%) diff --git a/app/controllers/planning_applications/assessment/policy_areas/policy_classes_controller.rb b/app/controllers/planning_applications/assessment/policy_areas/policy_classes_controller.rb index eef961f477..f74e9b4946 100644 --- a/app/controllers/planning_applications/assessment/policy_areas/policy_classes_controller.rb +++ b/app/controllers/planning_applications/assessment/policy_areas/policy_classes_controller.rb @@ -23,10 +23,10 @@ def new end def create - class_ids = params[:new_policy_classes].compact_blank + class_ids = params[:policy_classes].compact_blank - @part.new_policy_classes.where(id: class_ids).find_each do |policy_class| - @planning_application.planning_application_policy_classes.find_or_create_by!(new_policy_class_id: policy_class.id) + @part.policy_classes.where(id: class_ids).find_each do |policy_class| + @planning_application.planning_application_policy_classes.find_or_create_by!(policy_class_id: policy_class.id) end redirect_to planning_application_assessment_tasks_path(@planning_application), notice: t(".success") diff --git a/app/models/planning_application.rb b/app/models/planning_application.rb index 13aea78b2b..2f244ef6bb 100644 --- a/app/models/planning_application.rb +++ b/app/models/planning_application.rb @@ -57,7 +57,7 @@ class WithdrawOrCancelError < RuntimeError; end has_many :site_visits, -> { by_created_at_desc } has_many :press_notices, -> { by_created_at_desc } has_many :planning_application_policy_classes - has_many :new_policy_classes, through: :planning_application_policy_classes + has_many :policy_classes, through: :planning_application_policy_classes has_many :planning_application_policy_sections has_many :policy_sections, through: :planning_application_policy_sections has_many :additional_services diff --git a/app/models/planning_application_policy_class.rb b/app/models/planning_application_policy_class.rb index 921c36db56..872933d3fc 100644 --- a/app/models/planning_application_policy_class.rb +++ b/app/models/planning_application_policy_class.rb @@ -2,7 +2,7 @@ class PlanningApplicationPolicyClass < ApplicationRecord belongs_to :planning_application - belongs_to :new_policy_class + belongs_to :policy_class with_options dependent: :destroy do has_many :reviews, -> { order(created_at: :desc) }, as: :owner @@ -12,8 +12,6 @@ class PlanningApplicationPolicyClass < ApplicationRecord validates :reporting_types, presence: true end - alias_method :policy_class, :new_policy_class - def current_review reviews.load.first || reviews.create! end diff --git a/app/models/new_policy_class.rb b/app/models/policy_class.rb similarity index 94% rename from app/models/new_policy_class.rb rename to app/models/policy_class.rb index c058afad21..a9a2b31f2a 100644 --- a/app/models/new_policy_class.rb +++ b/app/models/policy_class.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class NewPolicyClass < ApplicationRecord +class PolicyClass < ApplicationRecord belongs_to :policy_part has_many :policy_sections, -> { order(:section) }, dependent: :restrict_with_error has_many :planning_application_policy_sections, through: :policy_sections diff --git a/app/models/policy_part.rb b/app/models/policy_part.rb index c054d89623..97cb4c4db2 100644 --- a/app/models/policy_part.rb +++ b/app/models/policy_part.rb @@ -2,7 +2,7 @@ class PolicyPart < ApplicationRecord belongs_to :policy_schedule - has_many :new_policy_classes, -> { order(:section) }, dependent: :restrict_with_error + has_many :policy_classes, -> { order(:section) }, dependent: :restrict_with_error with_options presence: true do validates :number, uniqueness: {scope: :policy_schedule}, numericality: {greater_than_or_equal_to: 1, less_than_or_equal_to: 20} diff --git a/app/models/policy_section.rb b/app/models/policy_section.rb index e598ec09dc..0d1fb336e0 100644 --- a/app/models/policy_section.rb +++ b/app/models/policy_section.rb @@ -9,19 +9,17 @@ class PolicySection < ApplicationRecord "Other" ].freeze - belongs_to :new_policy_class + belongs_to :policy_class has_many :planning_application_policy_sections, dependent: :restrict_with_error has_many :planning_applications, through: :planning_application_policy_sections with_options presence: true do - validates :section, uniqueness: {scope: :new_policy_class} + validates :section, uniqueness: {scope: :policy_class} validates :description end validates :title, inclusion: {in: TITLES} - alias_method :policy_class, :new_policy_class - scope :grouped_and_ordered_by_title, -> { group_by(&:title) } diff --git a/app/views/planning_applications/assessment/policy_areas/policy_classes/new.html.erb b/app/views/planning_applications/assessment/policy_areas/policy_classes/new.html.erb index 8913f58601..b6c53f9f30 100644 --- a/app/views/planning_applications/assessment/policy_areas/policy_classes/new.html.erb +++ b/app/views/planning_applications/assessment/policy_areas/policy_classes/new.html.erb @@ -38,13 +38,13 @@
<%= form.collection_check_boxes( - :new_policy_classes, - @part.new_policy_classes.menu, + :policy_classes, + @part.policy_classes.menu, :first, :last ) do |b| %>
- <% if b.object.first.in?(@planning_application.planning_application_policy_classes.pluck(:new_policy_class_id)) %> + <% if b.object.first.in?(@planning_application.planning_application_policy_classes.pluck(:policy_class_id)) %> <%= b.check_box(class: "govuk-checkboxes__input", disabled: true, checked: true) %> <% else %> <%= b.check_box(class: "govuk-checkboxes__input") %> diff --git a/app/views/planning_applications/assessment/tasks/_assess_against_legislation.html.erb b/app/views/planning_applications/assessment/tasks/_assess_against_legislation.html.erb index ce35195f1d..26d51e0fed 100644 --- a/app/views/planning_applications/assessment/tasks/_assess_against_legislation.html.erb +++ b/app/views/planning_applications/assessment/tasks/_assess_against_legislation.html.erb @@ -10,7 +10,7 @@ <% else %> - <% @planning_application.planning_application_policy_classes.order(:new_policy_class_id).each do |pa_policy_class| %> + <% @planning_application.planning_application_policy_classes.order(:policy_class_id).each do |pa_policy_class| %> <%= render( TaskListItems::Assessment::PlanningApplicationPolicyClassComponent.new( planning_application_policy_class: pa_policy_class, diff --git a/app/views/planning_applications/review/policy_areas/policy_classes/index.html.erb b/app/views/planning_applications/review/policy_areas/policy_classes/index.html.erb index 0690a34d56..472b253066 100644 --- a/app/views/planning_applications/review/policy_areas/policy_classes/index.html.erb +++ b/app/views/planning_applications/review/policy_areas/policy_classes/index.html.erb @@ -15,7 +15,7 @@ <%= render "shared/dates_and_assignment_header" %>
    - <% @planning_application.planning_application_policy_classes.order(:new_policy_class_id).each do |policy_class| %> + <% @planning_application.planning_application_policy_classes.order(:policy_class_id).each do |policy_class| %> <% next if policy_class.current_review.not_started? || policy_class.current_review.in_progress? %> <%= render TaskListItems::Reviewing::Component.new do |c| %> diff --git a/config/locales/en.yml b/config/locales/en.yml index c87ffaa590..50f6b8bc91 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -317,12 +317,6 @@ en: date_invalid: The date the meeting took place must be a valid date date_not_on_or_after: The date the meeting took place must be on or after the consultation start date date_not_on_or_before: The date the meeting took place must be on or before today - new_policy_class: - attributes: - name: - blank: Enter a description for the class - section: - blank: Enter a section for the class permitted_development_right: attributes: reviewer_comment: @@ -357,6 +351,10 @@ en: attributes: base: policies_to_be_determined: All policies must be assessed + name: + blank: Enter a description for the class + section: + blank: Enter a section for the class policy_part: attributes: name: diff --git a/db/migrate/20250213183440_rename_new_policy_classes_table.rb b/db/migrate/20250213183440_rename_new_policy_classes_table.rb new file mode 100644 index 0000000000..33d58f0d02 --- /dev/null +++ b/db/migrate/20250213183440_rename_new_policy_classes_table.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class RenameNewPolicyClassesTable < ActiveRecord::Migration[7.2] + def change + safety_assured do + rename_table :new_policy_classes, :policy_classes + end + end +end diff --git a/db/migrate/20250213183643_rename_new_policy_class_id_column.rb b/db/migrate/20250213183643_rename_new_policy_class_id_column.rb new file mode 100644 index 0000000000..91dec1bc84 --- /dev/null +++ b/db/migrate/20250213183643_rename_new_policy_class_id_column.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +class RenameNewPolicyClassIdColumn < ActiveRecord::Migration[7.2] + def change + safety_assured do + rename_column :planning_application_policy_classes, :new_policy_class_id, :policy_class_id + rename_column :policy_sections, :new_policy_class_id, :policy_class_id + end + end +end diff --git a/db/migrate/20250213184646_rename_new_policy_class_index.rb b/db/migrate/20250213184646_rename_new_policy_class_index.rb new file mode 100644 index 0000000000..a9362c685c --- /dev/null +++ b/db/migrate/20250213184646_rename_new_policy_class_index.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +class RenameNewPolicyClassIndex < ActiveRecord::Migration[7.2] + def change + safety_assured do + rename_index :planning_application_policy_classes, + "ix_pa_policy_classes_on_new_policy_class_and_pa", + "ix_pa_policy_classes_on_policy_class_and_pa" + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 9a069c44ea..886969a355 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.2].define(version: 2025_02_13_183043) do +ActiveRecord::Schema[7.2].define(version: 2025_02_13_184646) do # These are extensions that must be enabled in order to support this database enable_extension "btree_gin" enable_extension "plpgsql" @@ -678,17 +678,6 @@ t.index ["consultation_id"], name: "ix_neighbours_on_consultation_id" end - create_table "new_policy_classes", force: :cascade do |t| - t.string "section", null: false - t.string "name", null: false - t.string "url" - t.bigint "policy_part_id", null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["policy_part_id"], name: "ix_new_policy_classes_on_policy_part_id" - t.index ["section", "policy_part_id"], name: "ix_new_policy_classes_on_section__policy_part_id", unique: true - end - create_table "notes", force: :cascade do |t| t.bigint "planning_application_id", null: false t.bigint "user_id", null: false @@ -781,12 +770,12 @@ create_table "planning_application_policy_classes", force: :cascade do |t| t.bigint "planning_application_id", null: false - t.bigint "new_policy_class_id", null: false + t.bigint "policy_class_id", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false - t.index ["new_policy_class_id", "planning_application_id"], name: "ix_pa_policy_classes_on_new_policy_class_and_pa", unique: true - t.index ["new_policy_class_id"], name: "ix_planning_application_policy_classes_on_new_policy_class_id" t.index ["planning_application_id"], name: "ix_planning_application_policy_classes_on_planning_application_" + t.index ["policy_class_id", "planning_application_id"], name: "ix_pa_policy_classes_on_policy_class_and_pa", unique: true + t.index ["policy_class_id"], name: "ix_planning_application_policy_classes_on_policy_class_id" end create_table "planning_application_policy_sections", force: :cascade do |t| @@ -917,6 +906,17 @@ t.index ["planning_application_id"], name: "ix_planx_planning_data_on_planning_application_id" end + create_table "policy_classes", force: :cascade do |t| + t.string "section", null: false + t.string "name", null: false + t.string "url" + t.bigint "policy_part_id", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["policy_part_id"], name: "ix_policy_classes_on_policy_part_id" + t.index ["section", "policy_part_id"], name: "ix_policy_classes_on_section__policy_part_id", unique: true + end + create_table "policy_parts", force: :cascade do |t| t.integer "number", null: false t.string "name", null: false @@ -938,12 +938,12 @@ create_table "policy_sections", force: :cascade do |t| t.string "section", null: false t.text "description", null: false - t.bigint "new_policy_class_id", null: false + t.bigint "policy_class_id", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false t.string "title", default: "Other", null: false - t.index ["new_policy_class_id"], name: "ix_policy_sections_on_new_policy_class_id" - t.index ["section", "new_policy_class_id"], name: "ix_policy_sections_on_section__new_policy_class_id", unique: true + t.index ["policy_class_id"], name: "ix_policy_sections_on_policy_class_id" + t.index ["section", "policy_class_id"], name: "ix_policy_sections_on_section__policy_class_id", unique: true end create_table "press_notices", force: :cascade do |t| @@ -1191,7 +1191,6 @@ add_foreign_key "neighbour_responses", "neighbours" add_foreign_key "neighbour_responses", "users", column: "redacted_by_id" add_foreign_key "neighbours", "consultations" - add_foreign_key "new_policy_classes", "policy_parts" add_foreign_key "notes", "planning_applications" add_foreign_key "notes", "users" add_foreign_key "old_policies", "old_policy_classes", column: "policy_class_id" @@ -1204,8 +1203,8 @@ add_foreign_key "planning_application_constraints", "planning_application_constraints_queries" add_foreign_key "planning_application_constraints", "planning_applications" add_foreign_key "planning_application_constraints_queries", "planning_applications" - add_foreign_key "planning_application_policy_classes", "new_policy_classes" add_foreign_key "planning_application_policy_classes", "planning_applications" + add_foreign_key "planning_application_policy_classes", "policy_classes" add_foreign_key "planning_application_policy_sections", "planning_applications" add_foreign_key "planning_application_policy_sections", "policy_sections" add_foreign_key "planning_applications", "api_users" @@ -1213,8 +1212,9 @@ add_foreign_key "planning_applications", "users" add_foreign_key "planning_applications", "users", column: "boundary_created_by_id" add_foreign_key "planx_planning_data", "planning_applications" + add_foreign_key "policy_classes", "policy_parts" add_foreign_key "policy_parts", "policy_schedules" - add_foreign_key "policy_sections", "new_policy_classes" + add_foreign_key "policy_sections", "policy_classes" add_foreign_key "press_notices", "planning_applications" add_foreign_key "proposal_measurements", "planning_applications" add_foreign_key "recommendations", "planning_applications" diff --git a/db/seeds.rb b/db/seeds.rb index 9b27cf1139..b284425d22 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -72,14 +72,14 @@ ) part_data["classes"].each do |class_data| - new_policy_class = part.new_policy_classes.find_or_create_by!( + policy_class = part.policy_classes.find_or_create_by!( section: class_data["section"], name: class_data["name"], url: class_data["url"] ) class_data["policies_attributes"].each do |section_data| - new_policy_class.policy_sections.find_or_create_by!( + policy_class.policy_sections.find_or_create_by!( section: section_data["section"].presence || class_data["section"], description: section_data["description"] ) diff --git a/engines/bops_config/app/controllers/bops_config/gpdo/base_controller.rb b/engines/bops_config/app/controllers/bops_config/gpdo/base_controller.rb index 53a3b9d72a..7ad591e43e 100644 --- a/engines/bops_config/app/controllers/bops_config/gpdo/base_controller.rb +++ b/engines/bops_config/app/controllers/bops_config/gpdo/base_controller.rb @@ -24,7 +24,7 @@ def set_policy_parts end def set_policy_classes - @policy_classes = @part.new_policy_classes + @policy_classes = @part.policy_classes end def policy_part_number diff --git a/engines/bops_config/app/controllers/bops_config/gpdo/policy_class_controller.rb b/engines/bops_config/app/controllers/bops_config/gpdo/policy_class_controller.rb index c67fb253c4..8cc6f72cb6 100644 --- a/engines/bops_config/app/controllers/bops_config/gpdo/policy_class_controller.rb +++ b/engines/bops_config/app/controllers/bops_config/gpdo/policy_class_controller.rb @@ -78,7 +78,7 @@ def policy_class_section_params end def policy_class_params - params.require(:new_policy_class).permit(*policy_class_attributes) + params.require(:policy_class).permit(*policy_class_attributes) end def policy_class_attributes @@ -86,7 +86,7 @@ def policy_class_attributes end def build_policy_class - @policy_class = @part.new_policy_classes.new + @policy_class = @part.policy_classes.new end def set_policy_class diff --git a/engines/bops_config/app/views/bops_config/gpdo/policy_parts/_form.html.erb b/engines/bops_config/app/views/bops_config/gpdo/policy_parts/_form.html.erb index 4a264b2dd8..ba521a74f8 100644 --- a/engines/bops_config/app/views/bops_config/gpdo/policy_parts/_form.html.erb +++ b/engines/bops_config/app/views/bops_config/gpdo/policy_parts/_form.html.erb @@ -5,7 +5,7 @@ <%= form.govuk_text_field :name, label: {text: t(".name_label")}, hint: {text: t(".name_hint")} %> <%= form.govuk_submit(t(".save")) do %> - <% if action_name == "edit" && @part.new_policy_classes.none? %> + <% if action_name == "edit" && @part.policy_classes.none? %> <%= govuk_button_link_to(t(".remove"), gpdo_policy_schedule_policy_part_path(@schedule.number, @part.number), warning: true, diff --git a/engines/bops_config/spec/system/gpdo_spec.rb b/engines/bops_config/spec/system/gpdo_spec.rb index 9a652a078e..f41e167a8a 100644 --- a/engines/bops_config/spec/system/gpdo_spec.rb +++ b/engines/bops_config/spec/system/gpdo_spec.rb @@ -219,7 +219,7 @@ context "when deleting the part" do let(:part2) { create(:policy_part, number: 2, name: "Minor operations", policy_schedule: schedule) } - let!(:policy_class) { create(:new_policy_class, policy_part: part2) } + let!(:policy_class) { create(:policy_class, policy_part: part2) } it "allows deleting the part when no policy classes are associated", :capybara do visit "/gpdo/schedule/2/part/1/edit" @@ -240,9 +240,9 @@ context "when managing policy classes" do let!(:part) { create(:policy_part, number: 1, name: "Development within the curtilage of a dwellinghouse", policy_schedule: schedule) } - let!(:policy_classA) { create(:new_policy_class, section: "A", name: "enlargement, improvement or other alteration of a dwellinghouse", policy_part: part) } - let!(:policy_classAA) { create(:new_policy_class, section: "AA", name: "enlargement of a dwellinghouse by construction of additional storeys", policy_part: part) } - let!(:policy_classB) { create(:new_policy_class, section: "B", name: "additions etc to the roof of a dwellinghouse", policy_part: part) } + let!(:policy_classA) { create(:policy_class, section: "A", name: "enlargement, improvement or other alteration of a dwellinghouse", policy_part: part) } + let!(:policy_classAA) { create(:policy_class, section: "AA", name: "enlargement of a dwellinghouse by construction of additional storeys", policy_part: part) } + let!(:policy_classB) { create(:policy_class, section: "B", name: "additions etc to the roof of a dwellinghouse", policy_part: part) } it "allows viewing and creating the policy classes" do click_link "GPDO" @@ -334,7 +334,7 @@ expect(page).to have_selector("h1", text: "Edit class") expect(page).to have_link("Back", href: "/gpdo/schedule/2/part/1/class") - expect(page).to have_selector("#new-policy-class-section-field[readonly]") + expect(page).to have_selector("#policy-class-section-field[readonly]") fill_in "Description", with: "other alterations to the roof of a dwellinghouse" fill_in "Link (optional)", with: "https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1/crossheading/class-c-other-alterations-to-the-roof-of-a-dwellinghouse" click_button "Save" @@ -352,7 +352,7 @@ end context "when deleting the policy class" do - let!(:policy_section) { create(:policy_section, new_policy_class: policy_classAA) } + let!(:policy_section) { create(:policy_section, policy_class: policy_classAA) } it "allows deleting the policy class when no policy sections are associated", :capybara do visit "/gpdo/schedule/2/part/1/class/A/edit" @@ -373,8 +373,8 @@ context "when managing policy sections" do let!(:part) { create(:policy_part, number: 1, name: "Development within the curtilage of a dwellinghouse", policy_schedule: schedule) } - let!(:policy_classAA) { create(:new_policy_class, section: "AA", name: "enlargement of a dwellinghouse by construction of additional storeys", policy_part: part) } - let!(:policy_section) { create(:policy_section, section: "1b(ii)", title: "Development not permitted", description: "if the dwellinghouse is located on a site of special scientific interest", new_policy_class: policy_classAA) } + let!(:policy_classAA) { create(:policy_class, section: "AA", name: "enlargement of a dwellinghouse by construction of additional storeys", policy_part: part) } + let!(:policy_section) { create(:policy_section, section: "1b(ii)", title: "Development not permitted", description: "if the dwellinghouse is located on a site of special scientific interest", policy_class: policy_classAA) } it "allows viewing and creating the policy sections" do click_link "GPDO" @@ -446,7 +446,7 @@ end context "when deleting the policy section" do - let!(:policy_section1a) { create(:policy_section, section: "1a", new_policy_class: policy_classAA) } + let!(:policy_section1a) { create(:policy_section, section: "1a", policy_class: policy_classAA) } let!(:planning_application_policy_section) { create(:planning_application_policy_section, policy_section:) } it "allows deleting the policy section when no planning application policy sections are associated", :capybara do diff --git a/spec/factories/planning_application_policy_class.rb b/spec/factories/planning_application_policy_class.rb index f049ed023a..50631e5ab4 100644 --- a/spec/factories/planning_application_policy_class.rb +++ b/spec/factories/planning_application_policy_class.rb @@ -2,7 +2,7 @@ FactoryBot.define do factory :planning_application_policy_class do - association :new_policy_class + association :policy_class association :planning_application end end diff --git a/spec/factories/new_policy_class.rb b/spec/factories/policy_class.rb similarity index 86% rename from spec/factories/new_policy_class.rb rename to spec/factories/policy_class.rb index 0eccc0fcfa..3e8113000a 100644 --- a/spec/factories/new_policy_class.rb +++ b/spec/factories/policy_class.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :new_policy_class do + factory :policy_class do sequence(:section, "A") sequence(:name) { |n| "Class Name #{n}" } url { "http://example.com" } diff --git a/spec/factories/policy_section.rb b/spec/factories/policy_section.rb index 5bcd882e8a..dd8acf788d 100644 --- a/spec/factories/policy_section.rb +++ b/spec/factories/policy_section.rb @@ -5,6 +5,6 @@ sequence(:section, "1a") description { "This is a description of the policy section." } - association :new_policy_class + association :policy_class end end diff --git a/spec/models/new_policy_class_spec.rb b/spec/models/policy_class_spec.rb similarity index 86% rename from spec/models/new_policy_class_spec.rb rename to spec/models/policy_class_spec.rb index dedba18cf5..4897ea8b8b 100644 --- a/spec/models/new_policy_class_spec.rb +++ b/spec/models/policy_class_spec.rb @@ -2,8 +2,8 @@ require "rails_helper" -RSpec.describe NewPolicyClass, type: :model do - subject(:policy_class) { build(:new_policy_class) } +RSpec.describe PolicyClass, type: :model do + subject(:policy_class) { build(:policy_class) } describe "validations" do describe "#section" do @@ -13,7 +13,7 @@ end it "validates uniqueness within scope of policy_part_id" do - create(:new_policy_class, section: policy_class.section, policy_part: policy_class.policy_part) + create(:policy_class, section: policy_class.section, policy_part: policy_class.policy_part) expect { policy_class.valid? }.to change { policy_class.errors[:section] }.to ["has already been taken"] end diff --git a/spec/models/policy_section_spec.rb b/spec/models/policy_section_spec.rb index f3fad651f4..1b759c8c41 100644 --- a/spec/models/policy_section_spec.rb +++ b/spec/models/policy_section_spec.rb @@ -12,8 +12,8 @@ expect { policy_section.valid? }.to change { policy_section.errors[:section] }.to ["Enter a section for the policy section"] end - it "validates uniqueness within scope of new_policy_class_id" do - create(:policy_section, section: policy_section.section, new_policy_class: policy_section.new_policy_class) + it "validates uniqueness within scope of policy_class_id" do + create(:policy_section, section: policy_section.section, policy_class: policy_section.policy_class) expect { policy_section.valid? }.to change { policy_section.errors[:section] }.to ["has already been taken"] end end @@ -25,10 +25,10 @@ end end - describe "#new_policy_class" do + describe "#policy_class" do it "validates presence" do - policy_section.new_policy_class = nil - expect { policy_section.valid? }.to change { policy_section.errors[:new_policy_class] }.to ["must exist"] + policy_section.policy_class = nil + expect { policy_section.valid? }.to change { policy_section.errors[:policy_class] }.to ["must exist"] end end diff --git a/spec/system/planning_applications/assessing/assessment_against_legislation_spec.rb b/spec/system/planning_applications/assessing/assessment_against_legislation_spec.rb index 7f0ab16c35..0aa83f602c 100644 --- a/spec/system/planning_applications/assessing/assessment_against_legislation_spec.rb +++ b/spec/system/planning_applications/assessing/assessment_against_legislation_spec.rb @@ -45,11 +45,11 @@ let!(:schedule) { create(:policy_schedule, number: 2, name: "Permitted development rights") } let!(:part1) { create(:policy_part, name: "Development within the curtilage of a dwellinghouse", number: 1, policy_schedule: schedule) } let!(:part2) { create(:policy_part, name: "Minor operations", number: 2, policy_schedule: schedule) } - let!(:policy_classA) { create(:new_policy_class, section: "A", name: "enlargement, improvement or other alteration of a dwellinghouse", policy_part: part1) } - let!(:policy_classB) { create(:new_policy_class, section: "B", name: "additions etc to the roof of a dwellinghouse", policy_part: part1) } + let!(:policy_classA) { create(:policy_class, section: "A", name: "enlargement, improvement or other alteration of a dwellinghouse", policy_part: part1) } + let!(:policy_classB) { create(:policy_class, section: "B", name: "additions etc to the roof of a dwellinghouse", policy_part: part1) } before do - create(:new_policy_class, section: "A", name: "gates, fences, walls etc", policy_part: part2) + create(:policy_class, section: "A", name: "gates, fences, walls etc", policy_part: part2) end it "lets the assessor add the relevant classes" do @@ -96,7 +96,7 @@ end it "lets the assessor remove a class to assess" do - create(:planning_application_policy_class, planning_application:, new_policy_class: policy_classA) + create(:planning_application_policy_class, planning_application:, policy_class: policy_classA) click_link("Check and assess") within("#assess-against-legislation-tasks") do @@ -119,12 +119,12 @@ end context "when assessing the policy sections" do - let!(:policy_section1a) { create(:policy_section, section: "1a", description: "description for section 1a", new_policy_class: policy_classA) } - let!(:policy_section1b) { create(:policy_section, section: "1b", description: "description for section 1b", new_policy_class: policy_classA) } - let!(:policy_section2bii) { create(:policy_section, section: "2b(ii)", description: "description for section 2ab(ii)", new_policy_class: policy_classA) } + let!(:policy_section1a) { create(:policy_section, section: "1a", description: "description for section 1a", policy_class: policy_classA) } + let!(:policy_section1b) { create(:policy_section, section: "1b", description: "description for section 1b", policy_class: policy_classA) } + let!(:policy_section2bii) { create(:policy_section, section: "2b(ii)", description: "description for section 2ab(ii)", policy_class: policy_classA) } before do - create(:planning_application_policy_class, planning_application:, new_policy_class: policy_classA) + create(:planning_application_policy_class, planning_application:, policy_class: policy_classA) end it "lets the user save draft and then mark as complete" do diff --git a/spec/system/planning_applications/review/policy_class_spec.rb b/spec/system/planning_applications/review/policy_class_spec.rb index 3db527f1e1..98179ec366 100644 --- a/spec/system/planning_applications/review/policy_class_spec.rb +++ b/spec/system/planning_applications/review/policy_class_spec.rb @@ -36,17 +36,17 @@ context "when reviewing GPDO legislation" do let!(:schedule) { create(:policy_schedule, number: 2, name: "Permitted development rights") } let!(:part1) { create(:policy_part, name: "Development within the curtilage of a dwellinghouse", number: 1, policy_schedule: schedule) } - let!(:policy_classA) { create(:new_policy_class, section: "A", name: "enlargement, improvement or other alteration of a dwellinghouse", policy_part: part1) } + let!(:policy_classA) { create(:policy_class, section: "A", name: "enlargement, improvement or other alteration of a dwellinghouse", policy_part: part1) } - let!(:policy_section1a) { create(:policy_section, section: "1a", description: "description for section 1a", new_policy_class: policy_classA) } - let!(:policy_section1b) { create(:policy_section, section: "1b", description: "description for section 1b", new_policy_class: policy_classA) } - let!(:policy_section2bii) { create(:policy_section, section: "2b(ii)", description: "description for section 2bb(ii)", new_policy_class: policy_classA) } + let!(:policy_section1a) { create(:policy_section, section: "1a", description: "description for section 1a", policy_class: policy_classA) } + let!(:policy_section1b) { create(:policy_section, section: "1b", description: "description for section 1b", policy_class: policy_classA) } + let!(:policy_section2bii) { create(:policy_section, section: "2b(ii)", description: "description for section 2bb(ii)", policy_class: policy_classA) } let!(:pa_policy_section1a) { create(:planning_application_policy_section, :complies, policy_section: policy_section1a, planning_application:) } let!(:pa_policy_section1b) { create(:planning_application_policy_section, :complies, policy_section: policy_section1b, planning_application:) } let!(:pa_policy_section2bii) { create(:planning_application_policy_section, :does_not_comply, :with_comments, policy_section: policy_section2bii, planning_application:) } - let!(:planning_application_policy_class) { create(:planning_application_policy_class, planning_application:, new_policy_class: policy_classA) } + let!(:planning_application_policy_class) { create(:planning_application_policy_class, planning_application:, policy_class: policy_classA) } before do create(:review, owner_type: "PlanningApplicationPolicyClass", status: "complete", assessor: assessor, owner: planning_application_policy_class) diff --git a/spec/system/planning_applications/review/tasks_index_spec.rb b/spec/system/planning_applications/review/tasks_index_spec.rb index 604503486b..6dc594b3ec 100644 --- a/spec/system/planning_applications/review/tasks_index_spec.rb +++ b/spec/system/planning_applications/review/tasks_index_spec.rb @@ -120,11 +120,11 @@ expect(page).to have_selector("h1", text: "Review and sign-off") click_link "Review assessment against legislation" - expect(page).to have_link("Review assessment of Part 1, Class #{policy_class.new_policy_class.section}", + expect(page).to have_link("Review assessment of Part 1, Class #{policy_class.policy_class.section}", href: "/planning_applications/#{planning_application.reference}/review/policy_areas/policy_classes/#{policy_class.id}/edit") expect(page).to have_list_item_for( - "Review assessment of Part 1, Class #{policy_class.new_policy_class.section}", + "Review assessment of Part 1, Class #{policy_class.policy_class.section}", with: "Not started" ) end