You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.3 KiB
84 lines
2.3 KiB
require "rails_helper" |
|
|
|
RSpec.describe AdminUser, type: :model do |
|
describe "#new" do |
|
it "requires a phone number" do |
|
expect { |
|
described_class.create!( |
|
email: "admin_test@example.com", |
|
password: "password123", |
|
) |
|
}.to raise_error(ActiveRecord::RecordInvalid) |
|
end |
|
|
|
it "requires a numerical phone number" do |
|
expect { |
|
described_class.create!( |
|
email: "admin_test@example.com", |
|
password: "password123", |
|
phone: "string", |
|
) |
|
}.to raise_error(ActiveRecord::RecordInvalid) |
|
end |
|
|
|
it "requires an email" do |
|
expect { |
|
described_class.create!( |
|
password: "password123", |
|
phone: "075752137", |
|
) |
|
}.to raise_error(ActiveRecord::RecordInvalid) |
|
end |
|
|
|
it "requires a password" do |
|
expect { |
|
described_class.create!( |
|
email: "admin_test@example.com", |
|
phone: "075752137", |
|
) |
|
}.to raise_error(ActiveRecord::RecordInvalid) |
|
end |
|
|
|
it "can be created" do |
|
expect { |
|
described_class.create!( |
|
email: "admin_test@example.com", |
|
password: "password123", |
|
phone: "075752137", |
|
) |
|
}.to change(described_class, :count).by(1) |
|
end |
|
end |
|
|
|
describe "paper trail" do |
|
let(:admin_user) { FactoryBot.create(:admin_user) } |
|
|
|
it "creates a record of changes to a log" do |
|
expect { admin_user.update!(phone: "09673867853") }.to change(admin_user.versions, :count).by(1) |
|
end |
|
|
|
it "allows case logs to be restored to a previous version" do |
|
admin_user.update!(phone: "09673867853") |
|
expect(admin_user.paper_trail.previous_version.phone).to eq("07563867654") |
|
end |
|
|
|
it "signing in does not create a new version" do |
|
expect { |
|
admin_user.update!( |
|
last_sign_in_at: Time.zone.now, |
|
current_sign_in_at: Time.zone.now, |
|
current_sign_in_ip: "127.0.0.1", |
|
last_sign_in_ip: "127.0.0.1", |
|
failed_attempts: 3, |
|
unlock_token: "dummy", |
|
locked_at: Time.zone.now, |
|
reset_password_token: "dummy", |
|
reset_password_sent_at: Time.zone.now, |
|
remember_created_at: Time.zone.now, |
|
sign_in_count: 5, |
|
updated_at: Time.zone.now, |
|
) |
|
}.not_to change(admin_user.versions, :count) |
|
end |
|
end |
|
end
|
|
|