summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/award_emoji_spec.rb
blob: 00a110e31f85272c51e76a9c6071fecf1265bd55 (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
38
39
40
41
require 'spec_helper'

describe Gitlab::AwardEmoji do
  describe '.urls' do
    after do
      Gitlab::AwardEmoji.instance_variable_set(:@urls, nil)
    end

    subject { Gitlab::AwardEmoji.urls }

    it { is_expected.to be_an_instance_of(Array) }
    it { is_expected.not_to be_empty }

    context 'every Hash in the Array' do
      it 'has the correct keys and values' do
        subject.each do |hash|
          expect(hash[:name]).to be_an_instance_of(String)
          expect(hash[:path]).to be_an_instance_of(String)
        end
      end
    end

    context 'handles relative root' do
      it 'includes the full path' do
        allow(Gitlab::Application.config).to receive(:relative_url_root).and_return('/gitlab')

        subject.each do |hash|
          expect(hash[:name]).to be_an_instance_of(String)
          expect(hash[:path]).to start_with('/gitlab')
        end
      end
    end
  end

  describe '.emoji_by_category' do
    it "only contains known categories" do
      undefined_categories = Gitlab::AwardEmoji.emoji_by_category.keys - Gitlab::AwardEmoji::CATEGORIES.keys
      expect(undefined_categories).to be_empty
    end
  end
end