summaryrefslogtreecommitdiff
path: root/spec/features/group_variables_spec.rb
blob: d2d0be35f1ce108fe92008c26de941a6198da13b (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
71
72
73
74
75
76
77
78
require 'spec_helper'

feature 'Group variables', :js do
  let(:user) { create(:user) }
  let(:group) { create(:group) }

  background do
    group.add_master(user)
    gitlab_sign_in(user)
  end

  context 'when user creates a new variable' do
    background do
      visit group_settings_ci_cd_path(group)
      fill_in 'variable_key', with: 'AAA'
      fill_in 'variable_value', with: 'AAA123'
      find(:css, "#variable_protected").set(true)
      click_on 'Add new variable'
    end

    scenario 'user sees the created variable' do
      page.within('.variables-table') do
        expect(find(".variable-key")).to have_content('AAA')
        expect(find(".variable-value")).to have_content('******')
        expect(find(".variable-protected")).to have_content('Yes')
      end
      click_on 'Reveal Values'
      page.within('.variables-table') do
        expect(find(".variable-value")).to have_content('AAA123')
      end
    end
  end

  context 'when user edits a variable' do
    background do
      create(:ci_group_variable, key: 'AAA', value: 'AAA123', protected: true,
                                 group: group)

      visit group_settings_ci_cd_path(group)

      page.within('.variable-menu') do
        click_on 'Update'
      end

      fill_in 'variable_key', with: 'BBB'
      fill_in 'variable_value', with: 'BBB123'
      find(:css, "#variable_protected").set(false)
      click_on 'Save variable'
    end

    scenario 'user sees the updated variable' do
      page.within('.variables-table') do
        expect(find(".variable-key")).to have_content('BBB')
        expect(find(".variable-value")).to have_content('******')
        expect(find(".variable-protected")).to have_content('No')
      end
    end
  end

  context 'when user deletes a variable' do
    background do
      create(:ci_group_variable, key: 'BBB', value: 'BBB123', protected: false,
                                 group: group)

      visit group_settings_ci_cd_path(group)

      page.within('.variable-menu') do
        page.accept_alert 'Are you sure?' do
          click_on 'Remove'
        end
      end
    end

    scenario 'user does not see the deleted variable' do
      expect(page).to have_no_css('.variables-table')
    end
  end
end