docbrown/spec/models/identity_spec.rb
Anna Buianova 4b02fe87a4 Optimize sign in: Identity #2061 (#2231)
* Add unique index to identity

* Conditional uniqueness validations on identities

* Remove redundant Identity specs
2019-03-28 16:10:23 -04:00

20 lines
810 B
Ruby

require "rails_helper"
RSpec.describe Identity, type: :model do
it { is_expected.to belong_to(:user) }
it { is_expected.to validate_presence_of(:uid) }
it { is_expected.to validate_presence_of(:provider) }
it { is_expected.to validate_uniqueness_of(:uid).scoped_to(:provider) }
it { is_expected.to validate_uniqueness_of(:user_id).scoped_to(:provider) }
it { is_expected.to validate_inclusion_of(:provider).in_array(%w[github twitter]) }
it { is_expected.to serialize(:auth_data_dump) }
describe ".find_for_oauth" do
it "works" do
allow(Identity).to receive(:find_or_create_by)
auth = { uid: 0, provider: "github" }
described_class.find_for_oauth(instance_double("request", auth))
expect(Identity).to have_received(:find_or_create_by).with(auth)
end
end
end