c3338c920d
Extract acme double to helper Create ACME challanges for pages domains * Create order & challange through API * save them to database * request challenge validation We're saving order and challenge as one entity, that wouldn't be correct if we would order certificates for several domains simultaneously, but we always order certificate per domain Add controller for processing acme challenges redirected from pages Don't save acme challenge url - we don't use it Validate acme challenge attributes Encrypt private_key in acme orders
44 lines
1.1 KiB
Ruby
44 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
describe AcmeChallengesController do
|
|
describe '#show' do
|
|
let!(:acme_order) { create(:pages_domain_acme_order) }
|
|
|
|
def make_request(domain, token)
|
|
get(:show, params: { domain: domain, token: token })
|
|
end
|
|
|
|
before do
|
|
make_request(domain, token)
|
|
end
|
|
|
|
context 'with right domain and token' do
|
|
let(:domain) { acme_order.pages_domain.domain }
|
|
let(:token) { acme_order.challenge_token }
|
|
|
|
it 'renders acme challenge file content' do
|
|
expect(response.body).to eq(acme_order.challenge_file_content)
|
|
end
|
|
end
|
|
|
|
context 'when domain is invalid' do
|
|
let(:domain) { 'somewrongdomain.com' }
|
|
let(:token) { acme_order.challenge_token }
|
|
|
|
it 'renders not found' do
|
|
expect(response).to have_gitlab_http_status(404)
|
|
end
|
|
end
|
|
|
|
context 'when token is invalid' do
|
|
let(:domain) { acme_order.pages_domain.domain }
|
|
let(:token) { 'wrongtoken' }
|
|
|
|
it 'renders not found' do
|
|
expect(response).to have_gitlab_http_status(404)
|
|
end
|
|
end
|
|
end
|
|
end
|