Sha256: 42e8f87e399da2b28a2fde234702dbc9c2b9e8a84cbfbd8ee4f895fa33711740

Contents?: true

Size: 1.36 KB

Versions: 23

Compression:

Stored size: 1.36 KB

Contents

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)
      should be_accessible
    end

    it 'is not accessible if token is expired' do
      allow(subject).to receive(:expired?).and_return(true)
      should_not 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
    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 = FactoryGirl.create factory_name
      token2 = FactoryGirl.create factory_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 = FactoryGirl.create factory_name
      token2 = FactoryGirl.create factory_name
      token2.token = token1.token
      expect do
        token2.save!(validate: false)
      end.to raise_error
    end
  end
end

Version data entries

23 entries across 23 versions & 2 rubygems

Version Path
doorkeeper-grants_assertion-0.1.0 spec/support/shared/models_shared_examples.rb
doorkeeper-2.2.2 spec/support/shared/models_shared_examples.rb
doorkeeper-3.0.0 spec/support/shared/models_shared_examples.rb
doorkeeper-3.0.0.rc2 spec/support/shared/models_shared_examples.rb
doorkeeper-3.0.0.rc1 spec/support/shared/models_shared_examples.rb
doorkeeper-2.2.1 spec/support/shared/models_shared_examples.rb
doorkeeper-2.2.0 spec/support/shared/models_shared_examples.rb
doorkeeper-2.1.4 spec/support/shared/models_shared_examples.rb
doorkeeper-1.4.2 spec/support/shared/models_shared_examples.rb
doorkeeper-2.1.3 spec/support/shared/models_shared_examples.rb
doorkeeper-2.1.2 spec/support/shared/models_shared_examples.rb
doorkeeper-2.1.1 spec/support/shared/models_shared_examples.rb
doorkeeper-2.1.0 spec/support/shared/models_shared_examples.rb
doorkeeper-2.0.1 spec/support/shared/models_shared_examples.rb
doorkeeper-1.4.1 spec/support/shared/models_shared_examples.rb
doorkeeper-2.0.0 spec/support/shared/models_shared_examples.rb
doorkeeper-2.0.0.rc3 spec/support/shared/models_shared_examples.rb
doorkeeper-2.0.0.rc2 spec/support/shared/models_shared_examples.rb
doorkeeper-2.0.0.alpha1 spec/support/shared/models_shared_examples.rb
doorkeeper-1.4.0 spec/support/shared/models_shared_examples.rb