diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-06-20 14:10:13 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-06-20 14:10:13 +0300 |
commit | 0ea3fcec397b69815975647f5e2aa5fe944a8486 (patch) | |
tree | 7979381b89d26011bcf9bdc989a40fcc2f1ed4ff /spec/models/integrations/jira_spec.rb | |
parent | 72123183a20411a36d607d70b12d57c484394c8e (diff) |
Add latest changes from gitlab-org/gitlab@15-1-stable-eev15.1.0-rc42
Diffstat (limited to 'spec/models/integrations/jira_spec.rb')
-rw-r--r-- | spec/models/integrations/jira_spec.rb | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/spec/models/integrations/jira_spec.rb b/spec/models/integrations/jira_spec.rb index 061c770a61a..28d97b74adb 100644 --- a/spec/models/integrations/jira_spec.rb +++ b/spec/models/integrations/jira_spec.rb @@ -31,6 +31,61 @@ RSpec.describe Integrations::Jira do let(:integration) { jira_integration } end + describe 'validations' do + subject { jira_integration } + + context 'when integration is active' do + before do + jira_integration.active = true + + # Don't auto-fill URLs from gitlab.yml + stub_config(issues_tracker: {}) + end + + it { is_expected.to be_valid } + it { is_expected.to validate_presence_of(:url) } + it { is_expected.to validate_presence_of(:username) } + it { is_expected.to validate_presence_of(:password) } + + it_behaves_like 'issue tracker integration URL attribute', :url + it_behaves_like 'issue tracker integration URL attribute', :api_url + end + + context 'when integration is inactive' do + before do + jira_integration.active = false + end + + it { is_expected.to be_valid } + it { is_expected.not_to validate_presence_of(:url) } + it { is_expected.not_to validate_presence_of(:username) } + it { is_expected.not_to validate_presence_of(:password) } + end + + describe 'jira_issue_transition_id' do + it 'accepts a blank value' do + jira_integration.jira_issue_transition_id = ' ' + + expect(jira_integration).to be_valid + end + + it 'accepts any string containing numbers' do + jira_integration.jira_issue_transition_id = 'foo 23 bar' + + expect(jira_integration).to be_valid + end + + it 'does not accept a string without numbers' do + jira_integration.jira_issue_transition_id = 'foo bar' + + expect(jira_integration).not_to be_valid + expect(jira_integration.errors.full_messages).to eq([ + 'Jira issue transition IDs must be a list of numbers that can be split with , or ;' + ]) + end + end + end + describe '#options' do let(:options) do { |