Browse Source

Add more key dates validations

pull/115/head
Kat 4 years ago
parent
commit
2263fa2dfe
  1. 10
      app/validations/date_validations.rb
  2. 15
      db/migrate/20211125154916_change_property_void_date_type.rb
  3. 5
      db/schema.rb
  4. 27
      spec/models/case_log_spec.rb

10
app/validations/date_validations.rb

@ -10,6 +10,16 @@ module DateValidations
record["mrcdate"].present?
record.errors.add :mrcdate, "Major repairs date must be before the tenancy start date"
end
if record["mrcdate"].present? && record["startdate"].present? && record["startdate"].to_date - record["mrcdate"].to_date > 730
record.errors.add :mrcdate, "Major repairs cannot be more than 730 days before the tenancy start date"
end
end
def validate_property_void_date(record)
if record["property_void_date"].present? && record["startdate"].present? && record["startdate"].to_date - record["property_void_date"].to_date > 730
record.errors.add :property_void_date, "Void date cannot be more than 730 days before the tenancy start date"
end
end
def validate_startdate(record)

15
db/migrate/20211125154916_change_property_void_date_type.rb

@ -0,0 +1,15 @@
class ChangePropertyVoidDateType < ActiveRecord::Migration[6.1]
def up
change_table :case_logs, bulk: true do |t|
t.remove :property_void_date
t.column :property_void_date, :datetime
end
end
def down
change_table :case_logs, bulk: true do |t|
t.remove :property_void_date
t.column :property_void_date, :string
end
end
end

5
db/schema.rb

@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 2021_11_25_114400) do
ActiveRecord::Schema.define(version: 2021_11_25_154916) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@ -83,7 +83,6 @@ ActiveRecord::Schema.define(version: 2021_11_25_114400) do
t.integer "rsnvac"
t.integer "unittype_gn"
t.integer "beds"
t.string "property_void_date"
t.integer "offered"
t.integer "wchair"
t.integer "earnings"
@ -166,6 +165,8 @@ ActiveRecord::Schema.define(version: 2021_11_25_114400) do
t.string "why_dont_you_know_la"
t.integer "unitletas"
t.integer "builtype"
t.string "property_postcode"
t.datetime "property_void_date"
t.index ["discarded_at"], name: "index_case_logs_on_discarded_at"
end

27
spec/models/case_log_spec.rb

@ -450,6 +450,33 @@ RSpec.describe Form, type: :model do
)
}.to raise_error(ActiveRecord::RecordInvalid)
end
it "must have less than two years between the tenancy start date and major cprepairs date" do
expect {
CaseLog.create!(
startdate: Date.new(2020, 10, 10),
mrcdate: Date.new(2017, 10, 10),
)
}.to raise_error(ActiveRecord::RecordInvalid)
end
end
context "void date" do
it "must have less than two years between the tenancy start date and void" do
expect {
CaseLog.create!(
startdate: Date.new(2020, 10, 10),
property_void_date: Date.new(2017, 10, 10),
)
}.to raise_error(ActiveRecord::RecordInvalid)
expect {
CaseLog.create!(
startdate: Date.new(2020, 10, 10),
property_void_date: Date.new(2019, 10, 10),
)
}.not_to raise_error
end
end
end

Loading…
Cancel
Save