Merge branch 'mb-invites-feature-to-rspec' into 'master'
Move invites spinach test to Rspec See merge request gitlab-org/gitlab-ce!16126
This commit is contained in:
commit
4b081cc5f7
|
@ -1,45 +0,0 @@
|
|||
Feature: Invites
|
||||
Background:
|
||||
Given "John Doe" is owner of group "Owned"
|
||||
And "John Doe" has invited "user@example.com" to group "Owned"
|
||||
|
||||
Scenario: Viewing invitation when signed out
|
||||
When I visit the invitation page
|
||||
Then I should be redirected to the sign in page
|
||||
And I should see a notice telling me to sign in
|
||||
|
||||
Scenario: Signing in to view invitation
|
||||
When I visit the invitation page
|
||||
And I sign in as "Mary Jane"
|
||||
Then I should be redirected to the invitation page
|
||||
|
||||
Scenario: Viewing invitation when signed in
|
||||
Given I sign in as "Mary Jane"
|
||||
And I visit the invitation page
|
||||
Then I should see the invitation details
|
||||
And I should see an "Accept invitation" button
|
||||
And I should see a "Decline" button
|
||||
|
||||
Scenario: Viewing invitation as an existing member
|
||||
Given I sign in as "John Doe"
|
||||
And I visit the invitation page
|
||||
Then I should see a message telling me I'm already a member
|
||||
|
||||
Scenario: Accepting the invitation
|
||||
Given I sign in as "Mary Jane"
|
||||
And I visit the invitation page
|
||||
And I click the "Accept invitation" button
|
||||
Then I should be redirected to the group page
|
||||
And I should see a notice telling me I have access
|
||||
|
||||
Scenario: Declining the application when signed in
|
||||
Given I sign in as "Mary Jane"
|
||||
And I visit the invitation page
|
||||
And I click the "Decline" button
|
||||
Then I should be redirected to the dashboard
|
||||
And I should see a notice telling me I have declined
|
||||
|
||||
Scenario: Declining the application when signed out
|
||||
When I visit the invitation's decline page
|
||||
Then I should be redirected to the sign in page
|
||||
And I should see a notice telling me I have declined
|
|
@ -1,80 +0,0 @@
|
|||
class Spinach::Features::Invites < Spinach::FeatureSteps
|
||||
include SharedAuthentication
|
||||
include SharedUser
|
||||
include SharedGroup
|
||||
|
||||
step '"John Doe" has invited "user@example.com" to group "Owned"' do
|
||||
user = User.find_by(name: "John Doe")
|
||||
group = Group.find_by(name: "Owned")
|
||||
group.add_developer("user@example.com", user)
|
||||
end
|
||||
|
||||
step 'I visit the invitation page' do
|
||||
group = Group.find_by(name: "Owned")
|
||||
invite = group.group_members.invite.last
|
||||
invite.generate_invite_token!
|
||||
@raw_invite_token = invite.raw_invite_token
|
||||
visit invite_path(@raw_invite_token)
|
||||
end
|
||||
|
||||
step 'I should be redirected to the sign in page' do
|
||||
expect(current_path).to eq(new_user_session_path)
|
||||
end
|
||||
|
||||
step 'I should see a notice telling me to sign in' do
|
||||
expect(page).to have_content "To accept this invitation, sign in"
|
||||
end
|
||||
|
||||
step 'I should be redirected to the invitation page' do
|
||||
expect(current_path).to eq(invite_path(@raw_invite_token))
|
||||
end
|
||||
|
||||
step 'I should see the invitation details' do
|
||||
expect(page).to have_content("You have been invited by John Doe to join group Owned as Developer.")
|
||||
end
|
||||
|
||||
step "I should see a message telling me I'm already a member" do
|
||||
expect(page).to have_content("However, you are already a member of this group.")
|
||||
end
|
||||
|
||||
step 'I should see an "Accept invitation" button' do
|
||||
expect(page).to have_link("Accept invitation")
|
||||
end
|
||||
|
||||
step 'I should see a "Decline" button' do
|
||||
expect(page).to have_link("Decline")
|
||||
end
|
||||
|
||||
step 'I click the "Accept invitation" button' do
|
||||
page.click_link "Accept invitation"
|
||||
end
|
||||
|
||||
step 'I should be redirected to the group page' do
|
||||
group = Group.find_by(name: "Owned")
|
||||
expect(current_path).to eq(group_path(group))
|
||||
end
|
||||
|
||||
step 'I should see a notice telling me I have access' do
|
||||
expect(page).to have_content("You have been granted Developer access to group Owned.")
|
||||
end
|
||||
|
||||
step 'I click the "Decline" button' do
|
||||
page.click_link "Decline"
|
||||
end
|
||||
|
||||
step 'I should be redirected to the dashboard' do
|
||||
expect(current_path).to eq(dashboard_projects_path)
|
||||
end
|
||||
|
||||
step 'I should see a notice telling me I have declined' do
|
||||
expect(page).to have_content("You have declined the invitation to join group Owned.")
|
||||
end
|
||||
|
||||
step "I visit the invitation's decline page" do
|
||||
group = Group.find_by(name: "Owned")
|
||||
invite = group.group_members.invite.last
|
||||
invite.generate_invite_token!
|
||||
@raw_invite_token = invite.raw_invite_token
|
||||
visit decline_invite_path(@raw_invite_token)
|
||||
end
|
||||
end
|
|
@ -0,0 +1,97 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe 'Invites' do
|
||||
let(:user) { create(:user) }
|
||||
let(:owner) { create(:user, name: 'John Doe') }
|
||||
let(:group) { create(:group, name: 'Owned') }
|
||||
let(:project) { create(:project, :repository, namespace: group) }
|
||||
let(:invite) { group.group_members.invite.last }
|
||||
|
||||
before do
|
||||
project.add_master(owner)
|
||||
group.add_user(owner, Gitlab::Access::OWNER)
|
||||
group.add_developer('user@example.com', owner)
|
||||
invite.generate_invite_token!
|
||||
end
|
||||
|
||||
context 'when signed out' do
|
||||
before do
|
||||
visit invite_path(invite.raw_invite_token)
|
||||
end
|
||||
|
||||
it 'renders sign in page with sign in notice' do
|
||||
expect(current_path).to eq(new_user_session_path)
|
||||
expect(page).to have_content('To accept this invitation, sign in')
|
||||
end
|
||||
|
||||
it 'sign in and redirects to invitation page' do
|
||||
fill_in 'user_login', with: user.email
|
||||
fill_in 'user_password', with: user.password
|
||||
check 'user_remember_me'
|
||||
click_button 'Sign in'
|
||||
|
||||
expect(current_path).to eq(invite_path(invite.raw_invite_token))
|
||||
expect(page).to have_content(
|
||||
'You have been invited by John Doe to join group Owned as Developer.'
|
||||
)
|
||||
expect(page).to have_link('Accept invitation')
|
||||
expect(page).to have_link('Decline')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when signed in as an exists member' do
|
||||
before do
|
||||
sign_in(owner)
|
||||
end
|
||||
|
||||
it 'shows message user already a member' do
|
||||
visit invite_path(invite.raw_invite_token)
|
||||
expect(page).to have_content('However, you are already a member of this group.')
|
||||
end
|
||||
end
|
||||
|
||||
describe 'accepting the invitation' do
|
||||
before do
|
||||
sign_in(user)
|
||||
visit invite_path(invite.raw_invite_token)
|
||||
end
|
||||
|
||||
it 'grants access and redirects to group page' do
|
||||
page.click_link 'Accept invitation'
|
||||
expect(current_path).to eq(group_path(group))
|
||||
expect(page).to have_content(
|
||||
'You have been granted Developer access to group Owned.'
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'declining the application' do
|
||||
context 'when signed in' do
|
||||
before do
|
||||
sign_in(user)
|
||||
visit invite_path(invite.raw_invite_token)
|
||||
end
|
||||
|
||||
it 'declines application and redirects to dashboard' do
|
||||
page.click_link 'Decline'
|
||||
expect(current_path).to eq(dashboard_projects_path)
|
||||
expect(page).to have_content(
|
||||
'You have declined the invitation to join group Owned.'
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when signed out' do
|
||||
before do
|
||||
visit decline_invite_path(invite.raw_invite_token)
|
||||
end
|
||||
|
||||
it 'declines application and redirects to sign in page' do
|
||||
expect(current_path).to eq(new_user_session_path)
|
||||
expect(page).to have_content(
|
||||
'You have declined the invitation to join group Owned.'
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue