Sha256: 65a6a10b1f8e0f3c21f6dd7760e1b9ac9bce08c8a0bee97b435490f614f735a0

Contents?: true

Size: 1.39 KB

Versions: 22

Compression:

Stored size: 1.39 KB

Contents

# frozen_string_literal: true

require "spec_helper"
require "bcrypt"

describe ::Doorkeeper::SecretStoring::BCrypt do
  subject { described_class }
  let(:instance) { double("instance", token: "foo") }

  describe "#transform_secret" do
    it "creates a bcrypt password" do
      expect(subject.transform_secret("foo")).to be_a BCrypt::Password
    end
  end

  describe "#restore_secret" do
    it "raises" do
      expect { subject.restore_secret(instance, :token) }.to raise_error(NotImplementedError)
    end
  end

  describe "#allows_restoring_secrets?" do
    it "does not allow it" do
      expect(subject.allows_restoring_secrets?).to eq false
    end
  end

  describe "validate_for" do
    it "allows for valid model" do
      expect(subject.validate_for(:application)).to eq true
    end

    it "raises for invalid model" do
      expect { subject.validate_for(:wat) }
        .to raise_error(ArgumentError, /can only be used for storing application secrets/)
      expect { subject.validate_for(:token) }
        .to raise_error(ArgumentError, /can only be used for storing application secrets/)
    end
  end

  describe "secret_matches?" do
    it "compares input with #transform_secret" do
      expect(subject.secret_matches?("input", "input")).to eq false

      password = BCrypt::Password.create "foobar"
      expect(subject.secret_matches?("foobar", password.to_s)).to eq true
    end
  end
end

Version data entries

22 entries across 22 versions & 3 rubygems

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