Add save! method to ActiveModel models
This way we make it clear we expect records to be valid when we save them, just like we do with ActiveRecord models.
This commit is contained in:
@@ -15,7 +15,7 @@ class Verification::LetterController < ApplicationController
|
||||
|
||||
def create
|
||||
@letter = Verification::Letter.new(user: current_user)
|
||||
@letter.save
|
||||
@letter.save!
|
||||
redirect_to letter_path
|
||||
end
|
||||
|
||||
|
||||
@@ -33,6 +33,10 @@ class LocalCensusRecords::Import
|
||||
true
|
||||
end
|
||||
|
||||
def save!
|
||||
validate! && save
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def process_row(row)
|
||||
|
||||
@@ -48,6 +48,10 @@ class Officing::Residence
|
||||
end
|
||||
end
|
||||
|
||||
def save!
|
||||
validate! && save
|
||||
end
|
||||
|
||||
def store_failed_census_call
|
||||
FailedCensusCall.create(
|
||||
user: user,
|
||||
|
||||
@@ -16,6 +16,10 @@ class Verification::Letter
|
||||
letter_requested!
|
||||
end
|
||||
|
||||
def save!
|
||||
validate! && save
|
||||
end
|
||||
|
||||
def letter_requested!
|
||||
user.update(letter_requested_at: Time.current, letter_verification_code: generate_verification_code)
|
||||
end
|
||||
|
||||
@@ -35,6 +35,10 @@ class Verification::Management::Email
|
||||
true
|
||||
end
|
||||
|
||||
def save!
|
||||
validate! && save
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def validate_user
|
||||
|
||||
@@ -37,6 +37,10 @@ class Verification::Residence
|
||||
residence_verified_at: Time.current)
|
||||
end
|
||||
|
||||
def save!
|
||||
validate! && save
|
||||
end
|
||||
|
||||
def allowed_age
|
||||
return if errors[:date_of_birth].any? || Age.in_years(date_of_birth) >= User.minimum_required_age
|
||||
errors.add(:date_of_birth, I18n.t("verification.residence.new.error_not_allowed_age"))
|
||||
|
||||
@@ -46,7 +46,7 @@ describe LocalCensusRecords::Import do
|
||||
|
||||
context "#save" do
|
||||
it "Create valid local census records with provided values" do
|
||||
import.save
|
||||
import.save!
|
||||
local_census_record = LocalCensusRecord.find_by(document_number: "X11556678")
|
||||
|
||||
expect(local_census_record).not_to be_nil
|
||||
@@ -57,7 +57,7 @@ describe LocalCensusRecords::Import do
|
||||
end
|
||||
|
||||
it "Add successfully created local census records to created_records array" do
|
||||
import.save
|
||||
import.save!
|
||||
|
||||
valid_document_numbers = ["44556678T", "33556678T", "22556678T", "X11556678"]
|
||||
expect(import.created_records.collect(&:document_number)).to eq(valid_document_numbers)
|
||||
@@ -68,7 +68,7 @@ describe LocalCensusRecords::Import do
|
||||
file = Rack::Test::UploadedFile.new(Rails.root.join(*path))
|
||||
import.file = file
|
||||
|
||||
import.save
|
||||
import.save!
|
||||
|
||||
invalid_records_document_types = [nil, "DNI", "Passport", "NIE"]
|
||||
invalid_records_document_numbers = ["44556678T", nil, "22556678T", "X11556678"]
|
||||
|
||||
@@ -23,7 +23,7 @@ describe Verification::Letter do
|
||||
|
||||
it "updates letter_requested" do
|
||||
letter = build(:verification_letter)
|
||||
letter.save
|
||||
letter.save!
|
||||
expect(letter.user.letter_requested_at).to be
|
||||
end
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ describe Verification::Management::Email do
|
||||
allow(Devise.token_generator).to receive(:generate).with(User, :email_verification_token).and_return(["1", "2"])
|
||||
allow(Mailer).to receive(:email_verification).with(user, user.email, "2", "1", "1234").and_return(mail)
|
||||
|
||||
validation.save
|
||||
validation.save!
|
||||
|
||||
expect(user.reload).to be_level_two_verified
|
||||
expect(user.document_type).to eq("1")
|
||||
|
||||
Reference in New Issue
Block a user