diff options
Diffstat (limited to 'spec/models/integrations/assembla_spec.rb')
-rw-r--r-- | spec/models/integrations/assembla_spec.rb | 39 |
1 files changed, 27 insertions, 12 deletions
diff --git a/spec/models/integrations/assembla_spec.rb b/spec/models/integrations/assembla_spec.rb index e9f4274952d..28cda0a1e75 100644 --- a/spec/models/integrations/assembla_spec.rb +++ b/spec/models/integrations/assembla_spec.rb @@ -2,34 +2,49 @@ require 'spec_helper' -RSpec.describe Integrations::Assembla do +RSpec.describe Integrations::Assembla, feature_category: :integrations do include StubRequests it_behaves_like Integrations::ResetSecretFields do let(:integration) { described_class.new } end - describe "Execute" do - let(:user) { create(:user) } - let(:project) { create(:project, :repository) } + describe 'Validations' do + context 'when active' do + before do + subject.active = true + end + + it { is_expected.to validate_presence_of :token } + end + + context 'when inactive' do + it { is_expected.not_to validate_presence_of :token } + end + end + + describe "#execute" do + let_it_be(:user) { build(:user) } + let_it_be(:project) { create(:project, :repository) } + + let(:assembla_integration) { described_class.new } + let(:sample_data) { Gitlab::DataBuilder::Push.build_sample(project, user) } + let(:api_url) { 'https://atlas.assembla.com/spaces/project_name/github_tool?secret_key=verySecret' } before do - @assembla_integration = described_class.new - allow(@assembla_integration).to receive_messages( + allow(assembla_integration).to receive_messages( project_id: project.id, project: project, token: 'verySecret', subdomain: 'project_name' ) - @sample_data = Gitlab::DataBuilder::Push.build_sample(project, user) - @api_url = 'https://atlas.assembla.com/spaces/project_name/github_tool?secret_key=verySecret' - stub_full_request(@api_url, method: :post) + stub_full_request(api_url, method: :post) end it "calls Assembla API" do - @assembla_integration.execute(@sample_data) - expect(WebMock).to have_requested(:post, stubbed_hostname(@api_url)).with( - body: /#{@sample_data[:before]}.*#{@sample_data[:after]}.*#{project.path}/ + assembla_integration.execute(sample_data) + expect(WebMock).to have_requested(:post, stubbed_hostname(api_url)).with( + body: /#{sample_data[:before]}.*#{sample_data[:after]}.*#{project.path}/ ).once end end |