summaryrefslogtreecommitdiff
path: root/spec/models/pages_domain_acme_order_spec.rb
blob: 4a104203e395b6009a914ec9dc1b528df003b0b4 (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
41
42
43
44
45
46
47
48
49
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe PagesDomainAcmeOrder do
  using RSpec::Parameterized::TableSyntax

  describe '.expired' do
    let!(:not_expired_order) { create(:pages_domain_acme_order) }
    let!(:expired_order) { create(:pages_domain_acme_order, :expired) }

    it 'returns only expired orders' do
      expect(described_class.count).to eq(2)
      expect(described_class.expired).to eq([expired_order])
    end
  end

  describe '.find_by_domain_and_token' do
    let!(:domain) { create(:pages_domain, domain: 'test.com') }
    let!(:acme_order) { create(:pages_domain_acme_order, challenge_token: 'righttoken', pages_domain: domain) }

    where(:domain_name, :challenge_token, :present) do
      'test.com' | 'righttoken' | true
      'test.com' | 'wrongtoken' | false
      'test.org' | 'righttoken' | false
    end

    with_them do
      subject { described_class.find_by_domain_and_token(domain_name, challenge_token).present? }

      it { is_expected.to eq(present) }
    end
  end

  subject { create(:pages_domain_acme_order) }

  describe 'associations' do
    it { is_expected.to belong_to(:pages_domain) }
  end

  describe 'validations' do
    it { is_expected.to validate_presence_of(:pages_domain) }
    it { is_expected.to validate_presence_of(:expires_at) }
    it { is_expected.to validate_presence_of(:url) }
    it { is_expected.to validate_presence_of(:challenge_token) }
    it { is_expected.to validate_presence_of(:challenge_file_content) }
    it { is_expected.to validate_presence_of(:private_key) }
  end
end