summaryrefslogtreecommitdiff
path: root/spec/presenters/sentry_error_presenter_spec.rb
blob: ce1b31d2371855d3aa371a845aa8cc15b52cd147 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe SentryErrorPresenter do
  let(:error) { build(:error_tracking_sentry_detailed_error) }
  let(:presenter) { described_class.new(error) }

  describe '#frequency' do
    subject { presenter.frequency }

    it 'returns an array of frequency structs' do
      expect(subject).to include(a_kind_of(SentryErrorPresenter::FrequencyStruct))
    end

    it 'converts the times into UTC time objects' do
      time = subject.first.time

      expect(time).to be_a(Time)
      expect(time.strftime('%z')).to eq '+0000'
    end

    it 'returns the correct counts' do
      count = subject.first.count

      expect(count).to eq error.frequency.first[1]
    end
  end

  describe '#project_id' do
    subject { presenter.project_id }

    it 'returns a global ID of the correct type' do
      expect(subject).to eq(Gitlab::GlobalId.build(model_name: 'SentryProject', id: error.project_id).to_s)
    end
  end
end