diff options
Diffstat (limited to 'features')
| -rw-r--r-- | features/project/fork_project.feature | 14 | ||||
| -rw-r--r-- | features/steps/project/project_fork.rb | 30 |
2 files changed, 44 insertions, 0 deletions
diff --git a/features/project/fork_project.feature b/features/project/fork_project.feature new file mode 100644 index 00000000000..dc477ca3bf3 --- /dev/null +++ b/features/project/fork_project.feature @@ -0,0 +1,14 @@ +Feature: Fork Project + Background: + Given I sign in as a user + And I am a member of project "Shop" + When I visit project "Shop" page + + Scenario: User fork a project + Given I click link "Fork" + Then I should see the forked project page + + Scenario: User already has forked the project + Given I already have a project named "Shop" in my namespace + And I click link "Fork" + Then I should see a "Name has already been taken" warning diff --git a/features/steps/project/project_fork.rb b/features/steps/project/project_fork.rb new file mode 100644 index 00000000000..f3335deb279 --- /dev/null +++ b/features/steps/project/project_fork.rb @@ -0,0 +1,30 @@ +class ForkProject < Spinach::FeatureSteps + include SharedAuthentication + include SharedPaths + include SharedProject + + step 'I click link "Fork"' do + Gitlab::Shell.any_instance.stub(:fork_repository).and_return(true) + click_link "Fork" + end + + step 'I am a member of project "Shop"' do + @project = Project.find_by_name "Shop" + @project ||= create(:project_with_code, name: "Shop") + @project.team << [@user, :reporter] + end + + step 'I should see the forked project page' do + page.should have_content "Project was successfully forked." + current_path.should include current_user.namespace.path + end + + step 'I already have a project named "Shop" in my namespace' do + @my_project = create(:project_with_code, name: "Shop", namespace: current_user.namespace) + end + + step 'I should see a "Name has already been taken" warning' do + page.should have_content "Name has already been taken" + end + +end
\ No newline at end of file |
