Welcome to mirror list, hosted at ThFree Co, Russian Federation.

reference_spec.js « wrappers « components « content_editor « frontend « spec - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 828b92a6b1e8e09d52cc5ca209b4a90b08491b79 (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
44
45
46
import { GlLink } from '@gitlab/ui';
import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
import ReferenceWrapper from '~/content_editor/components/wrappers/reference.vue';

describe('content/components/wrappers/reference', () => {
  let wrapper;

  const createWrapper = (node = {}) => {
    wrapper = shallowMountExtended(ReferenceWrapper, {
      propsData: { node },
    });
  };

  it('renders a span for commands', () => {
    createWrapper({ attrs: { referenceType: 'command', text: '/assign' } });

    const span = wrapper.find('span');
    expect(span.text()).toBe('/assign');
  });

  it('renders an anchor for everything else', () => {
    createWrapper({ attrs: { referenceType: 'issue', text: '#252522' } });

    const link = wrapper.findComponent(GlLink);
    expect(link.text()).toBe('#252522');
  });

  it('adds gfm-project_member class for project members', () => {
    createWrapper({ attrs: { referenceType: 'user', text: '@root' } });

    const link = wrapper.findComponent(GlLink);
    expect(link.text()).toBe('@root');
    expect(link.classes('gfm-project_member')).toBe(true);
    expect(link.classes('current-user')).toBe(false);
  });

  it('adds a current-user class if the project member is current user', () => {
    window.gon = { current_username: 'root' };

    createWrapper({ attrs: { referenceType: 'user', text: '@root' } });

    const link = wrapper.findComponent(GlLink);
    expect(link.text()).toBe('@root');
    expect(link.classes('current-user')).toBe(true);
  });
});