diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-07-20 15:26:25 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-07-20 15:26:25 +0300 |
commit | a09983ae35713f5a2bbb100981116d31ce99826e (patch) | |
tree | 2ee2af7bd104d57086db360a7e6d8c9d5d43667a /spec/models/incident_management | |
parent | 18c5ab32b738c0b6ecb4d0df3994000482f34bd8 (diff) |
Add latest changes from gitlab-org/gitlab@13-2-stable-ee
Diffstat (limited to 'spec/models/incident_management')
-rw-r--r-- | spec/models/incident_management/project_incident_management_setting_spec.rb | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/spec/models/incident_management/project_incident_management_setting_spec.rb b/spec/models/incident_management/project_incident_management_setting_spec.rb index ac3f97e2d89..effd89e970c 100644 --- a/spec/models/incident_management/project_incident_management_setting_spec.rb +++ b/spec/models/incident_management/project_incident_management_setting_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe IncidentManagement::ProjectIncidentManagementSetting do +RSpec.describe IncidentManagement::ProjectIncidentManagementSetting do let_it_be(:project) { create(:project, :repository, create_templates: :issue) } describe 'Associations' do @@ -108,4 +108,42 @@ describe IncidentManagement::ProjectIncidentManagementSetting do it_behaves_like 'no content' end end + + describe '#pagerduty_token' do + let(:active) { true } + + subject do + create(:project_incident_management_setting, project: project, pagerduty_active: active, pagerduty_token: token) + end + + context 'when token already set' do + let(:token) { SecureRandom.hex } + + it 'reads the token' do + expect(subject.pagerduty_token).to eq(token) + expect(subject.encrypted_pagerduty_token).not_to be_nil + expect(subject.encrypted_pagerduty_token_iv).not_to be_nil + end + end + + context 'when not set' do + let(:token) { nil } + + context 'when PagerDuty webhook is active' do + it 'generates a token before validation' do + expect(subject).to be_valid + expect(subject.pagerduty_token).to match(/\A\h{32}\z/) + end + end + + context 'when PagerDuty webhook is not active' do + let(:active) { false } + + it 'does not generate a token before validation' do + expect(subject).to be_valid + expect(subject.pagerduty_token).to be_nil + end + end + end + end end |