summaryrefslogtreecommitdiff
path: root/spec/frontend/serverless/components/environment_row_spec.js
blob: 932d712dbecd50469e68dd166b0ddf2f4da5c9f4 (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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import environmentRowComponent from '~/serverless/components/environment_row.vue';
import { createLocalVue, shallowMount } from '@vue/test-utils';

import { mockServerlessFunctions, mockServerlessFunctionsDiffEnv } from '../mock_data';
import { translate } from '~/serverless/utils';

const createComponent = (localVue, env, envName) =>
  shallowMount(environmentRowComponent, { localVue, propsData: { env, envName } }).vm;

describe('environment row component', () => {
  describe('default global cluster case', () => {
    let localVue;
    let vm;

    beforeEach(() => {
      localVue = createLocalVue();
      vm = createComponent(localVue, translate(mockServerlessFunctions)['*'], '*');
    });

    afterEach(() => vm.$destroy());

    it('has the correct envId', () => {
      expect(vm.envId).toEqual('env-global');
    });

    it('is open by default', () => {
      expect(vm.isOpenClass).toEqual({ 'is-open': true });
    });

    it('generates correct output', () => {
      expect(vm.$el.id).toEqual('env-global');
      expect(vm.$el.classList.contains('is-open')).toBe(true);
      expect(vm.$el.querySelector('div.title').innerHTML.trim()).toEqual('*');
    });

    it('opens and closes correctly', () => {
      expect(vm.isOpen).toBe(true);

      vm.toggleOpen();

      expect(vm.isOpen).toBe(false);
    });
  });

  describe('default named cluster case', () => {
    let vm;
    let localVue;

    beforeEach(() => {
      localVue = createLocalVue();
      vm = createComponent(localVue, translate(mockServerlessFunctionsDiffEnv).test, 'test');
    });

    afterEach(() => vm.$destroy());

    it('has the correct envId', () => {
      expect(vm.envId).toEqual('env-test');
    });

    it('is open by default', () => {
      expect(vm.isOpenClass).toEqual({ 'is-open': true });
    });

    it('generates correct output', () => {
      expect(vm.$el.id).toEqual('env-test');
      expect(vm.$el.classList.contains('is-open')).toBe(true);
      expect(vm.$el.querySelector('div.title').innerHTML.trim()).toEqual('test');
    });
  });
});