diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-19 04:45:44 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-19 04:45:44 +0300 |
commit | 85dc423f7090da0a52c73eb66faf22ddb20efff9 (patch) | |
tree | 9160f299afd8c80c038f08e1545be119f5e3f1e1 /spec/models/alert_management | |
parent | 15c2c8c66dbe422588e5411eee7e68f1fa440bb8 (diff) |
Add latest changes from gitlab-org/gitlab@13-4-stable-ee
Diffstat (limited to 'spec/models/alert_management')
-rw-r--r-- | spec/models/alert_management/alert_spec.rb | 72 |
1 files changed, 29 insertions, 43 deletions
diff --git a/spec/models/alert_management/alert_spec.rb b/spec/models/alert_management/alert_spec.rb index f937a879400..eb9dcca842d 100644 --- a/spec/models/alert_management/alert_spec.rb +++ b/spec/models/alert_management/alert_spec.rb @@ -332,35 +332,39 @@ RSpec.describe AlertManagement::Alert do end end - describe '#details' do - let(:payload) do - { - 'title' => 'Details title', - 'custom' => { - 'alert' => { - 'fields' => %w[one two] - } - }, - 'yet' => { - 'another' => 'field' - } - } - end - - let(:alert) { build(:alert_management_alert, project: project, title: 'Details title', payload: payload) } - - subject { alert.details } - - it 'renders the payload as inline hash' do - is_expected.to eq( - 'custom.alert.fields' => %w[one two], - 'yet.another' => 'field' - ) + describe '.reference_pattern' do + subject { described_class.reference_pattern } + + it { is_expected.to match('gitlab-org/gitlab^alert#123') } + end + + describe '.link_reference_pattern' do + subject { described_class.link_reference_pattern } + + it { is_expected.to match(triggered_alert.details_url) } + it { is_expected.not_to match("#{Gitlab.config.gitlab.url}/gitlab-org/gitlab/alert_management/123") } + it { is_expected.not_to match("#{Gitlab.config.gitlab.url}/gitlab-org/gitlab/issues/123") } + it { is_expected.not_to match("gitlab-org/gitlab/-/alert_management/123") } + end + + describe '.reference_valid?' do + using RSpec::Parameterized::TableSyntax + + where(:ref, :result) do + '123456' | true + '1' | true + '-1' | false + nil | false + '123456891012345678901234567890' | false + end + + with_them do + it { expect(described_class.reference_valid?(ref)).to eq(result) } end end describe '#to_reference' do - it { expect(triggered_alert.to_reference).to eq('') } + it { expect(triggered_alert.to_reference).to eq("^alert##{triggered_alert.iid}") } end describe '#trigger' do @@ -449,22 +453,4 @@ RSpec.describe AlertManagement::Alert do expect { subject }.to change { alert.events }.by(1) end end - - describe '#present' do - context 'when alert is generic' do - let(:alert) { triggered_alert } - - it 'uses generic alert presenter' do - expect(alert.present).to be_kind_of(AlertManagement::AlertPresenter) - end - end - - context 'when alert is Prometheus specific' do - let(:alert) { build(:alert_management_alert, :prometheus, project: project) } - - it 'uses Prometheus Alert presenter' do - expect(alert.present).to be_kind_of(AlertManagement::PrometheusAlertPresenter) - end - end - end end |