Sha256: 71b696467ce0cbbe563a6546461f7f41ee1f2cddca58446cf6fb4ac26d30c2a8
Contents?: true
Size: 1.75 KB
Versions: 5
Compression:
Stored size: 1.75 KB
Contents
# frozen_string_literal: true shared_examples "an accessible token" do describe "#accessible?" do it "is accessible if token is not expired" do allow(subject).to receive(:expired?).and_return(false) expect(subject).to be_accessible end it "is not accessible if token is expired" do allow(subject).to receive(:expired?).and_return(true) expect(subject).not_to be_accessible end end end shared_examples "a revocable token" do describe "#accessible?" do before { subject.save! } it "is accessible if token is not revoked" do expect(subject).to be_accessible end it "is not accessible if token is revoked" do subject.revoke expect(subject).not_to be_accessible end end end shared_examples "a unique token" do describe "#token" do let(:owner) { FactoryBot.create(:resource_owner) } it "is generated before validation" do expect { subject.valid? }.to change(subject, :token).from(nil) end it "is not valid if token exists" do token1 = FactoryBot.create factory_name, resource_owner_id: owner.id, resource_owner_type: owner.class.name token2 = FactoryBot.create factory_name, resource_owner_id: owner.id, resource_owner_type: owner.class.name token2.token = token1.token expect(token2).not_to be_valid end it "expects database to throw an error when tokens are the same" do token1 = FactoryBot.create factory_name, resource_owner_id: owner.id, resource_owner_type: owner.class.name token2 = FactoryBot.create factory_name, resource_owner_id: owner.id, resource_owner_type: owner.class.name token2.token = token1.token expect do token2.save!(validate: false) end.to raise_error(uniqueness_error) end end end
Version data entries
5 entries across 5 versions & 2 rubygems