summaryrefslogtreecommitdiff
path: root/spec/validators/rsa_key_validator_spec.rb
blob: b4e74ec5605f7243da0a79ea03a9eff3e3f87102 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe RsaKeyValidator do
  let(:validatable) do
    Class.new do
      include ActiveModel::Validations

      attr_accessor :signing_key

      validates :signing_key, rsa_key: true

      def initialize(signing_key)
        @signing_key = signing_key
      end
    end
  end

  subject(:validator) { described_class.new(attributes: [:signing_key]) }

  it 'is not valid when invalid RSA key is provided' do
    record = validatable.new('invalid RSA key')

    validator.validate(record)

    aggregate_failures do
      expect(record).not_to be_valid
      expect(record.errors[:signing_key]).to include('is not a valid RSA key')
    end
  end

  it 'is valid when valid RSA key is provided' do
    record = validatable.new(OpenSSL::PKey::RSA.new(1024).to_pem)

    validator.validate(record)

    expect(record).to be_valid
  end
end