summaryrefslogtreecommitdiff
path: root/spec/frontend/environments/environment_details/deployment_triggerer_spec.js
blob: 48af82661bf548b969a628506e6d8306aac618b5 (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
47
48
49
50
51
import { GlAvatar, GlAvatarLink } from '@gitlab/ui';
import { mountExtended } from 'helpers/vue_test_utils_helper';
import DeploymentTriggerer from '~/environments/environment_details/components/deployment_triggerer.vue';

describe('app/assets/javascripts/environments/environment_details/components/deployment_triggerer.vue', () => {
  const triggererData = {
    id: 'gid://gitlab/User/1',
    webUrl: 'http://gdk.test:3000/root',
    name: 'Administrator',
    avatarUrl: 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
  };
  let wrapper;

  const createWrapper = ({ triggerer }) => {
    return mountExtended(DeploymentTriggerer, {
      propsData: {
        triggerer,
      },
    });
  };

  describe('when the triggerer data exists', () => {
    beforeEach(() => {
      wrapper = createWrapper({ triggerer: triggererData });
    });

    it('should render an avatar link with a correct href', () => {
      const triggererAvatarLink = wrapper.findComponent(GlAvatarLink);
      expect(triggererAvatarLink.exists()).toBe(true);
      expect(triggererAvatarLink.attributes().href).toBe(triggererData.webUrl);
    });

    it('should render an avatar', () => {
      const triggererAvatar = wrapper.findComponent(GlAvatar);
      expect(triggererAvatar.exists()).toBe(true);
      expect(triggererAvatar.attributes().title).toBe(triggererData.name);
      expect(triggererAvatar.props().src).toBe(triggererData.avatarUrl);
    });
  });

  describe('when the triggerer data does not exist', () => {
    beforeEach(() => {
      wrapper = createWrapper({ triggerer: null });
    });

    it('should render nothing', () => {
      const avatarLink = wrapper.findComponent(GlAvatarLink);
      expect(avatarLink.exists()).toBe(false);
    });
  });
});