Skip to content
代码片段 群组 项目
提交 a558cd4e 编辑于 作者: Marco Zille's avatar Marco Zille 提交者: Kassio Borges
浏览文件

Improved fork button feature specs

Changelog: other
上级 44327f75
No related branches found
No related tags found
无相关合并请求
......@@ -14,22 +14,79 @@
end
shared_examples 'fork button on project page' do
it 'allows user to fork project from the project page' do
visit project_path(project)
context 'when the user has access to only one namespace and has already forked the project' do
before do
fork_project(project, user, repository: true, namespace: user.namespace)
end
expect(page).not_to have_css('a.disabled', text: 'Fork')
end
it 'allows user to go to their fork' do
visit project_path(project)
context 'user has exceeded personal project limit' do
before do
user.update!(projects_limit: 0)
path = namespace_project_path(user, user.fork_of(project))
fork_button = find_link 'Fork'
expect(fork_button['href']).to eq(path)
expect(fork_button['class']).not_to include('disabled')
end
end
it 'disables fork button on project page' do
shared_examples 'fork button creates new fork' do
it 'allows user to fork the project from the project page' do
visit project_path(project)
expect(page).to have_css('a.disabled', text: 'Fork')
path = new_project_fork_path(project)
fork_button = find_link 'Fork'
expect(fork_button['href']).to eq(path)
expect(fork_button['class']).not_to include('disabled')
end
context 'when the user cannot fork the project' do
let(:project) do
# Disabling the repository makes sure that the user cannot fork the project
create(:project, :public, :repository, :repository_disabled, description: 'some description')
end
it 'disables fork button on project page' do
visit project_path(project)
path = new_project_fork_path(project)
fork_button = find_link 'Fork'
expect(fork_button['href']).to eq(path)
expect(fork_button['class']).to include('disabled')
end
end
context 'user has exceeded personal project limit' do
before do
user.update!(projects_limit: 0)
end
it 'disables fork button on project page' do
visit project_path(project)
path = new_project_fork_path(project)
fork_button = find_link 'Fork'
expect(fork_button['href']).to eq(path)
expect(fork_button['class']).to include('disabled')
end
end
end
context 'when the user has not already forked the project' do
it_behaves_like 'fork button creates new fork'
end
context 'when the user has access to more than one namespace' do
let(:group) { create(:group) }
before do
group.add_developer(user)
end
it_behaves_like 'fork button creates new fork'
end
end
......@@ -195,7 +252,9 @@ def submit_form(group_obj = group)
def create_fork(group_obj = group)
visit project_path(project)
find('.fork-btn').click
click_link 'Fork'
submit_form(group_obj)
wait_for_requests
end
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册