summaryrefslogtreecommitdiff
path: root/spec/support/shared_examples/controllers/trackable_shared_examples.rb
blob: e82c27c43f5bb95dad3341d496e0922087c28511 (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

RSpec.shared_examples 'a Trackable Controller' do
  describe '#track_event' do
    before do
      sign_in user
    end

    context 'with no params' do
      controller(described_class) do
        def index
          track_event
          head :ok
        end
      end

      it 'tracks the action name' do
        expect(Gitlab::Tracking).to receive(:event).with('AnonymousController', 'index', {})
        get :index
      end
    end

    context 'with params' do
      controller(described_class) do
        def index
          track_event('some_event', category: 'SomeCategory', label: 'errorlabel')
          head :ok
        end
      end

      it 'tracks with the specified param' do
        expect(Gitlab::Tracking).to receive(:event).with('SomeCategory', 'some_event', label: 'errorlabel')
        get :index
      end
    end
  end
end