2019-07-07 11:18:12 +05:30
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2015-04-26 12:48:37 +05:30
|
|
|
require 'spec_helper'
|
|
|
|
|
2021-09-04 01:27:46 +05:30
|
|
|
RSpec.describe Integrations::ExternalWiki do
|
2016-06-02 11:05:42 +05:30
|
|
|
describe 'Validations' do
|
2021-09-30 23:02:18 +05:30
|
|
|
context 'when integration is active' do
|
2017-09-10 17:25:29 +05:30
|
|
|
before do
|
|
|
|
subject.active = true
|
|
|
|
end
|
2016-06-02 11:05:42 +05:30
|
|
|
|
|
|
|
it { is_expected.to validate_presence_of(:external_wiki_url) }
|
2022-08-27 11:52:29 +05:30
|
|
|
|
2021-09-30 23:02:18 +05:30
|
|
|
it_behaves_like 'issue tracker integration URL attribute', :external_wiki_url
|
2016-06-02 11:05:42 +05:30
|
|
|
end
|
|
|
|
|
2021-09-30 23:02:18 +05:30
|
|
|
context 'when integration is inactive' do
|
2017-09-10 17:25:29 +05:30
|
|
|
before do
|
|
|
|
subject.active = false
|
|
|
|
end
|
2015-04-26 12:48:37 +05:30
|
|
|
|
2016-06-02 11:05:42 +05:30
|
|
|
it { is_expected.not_to validate_presence_of(:external_wiki_url) }
|
2015-04-26 12:48:37 +05:30
|
|
|
end
|
|
|
|
end
|
2020-03-13 15:44:24 +05:30
|
|
|
|
|
|
|
describe 'test' do
|
|
|
|
before do
|
2022-06-21 17:19:12 +05:30
|
|
|
subject.external_wiki_url = url
|
2020-03-13 15:44:24 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
let(:url) { 'http://foo' }
|
|
|
|
let(:data) { nil }
|
|
|
|
let(:result) { subject.test(data) }
|
|
|
|
|
|
|
|
context 'the URL is not reachable' do
|
|
|
|
before do
|
|
|
|
WebMock.stub_request(:get, url).to_return(status: 404, body: 'not a page')
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'is not successful' do
|
|
|
|
expect(result[:success]).to be_falsey
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'the URL is reachable' do
|
|
|
|
before do
|
|
|
|
WebMock.stub_request(:get, url).to_return(status: 200, body: 'foo')
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'is successful' do
|
|
|
|
expect(result[:success]).to be_truthy
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2015-04-26 12:48:37 +05:30
|
|
|
end
|