Browse Source

update tests to include a test of a full export and all values in teh csv

pull/1568/head
Arthur Campbell 3 years ago
parent
commit
bcd6d15d5b
  1. 4
      spec/factories/organisation.rb
  2. 3
      spec/factories/sales_log.rb
  3. 2
      spec/fixtures/files/sales_logs_csv_export_codes.csv
  4. 2
      spec/fixtures/files/sales_logs_csv_export_labels.csv
  5. 16
      spec/services/csv/sales_log_csv_service_spec.rb

4
spec/factories/organisation.rb

@ -14,6 +14,10 @@ FactoryBot.define do
old_visible_id { rand(9_999_999).to_s }
end
trait :id_one do
id { 1 }
end
trait :prp do
provider_type { "PRP" }
end

3
spec/factories/sales_log.rb

@ -11,6 +11,9 @@ FactoryBot.define do
jointpur { 2 }
saledate { Time.utc(2023, 2, 2, 10, 36, 49) }
end
trait :id_one do
id { 1 }
end
trait :shared_ownership do
ownershipsch { 1 }
type { 30 }

2
spec/fixtures/files/sales_logs_csv_export_codes.csv vendored

@ -0,0 +1,2 @@
id,status,created_at,updated_at,old_id,collection_start_year,creation_method,is_dpo,owning_organisation_name,created_by_name,saledate,purchid,ownershipsch,type,othtype,companybuy,buylivein,jointpur,jointmore,uprn,uprn_confirmed,address_line1,address_line2,town_or_city,county,pcode1,pcode2,la_known,la,la_label,beds,proptype,builtype,pcodenk,wchair,noint,privacynotice,age1,sex1,ethnic_group,ethnic,national,ecstat1,buy1livein,relat2,age2,sex2,ethnic_group2,ethnicbuy2,nationalbuy2,ecstat2,buy2livein,hholdcount,relat3,age3,sex3,ecstat3,relat4,age4,sex4,ecstat4,relat5,age5,sex5,ecstat5,relat6,age6,sex6,ecstat6,prevten,ppcodenk,ppostc1,ppostc2,previous_la_known,prevloc,prevloc_label,pregyrha,pregother,pregla,pregghb,pregblank,buy2living,prevtenbuy2,hhregres,hhregresstill,armedforcesspouse,disabled,wheel,income1nk,income1,inc1mort,income2nk,income2,inc2mort,hb,savingsnk,savings,prevown,prevshared,proplen_asked,proplen,staircase,stairbought,stairowned,staircasesale,resale,exday,exmonth,exyear,hoday,homonth,hoyear,lanomagr,soctenant,frombeds,fromprop,socprevten,value,equity,mortgageused,mortgage,mortgagelender,mortgagelenderother,mortlen,extrabor,deposit,cashdis,mrent,has_mscharge,mscharge,discount,grant
1,completed,2023-02-08 16:52:15 +0000,2023-02-08 16:52:15 +0000,,2022,single log,false,DLUHC,Danny Rojas,2023-02-02 10:36:49 +0000,,2,8,,,,1,1,,,,,,,SW1A,1AA,1,E09000003,Barnet,2,1,1,0,1,2,1,30,X,17,17,18,1,1,P,35,X,,,,1,1,1,C,14,X,9,X,,X,3,R,,X,2,R,,X,1,1,1,,,0,,,1,1,1,1,,,,1,4,5,1,1,0,10000,1,0,10000,1,4,1,,1,2,,10,,,,,,,,,,,,,,,,,110000.0,,1,20000.0,5,,10,1,80000.0,,,1,100.0,,10000.0
1 id status created_at updated_at old_id collection_start_year creation_method is_dpo owning_organisation_name created_by_name saledate purchid ownershipsch type othtype companybuy buylivein jointpur jointmore uprn uprn_confirmed address_line1 address_line2 town_or_city county pcode1 pcode2 la_known la la_label beds proptype builtype pcodenk wchair noint privacynotice age1 sex1 ethnic_group ethnic national ecstat1 buy1livein relat2 age2 sex2 ethnic_group2 ethnicbuy2 nationalbuy2 ecstat2 buy2livein hholdcount relat3 age3 sex3 ecstat3 relat4 age4 sex4 ecstat4 relat5 age5 sex5 ecstat5 relat6 age6 sex6 ecstat6 prevten ppcodenk ppostc1 ppostc2 previous_la_known prevloc prevloc_label pregyrha pregother pregla pregghb pregblank buy2living prevtenbuy2 hhregres hhregresstill armedforcesspouse disabled wheel income1nk income1 inc1mort income2nk income2 inc2mort hb savingsnk savings prevown prevshared proplen_asked proplen staircase stairbought stairowned staircasesale resale exday exmonth exyear hoday homonth hoyear lanomagr soctenant frombeds fromprop socprevten value equity mortgageused mortgage mortgagelender mortgagelenderother mortlen extrabor deposit cashdis mrent has_mscharge mscharge discount grant
2 1 completed 2023-02-08 16:52:15 +0000 2023-02-08 16:52:15 +0000 2022 single log false DLUHC Danny Rojas 2023-02-02 10:36:49 +0000 2 8 1 1 SW1A 1AA 1 E09000003 Barnet 2 1 1 0 1 2 1 30 X 17 17 18 1 1 P 35 X 1 1 1 C 14 X 9 X X 3 R X 2 R X 1 1 1 0 1 1 1 1 1 4 5 1 1 0 10000 1 0 10000 1 4 1 1 2 10 110000.0 1 20000.0 5 10 1 80000.0 1 100.0 10000.0

2
spec/fixtures/files/sales_logs_csv_export_labels.csv vendored

@ -0,0 +1,2 @@
id,status,created_at,updated_at,old_id,collection_start_year,creation_method,is_dpo,owning_organisation_name,created_by_name,saledate,purchid,ownershipsch,type,othtype,companybuy,buylivein,jointpur,jointmore,uprn,uprn_confirmed,address_line1,address_line2,town_or_city,county,pcode1,pcode2,la_known,la,la_label,beds,proptype,builtype,pcodenk,wchair,noint,privacynotice,age1,sex1,ethnic_group,ethnic,national,ecstat1,buy1livein,relat2,age2,sex2,ethnic_group2,ethnicbuy2,nationalbuy2,ecstat2,buy2livein,hholdcount,relat3,age3,sex3,ecstat3,relat4,age4,sex4,ecstat4,relat5,age5,sex5,ecstat5,relat6,age6,sex6,ecstat6,prevten,ppcodenk,ppostc1,ppostc2,previous_la_known,prevloc,prevloc_label,pregyrha,pregother,pregla,pregghb,pregblank,buy2living,prevtenbuy2,hhregres,hhregresstill,armedforcesspouse,disabled,wheel,income1nk,income1,inc1mort,income2nk,income2,inc2mort,hb,savingsnk,savings,prevown,prevshared,proplen_asked,proplen,staircase,stairbought,stairowned,staircasesale,resale,exday,exmonth,exyear,hoday,homonth,hoyear,lanomagr,soctenant,frombeds,fromprop,socprevten,value,equity,mortgageused,mortgage,mortgagelender,mortgagelenderother,mortlen,extrabor,deposit,cashdis,mrent,has_mscharge,mscharge,discount,grant
1,completed,2023-02-08 16:52:15 +0000,2023-02-08 16:52:15 +0000,,2022,single log,false,DLUHC,Danny Rojas,2023-02-02 10:36:49 +0000,,Yes - a discounted ownership scheme,Right to Acquire (RTA),,,,Yes,Yes,,,,,,,SW1A,1AA,Yes,E09000003,Barnet,2,Flat or maisonette,Purpose built,Yes,Yes,Yes,1,30,Non-binary,Buyer 1 prefers not to say,17,United Kingdom,Full-time - 30 hours or more,Yes,Partner,35,Non-binary,,,,Full-time - 30 hours or more,Yes,1,Child,14,Non-binary,Child under 16,Other,,Non-binary,"In government training into work, such as New Deal",Person prefers not to say,,Non-binary,Part-time - Less than 30 hours,Person prefers not to say,,Non-binary,Full-time - 30 hours or more,Local authority tenant,No,,,No,,,1,1,1,1,,,,Yes,Yes,No,Yes,Yes,Yes,10000,Yes,Yes,10000,Yes,Don’t know ,No,,Yes,2,,10,,,,,,,,,,,,,,,,,110000.0,,Yes,20000.0,Cambridge Building Society,,10,Yes,80000.0,,,Yes,100.0,,10000.0
1 id status created_at updated_at old_id collection_start_year creation_method is_dpo owning_organisation_name created_by_name saledate purchid ownershipsch type othtype companybuy buylivein jointpur jointmore uprn uprn_confirmed address_line1 address_line2 town_or_city county pcode1 pcode2 la_known la la_label beds proptype builtype pcodenk wchair noint privacynotice age1 sex1 ethnic_group ethnic national ecstat1 buy1livein relat2 age2 sex2 ethnic_group2 ethnicbuy2 nationalbuy2 ecstat2 buy2livein hholdcount relat3 age3 sex3 ecstat3 relat4 age4 sex4 ecstat4 relat5 age5 sex5 ecstat5 relat6 age6 sex6 ecstat6 prevten ppcodenk ppostc1 ppostc2 previous_la_known prevloc prevloc_label pregyrha pregother pregla pregghb pregblank buy2living prevtenbuy2 hhregres hhregresstill armedforcesspouse disabled wheel income1nk income1 inc1mort income2nk income2 inc2mort hb savingsnk savings prevown prevshared proplen_asked proplen staircase stairbought stairowned staircasesale resale exday exmonth exyear hoday homonth hoyear lanomagr soctenant frombeds fromprop socprevten value equity mortgageused mortgage mortgagelender mortgagelenderother mortlen extrabor deposit cashdis mrent has_mscharge mscharge discount grant
2 1 completed 2023-02-08 16:52:15 +0000 2023-02-08 16:52:15 +0000 2022 single log false DLUHC Danny Rojas 2023-02-02 10:36:49 +0000 Yes - a discounted ownership scheme Right to Acquire (RTA) Yes Yes SW1A 1AA Yes E09000003 Barnet 2 Flat or maisonette Purpose built Yes Yes Yes 1 30 Non-binary Buyer 1 prefers not to say 17 United Kingdom Full-time - 30 hours or more Yes Partner 35 Non-binary Full-time - 30 hours or more Yes 1 Child 14 Non-binary Child under 16 Other Non-binary In government training into work, such as New Deal Person prefers not to say Non-binary Part-time - Less than 30 hours Person prefers not to say Non-binary Full-time - 30 hours or more Local authority tenant No No 1 1 1 1 Yes Yes No Yes Yes Yes 10000 Yes Yes 10000 Yes Don’t know No Yes 2 10 110000.0 Yes 20000.0 Cambridge Building Society 10 Yes 80000.0 Yes 100.0 10000.0

16
spec/services/csv/sales_log_csv_service_spec.rb

@ -2,7 +2,8 @@ require "rails_helper"
RSpec.describe Csv::SalesLogCsvService do
let(:form_handler_mock) { instance_double(FormHandler) }
let!(:log) { create(:sales_log, :completed) }
let(:organisation) { create(:organisation, :id_one) }
let!(:log) { create(:sales_log, :completed, :id_one, owning_organisation: organisation) }
let(:service) { described_class.new(export_type: "labels") }
let(:csv) { CSV.parse(service.prepare_csv(SalesLog.all)) }
@ -45,8 +46,7 @@ RSpec.describe Csv::SalesLogCsvService do
it "returns a csv string with the correct number of logs" do
create_list(:sales_log, 15)
all_logs = SalesLog.all
log_count = all_logs.count
log_count = SalesLog.count
expected_row_count_with_headers = log_count + 1
expect(csv.size).to be expected_row_count_with_headers
end
@ -85,6 +85,11 @@ RSpec.describe Csv::SalesLogCsvService do
la_label_value = csv.second[la_label_column_index]
expect(la_label_value).to eq "Barnet"
end
it "exports the CSV with all values correct" do
expected_content = File.open("spec/fixtures/files/sales_logs_csv_export_labels.csv", "r:UTF-8").read
expect(service.prepare_csv(SalesLog.all)).to eq expected_content
end
end
context "when exporting values as codes" do
@ -123,5 +128,10 @@ RSpec.describe Csv::SalesLogCsvService do
la_label_value = csv.second[la_label_column_index]
expect(la_label_value).to eq "Barnet"
end
it "exports the CSV with all values correct" do
expected_content = File.open("spec/fixtures/files/sales_logs_csv_export_codes.csv", "r:UTF-8").read
expect(service.prepare_csv(SalesLog.all)).to eq expected_content
end
end
end

Loading…
Cancel
Save