group_variables_spec.rb 2.2 KB
Newer Older
shinya maeda's avatar
shinya maeda committed
1 2
require 'spec_helper'

3
feature 'Group variables', :js do
shinya maeda's avatar
shinya maeda committed
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
  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