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
|
def create
|
||||||
@letter = Verification::Letter.new(user: current_user)
|
@letter = Verification::Letter.new(user: current_user)
|
||||||
@letter.save
|
@letter.save!
|
||||||
redirect_to letter_path
|
redirect_to letter_path
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -33,6 +33,10 @@ class LocalCensusRecords::Import
|
|||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def save!
|
||||||
|
validate! && save
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def process_row(row)
|
def process_row(row)
|
||||||
|
|||||||
@@ -48,6 +48,10 @@ class Officing::Residence
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def save!
|
||||||
|
validate! && save
|
||||||
|
end
|
||||||
|
|
||||||
def store_failed_census_call
|
def store_failed_census_call
|
||||||
FailedCensusCall.create(
|
FailedCensusCall.create(
|
||||||
user: user,
|
user: user,
|
||||||
|
|||||||
@@ -16,6 +16,10 @@ class Verification::Letter
|
|||||||
letter_requested!
|
letter_requested!
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def save!
|
||||||
|
validate! && save
|
||||||
|
end
|
||||||
|
|
||||||
def letter_requested!
|
def letter_requested!
|
||||||
user.update(letter_requested_at: Time.current, letter_verification_code: generate_verification_code)
|
user.update(letter_requested_at: Time.current, letter_verification_code: generate_verification_code)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -35,6 +35,10 @@ class Verification::Management::Email
|
|||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def save!
|
||||||
|
validate! && save
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def validate_user
|
def validate_user
|
||||||
|
|||||||
@@ -37,6 +37,10 @@ class Verification::Residence
|
|||||||
residence_verified_at: Time.current)
|
residence_verified_at: Time.current)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def save!
|
||||||
|
validate! && save
|
||||||
|
end
|
||||||
|
|
||||||
def allowed_age
|
def allowed_age
|
||||||
return if errors[:date_of_birth].any? || Age.in_years(date_of_birth) >= User.minimum_required_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"))
|
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
|
context "#save" do
|
||||||
it "Create valid local census records with provided values" do
|
it "Create valid local census records with provided values" do
|
||||||
import.save
|
import.save!
|
||||||
local_census_record = LocalCensusRecord.find_by(document_number: "X11556678")
|
local_census_record = LocalCensusRecord.find_by(document_number: "X11556678")
|
||||||
|
|
||||||
expect(local_census_record).not_to be_nil
|
expect(local_census_record).not_to be_nil
|
||||||
@@ -57,7 +57,7 @@ describe LocalCensusRecords::Import do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it "Add successfully created local census records to created_records array" do
|
it "Add successfully created local census records to created_records array" do
|
||||||
import.save
|
import.save!
|
||||||
|
|
||||||
valid_document_numbers = ["44556678T", "33556678T", "22556678T", "X11556678"]
|
valid_document_numbers = ["44556678T", "33556678T", "22556678T", "X11556678"]
|
||||||
expect(import.created_records.collect(&:document_number)).to eq(valid_document_numbers)
|
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))
|
file = Rack::Test::UploadedFile.new(Rails.root.join(*path))
|
||||||
import.file = file
|
import.file = file
|
||||||
|
|
||||||
import.save
|
import.save!
|
||||||
|
|
||||||
invalid_records_document_types = [nil, "DNI", "Passport", "NIE"]
|
invalid_records_document_types = [nil, "DNI", "Passport", "NIE"]
|
||||||
invalid_records_document_numbers = ["44556678T", nil, "22556678T", "X11556678"]
|
invalid_records_document_numbers = ["44556678T", nil, "22556678T", "X11556678"]
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ describe Verification::Letter do
|
|||||||
|
|
||||||
it "updates letter_requested" do
|
it "updates letter_requested" do
|
||||||
letter = build(:verification_letter)
|
letter = build(:verification_letter)
|
||||||
letter.save
|
letter.save!
|
||||||
expect(letter.user.letter_requested_at).to be
|
expect(letter.user.letter_requested_at).to be
|
||||||
end
|
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(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)
|
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.reload).to be_level_two_verified
|
||||||
expect(user.document_type).to eq("1")
|
expect(user.document_type).to eq("1")
|
||||||
|
|||||||
Reference in New Issue
Block a user