Browse Source

add newprop derived variable and tests

pull/426/head
Dushan Despotovic 3 years ago
parent
commit
ee6df7f9f7
  1. 7
      app/models/case_log.rb
  2. 7
      db/migrate/20220325114252_add_newprop_derived_variable.rb
  3. 1
      db/schema.rb
  4. 1
      spec/fixtures/exports/case_logs.xml
  5. 32
      spec/models/case_log_spec.rb

7
app/models/case_log.rb

@ -351,6 +351,13 @@ private
self.vmonth = property_void_date.month self.vmonth = property_void_date.month
self.vyear = property_void_date.year self.vyear = property_void_date.year
end end
if rsnvac.present?
self.newprop = if has_first_let_vacancy_reason?
1
else
2
end
end
self.incref = 1 if net_income_refused? self.incref = 1 if net_income_refused?
self.hhmemb = other_hhmemb + 1 if other_hhmemb.present? self.hhmemb = other_hhmemb + 1 if other_hhmemb.present?
self.renttype = RENT_TYPE_MAPPING[rent_type] self.renttype = RENT_TYPE_MAPPING[rent_type]

7
db/migrate/20220325114252_add_newprop_derived_variable.rb

@ -0,0 +1,7 @@
class AddNewpropDerivedVariable < ActiveRecord::Migration[7.0]
def change
change_table :case_logs, bulk: true do |t|
t.column :newprop, :integer
end
end
end

1
db/schema.rb

@ -230,6 +230,7 @@ ActiveRecord::Schema[7.0].define(version: 202202071123100) do
t.string "relat6" t.string "relat6"
t.string "relat7" t.string "relat7"
t.string "relat8" t.string "relat8"
t.integer "newprop"
t.index ["managing_organisation_id"], name: "index_case_logs_on_managing_organisation_id" t.index ["managing_organisation_id"], name: "index_case_logs_on_managing_organisation_id"
t.index ["owning_organisation_id"], name: "index_case_logs_on_owning_organisation_id" t.index ["owning_organisation_id"], name: "index_case_logs_on_owning_organisation_id"
end end

1
spec/fixtures/exports/case_logs.xml vendored

@ -172,5 +172,6 @@
<relat6/> <relat6/>
<relat7/> <relat7/>
<relat8/> <relat8/>
<newprop>2</newprop>
</form> </form>
</forms> </forms>

32
spec/models/case_log_spec.rb

@ -1577,6 +1577,38 @@ RSpec.describe CaseLog do
end end
end end
end end
context "when the data provider is filling in the reason for the property being vacant" do
let!(:first_let_case_log) do
described_class.create({
managing_organisation: organisation,
owning_organisation: organisation,
first_time_property_let_as_social_housing: 1,
})
end
let!(:relet_case_log) do
described_class.create({
managing_organisation: organisation,
owning_organisation: organisation,
first_time_property_let_as_social_housing: 0,
})
end
it "the newprop variable is correctly derived and saved as 1 for a first let vacancy reason" do
first_let_case_log.update!({ rsnvac: 15 })
record_from_db = ActiveRecord::Base.connection.execute("select newprop from case_logs where id=#{first_let_case_log.id}").to_a[0]
expect(record_from_db["newprop"]).to eq(1)
expect(first_let_case_log["newprop"]).to eq(1)
end
it "the newprop variable is correctly derived and saved as 2 for anything that is not a first let vacancy reason" do
relet_case_log.update!({ rsnvac: 2 })
record_from_db = ActiveRecord::Base.connection.execute("select newprop from case_logs where id=#{relet_case_log.id}").to_a[0]
expect(record_from_db["newprop"]).to eq(2)
expect(relet_case_log["newprop"]).to eq(2)
end
end
end end
describe "resetting invalidated fields" do describe "resetting invalidated fields" do

Loading…
Cancel
Save