57 lines
1.3 KiB
Ruby
57 lines
1.3 KiB
Ruby
require 'rails_helper'
|
|
|
|
feature 'Profile > SSH Keys', feature: true do
|
|
let(:user) { create(:user) }
|
|
|
|
before do
|
|
login_as(user)
|
|
end
|
|
|
|
describe 'User adds a key' do
|
|
before do
|
|
visit profile_keys_path
|
|
end
|
|
|
|
scenario 'auto-populates the title', js: true do
|
|
fill_in('Key', with: attributes_for(:key).fetch(:key))
|
|
|
|
expect(find_field('Title').value).to eq 'dummy@gitlab.com'
|
|
end
|
|
|
|
scenario 'saves the new key' do
|
|
attrs = attributes_for(:key)
|
|
|
|
fill_in('Key', with: attrs[:key])
|
|
fill_in('Title', with: attrs[:title])
|
|
click_button('Add key')
|
|
|
|
expect(page).to have_content("Title: #{attrs[:title]}")
|
|
expect(page).to have_content(attrs[:key])
|
|
end
|
|
end
|
|
|
|
scenario 'User sees their keys' do
|
|
key = create(:key, user: user)
|
|
visit profile_keys_path
|
|
|
|
expect(page).to have_content(key.title)
|
|
end
|
|
|
|
scenario 'User removes a key via the key index' do
|
|
create(:key, user: user)
|
|
visit profile_keys_path
|
|
|
|
click_link('Remove')
|
|
|
|
expect(page).to have_content('Your SSH keys (0)')
|
|
end
|
|
|
|
scenario 'User removes a key via its details page' do
|
|
key = create(:key, user: user)
|
|
visit profile_key_path(key)
|
|
|
|
click_link('Remove')
|
|
|
|
expect(page).to have_content('Your SSH keys (0)')
|
|
end
|
|
end
|