Sha256: 7a37b5814c5a7372fae6d9f8c013a6061377178818c3a27be67c8ffa58559c03

Contents?: true

Size: 1.7 KB

Versions: 22

Compression:

Stored size: 1.7 KB

Contents

# frozen_string_literal: true

require "spec_helper"

describe "Expirable" do
  subject do
    Class.new do
      include Doorkeeper::Models::Expirable
    end.new
  end

  before do
    allow(subject).to receive(:created_at).and_return(1.minute.ago)
  end

  describe :expired? do
    it "is not expired if time has not passed" do
      allow(subject).to receive(:expires_in).and_return(2.minutes)
      expect(subject).not_to be_expired
    end

    it "is expired if time has passed" do
      allow(subject).to receive(:expires_in).and_return(10.seconds)
      expect(subject).to be_expired
    end

    it "is not expired if expires_in is not set" do
      allow(subject).to receive(:expires_in).and_return(nil)
      expect(subject).not_to be_expired
    end
  end

  describe :expires_in_seconds do
    it "should return the amount of time remaining until the token is expired" do
      allow(subject).to receive(:expires_in).and_return(2.minutes)
      expect(subject.expires_in_seconds).to eq(60)
    end

    it "should return 0 when expired" do
      allow(subject).to receive(:expires_in).and_return(30.seconds)
      expect(subject.expires_in_seconds).to eq(0)
    end

    it "should return nil when expires_in is nil" do
      allow(subject).to receive(:expires_in).and_return(nil)
      expect(subject.expires_in_seconds).to be_nil
    end
  end

  describe :expires_at do
    it "should return the expiration time of the token" do
      allow(subject).to receive(:expires_in).and_return(2.minutes)
      expect(subject.expires_at).to be_a(Time)
    end

    it "should return nil when expires_in is nil" do
      allow(subject).to receive(:expires_in).and_return(nil)
      expect(subject.expires_at).to be_nil
    end
  end
end

Version data entries

22 entries across 22 versions & 3 rubygems

Version Path
doorkeeper-5.1.2 spec/lib/models/expirable_spec.rb
doorkeeper-5.2.6 spec/lib/models/expirable_spec.rb
doorkeeper-5.3.3 spec/lib/models/expirable_spec.rb
doorkeeper-5.1.1 spec/lib/models/expirable_spec.rb
doorkeeper-5.2.5 spec/lib/models/expirable_spec.rb
doorkeeper-5.3.2 spec/lib/models/expirable_spec.rb
doorkeeper-5.4.0.rc1 spec/lib/models/expirable_spec.rb
doorkeeper-mongodb-5.2.1 spec/lib/models/expirable_spec.rb
doorkeeper-mongodb-5.2.0 spec/lib/models/expirable_spec.rb
doorkeeper-sequel-2.2.0 spec/lib/models/expirable_spec.rb
doorkeeper-5.2.4 spec/lib/models/expirable_spec.rb
doorkeeper-5.3.1 spec/lib/models/expirable_spec.rb
doorkeeper-5.3.0 spec/lib/models/expirable_spec.rb
doorkeeper-5.2.3 spec/lib/models/expirable_spec.rb
doorkeeper-5.2.2 spec/lib/models/expirable_spec.rb
doorkeeper-sequel-2.1.0 spec/lib/models/expirable_spec.rb
doorkeeper-5.2.1 spec/lib/models/expirable_spec.rb
doorkeeper-5.2.0 spec/lib/models/expirable_spec.rb
doorkeeper-5.2.0.rc3 spec/lib/models/expirable_spec.rb
doorkeeper-5.2.0.rc2 spec/lib/models/expirable_spec.rb