summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/ci/pipeline/chain/remove_unwanted_chat_jobs_spec.rb
blob: 8b9de16ce5f13834518c39e63fe6656b874e1eb5 (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
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe ::Gitlab::Ci::Pipeline::Chain::RemoveUnwantedChatJobs do
  let(:project) { create(:project) }

  let(:pipeline) do
    build(:ci_pipeline, project: project)
  end

  let(:command) do
    double(:command,
      config_processor: double(:processor,
        jobs: { echo: double(:job_echo), rspec: double(:job_rspec) }),
      project: project,
      chat_data: { command: 'echo' })
  end

  describe '#perform!' do
    subject { described_class.new(pipeline, command).perform! }

    it 'removes unwanted jobs for chat pipelines' do
      expect(pipeline).to receive(:chat?).and_return(true)

      subject

      expect(command.config_processor.jobs.keys).to eq([:echo])
    end

    it 'does not remove any jobs for non chat-pipelines' do
      expect(pipeline).to receive(:chat?).and_return(false)

      subject

      expect(command.config_processor.jobs.keys).to eq([:echo, :rspec])
    end
  end
end