Browse Source

create logs iff the log itself is valid

pull/1252/head
Phil Lee 3 years ago
parent
commit
877ae74236
  1. 2
      app/services/bulk_upload/lettings/validator.rb
  2. 34
      spec/services/bulk_upload/lettings/validator_spec.rb
  3. 7
      spec/support/bulk_upload/log_to_csv.rb

2
app/services/bulk_upload/lettings/validator.rb

@ -171,7 +171,7 @@ class BulkUpload::Lettings::Validator
end
def create_logs?
row_parsers.all?(&:valid?)
row_parsers.all? { |row_parser| row_parser.log.valid? }
end
def self.question_for_field(field)

34
spec/services/bulk_upload/lettings/validator_spec.rb

@ -78,7 +78,7 @@ RSpec.describe BulkUpload::Lettings::Validator do
before do
file.write(BulkUpload::LogToCsv.new(log:, line_ending: "\r\n", col_offset: 0).to_csv_row)
file.rewind
file.close
end
it "creates validation errors" do
@ -112,4 +112,36 @@ RSpec.describe BulkUpload::Lettings::Validator do
end
end
end
describe "#create_logs?" do
context "when a log is not valid?" do
let(:log_1) { build(:lettings_log, :completed, created_by: user) }
let(:log_2) { build(:lettings_log, :completed, created_by: user) }
before do
file.write(BulkUpload::LogToCsv.new(log: log_1, line_ending: "\r\n", col_offset: 0).to_csv_row)
file.write(BulkUpload::LogToCsv.new(log: log_2, line_ending: "\r\n", col_offset: 0, overrides: { illness: 100 }).to_csv_row)
file.close
end
it "returns false" do
expect(validator).not_to be_create_logs
end
end
context "when all logs valid?" do
let(:log_1) { build(:lettings_log, :completed, created_by: user) }
let(:log_2) { build(:lettings_log, :completed, created_by: user) }
before do
file.write(BulkUpload::LogToCsv.new(log: log_1, line_ending: "\r\n", col_offset: 0).to_csv_row)
file.write(BulkUpload::LogToCsv.new(log: log_2, line_ending: "\r\n", col_offset: 0).to_csv_row)
file.close
end
it "returns true" do
expect(validator).to be_create_logs
end
end
end
end

7
spec/support/bulk_upload/log_to_csv.rb

@ -1,10 +1,11 @@
class BulkUpload::LogToCsv
attr_reader :log, :line_ending, :col_offset
attr_reader :log, :line_ending, :col_offset, :overrides
def initialize(log:, line_ending: "\n", col_offset: 1)
def initialize(log:, line_ending: "\n", col_offset: 1, overrides: {})
@log = log
@line_ending = line_ending
@col_offset = col_offset
@overrides = overrides
end
def to_csv_row
@ -135,7 +136,7 @@ class BulkUpload::LogToCsv
nil,
log.incfreq,
log.sheltered,
log.illness,
overrides[:illness] || log.illness,
log.illness_type_1,
log.illness_type_2, # 120

Loading…
Cancel
Save