ewm_spec.rb 1.85 KB
Newer Older
1 2 3 4
# frozen_string_literal: true

require 'spec_helper'

5
RSpec.describe Integrations::Ewm do
6
  describe 'Validations' do
7
    context 'when integration is active' do
8 9 10 11 12 13 14
      before do
        subject.active = true
      end

      it { is_expected.to validate_presence_of(:project_url) }
      it { is_expected.to validate_presence_of(:issues_url) }
      it { is_expected.to validate_presence_of(:new_issue_url) }
15 16 17
      it_behaves_like 'issue tracker integration URL attribute', :project_url
      it_behaves_like 'issue tracker integration URL attribute', :issues_url
      it_behaves_like 'issue tracker integration URL attribute', :new_issue_url
18 19
    end

20
    context 'when integration is inactive' do
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 50 51 52 53 54 55 56
      before do
        subject.active = false
      end

      it { is_expected.not_to validate_presence_of(:project_url) }
      it { is_expected.not_to validate_presence_of(:issues_url) }
      it { is_expected.not_to validate_presence_of(:new_issue_url) }
    end
  end

  describe "ReferencePatternValidation" do
    it "extracts bug" do
      expect(described_class.reference_pattern.match("This is bug 123")[:issue]).to eq("bug 123")
    end

    it "extracts task" do
      expect(described_class.reference_pattern.match("This is task 123.")[:issue]).to eq("task 123")
    end

    it "extracts work item" do
      expect(described_class.reference_pattern.match("This is work item 123 now")[:issue]).to eq("work item 123")
    end

    it "extracts workitem" do
      expect(described_class.reference_pattern.match("workitem 123 at the beginning")[:issue]).to eq("workitem 123")
    end

    it "extracts defect" do
      expect(described_class.reference_pattern.match("This is defect 123 defect")[:issue]).to eq("defect 123")
    end

    it "extracts rtcwi" do
      expect(described_class.reference_pattern.match("This is rtcwi 123")[:issue]).to eq("rtcwi 123")
    end
  end
end