summaryrefslogtreecommitdiff
path: root/spec/javascripts/labels_select_spec.js
blob: b8f7b1dc85556cef19cc882290e687072631707e (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
42
43
import LabelsSelect from '~/labels_select';

const mockUrl = '/foo/bar/url';

const mockLabels = [
  {
    id: 26,
    title: 'Foo Label',
    description: 'Foobar',
    color: '#BADA55',
    text_color: '#FFFFFF',
  },
];

describe('LabelsSelect', () => {
  describe('getLabelTemplate', () => {
    const label = mockLabels[0];
    let $labelEl;

    beforeEach(() => {
      $labelEl = $(LabelsSelect.getLabelTemplate({
        labels: mockLabels,
        issueUpdateURL: mockUrl,
      }));
    });

    it('generated label item template has correct label URL', () => {
      expect($labelEl.attr('href')).toBe('/foo/bar?label_name[]=Foo%20Label');
    });

    it('generated label item template has correct label title', () => {
      expect($labelEl.find('span.label').text()).toBe(label.title);
    });

    it('generated label item template has label description as title attribute', () => {
      expect($labelEl.find('span.label').attr('title')).toBe(label.description);
    });

    it('generated label item template has correct label styles', () => {
      expect($labelEl.find('span.label').attr('style')).toBe(`background-color: ${label.color}; color: ${label.text_color};`);
    });
  });
});