debian-mirror-gitlab/spec/lib/gitlab/alert_management/alert_status_counts_spec.rb

70 lines
2.1 KiB
Ruby
Raw Normal View History

2020-05-24 23:13:21 +05:30
# frozen_string_literal: true
require 'spec_helper'
2020-07-28 23:09:34 +05:30
RSpec.describe Gitlab::AlertManagement::AlertStatusCounts do
2020-05-24 23:13:21 +05:30
let_it_be(:current_user) { create(:user) }
let_it_be(:project) { create(:project) }
2020-10-24 23:57:45 +05:30
let_it_be(:alert_resolved) { create(:alert_management_alert, :resolved, project: project) }
let_it_be(:alert_ignored) { create(:alert_management_alert, :ignored, project: project) }
let_it_be(:alert_triggered) { create(:alert_management_alert) }
2021-04-29 21:17:54 +05:30
2020-05-24 23:13:21 +05:30
let(:params) { {} }
describe '#execute' do
subject(:counts) { described_class.new(current_user, project, params) }
context 'for an unauthorized user' do
it 'returns zero for all statuses' do
expect(counts.open).to eq(0)
expect(counts.all).to eq(0)
2021-01-03 14:25:43 +05:30
::AlertManagement::Alert.status_names.each do |status|
2020-05-24 23:13:21 +05:30
expect(counts.send(status)).to eq(0)
end
end
end
context 'for an authorized user' do
before do
project.add_developer(current_user)
end
it 'returns the correct counts for each status' do
expect(counts.open).to eq(0)
expect(counts.all).to eq(2)
expect(counts.resolved).to eq(1)
expect(counts.ignored).to eq(1)
expect(counts.triggered).to eq(0)
expect(counts.acknowledged).to eq(0)
end
context 'when filtering params are included' do
2021-01-03 14:25:43 +05:30
let(:params) { { status: :resolved } }
2020-05-24 23:13:21 +05:30
it 'returns the correct counts for each status' do
expect(counts.open).to eq(0)
expect(counts.all).to eq(1)
expect(counts.resolved).to eq(1)
expect(counts.ignored).to eq(0)
expect(counts.triggered).to eq(0)
expect(counts.acknowledged).to eq(0)
end
end
2020-06-23 00:09:42 +05:30
context 'when search param is included' do
2020-10-24 23:57:45 +05:30
let(:params) { { search: alert_resolved.title } }
2020-06-23 00:09:42 +05:30
it 'returns the correct countss' do
expect(counts.open).to eq(0)
expect(counts.all).to eq(1)
expect(counts.resolved).to eq(1)
expect(counts.ignored).to eq(0)
expect(counts.triggered).to eq(0)
expect(counts.acknowledged).to eq(0)
end
end
2020-05-24 23:13:21 +05:30
end
end
end