From 781fd1a80c6b65fa8c0cd71001be681e955c4edb Mon Sep 17 00:00:00 2001 From: randx Date: Sat, 16 Jun 2012 12:50:14 +0300 Subject: [PATCH] Cucumber -> Dashboard features --- app/views/search/show.html.haml | 2 +- features/dashboard/dashboard.feature | 18 ++++++ features/dashboard/search.feature | 11 ++++ features/step_definitions/dashboard_steps.rb | 67 ++++++++++++++++++++ 4 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 features/step_definitions/dashboard_steps.rb diff --git a/app/views/search/show.html.haml b/app/views/search/show.html.haml index b9fff9a7..6bdccd11 100644 --- a/app/views/search/show.html.haml +++ b/app/views/search/show.html.haml @@ -3,7 +3,7 @@ = label_tag :search do %strong Looking for .input - = text_field_tag :search, params[:search],:placeholder => "issue 143", :class => "input-xxlarge" + = text_field_tag :search, params[:search], :placeholder => "issue 143", :class => "input-xxlarge", :id => "dashboard_search" = submit_tag 'Search', :class => "btn btn-primary" - if params[:search].present? %br diff --git a/features/dashboard/dashboard.feature b/features/dashboard/dashboard.feature index e69de29b..2d66af53 100644 --- a/features/dashboard/dashboard.feature +++ b/features/dashboard/dashboard.feature @@ -0,0 +1,18 @@ +Feature: Dashboard + Background: + Given I signin as a user + And I own project "Shop" + And project "Shop" has push event + And I visit dashboard page + + Scenario: I should see projects list + Then I should see "New Project" link + Then I should see "Shop" project link + Then I should see project "Shop" activity feed + + Scenario: I should see last pish widget + Then I should see last push widget + And I click "Create Merge Request" link + Then I see prefilled new Merge Request page + + diff --git a/features/dashboard/search.feature b/features/dashboard/search.feature index e69de29b..f053fe86 100644 --- a/features/dashboard/search.feature +++ b/features/dashboard/search.feature @@ -0,0 +1,11 @@ +Feature: Dashboard Search + Background: + Given I signin as a user + And I own project "Shop" + And I visit dashboard search page + + Scenario: I should see project i'm looking for + Given I search for "Sho" + Then I should see "Shop" project link + + diff --git a/features/step_definitions/dashboard_steps.rb b/features/step_definitions/dashboard_steps.rb new file mode 100644 index 00000000..a7353fac --- /dev/null +++ b/features/step_definitions/dashboard_steps.rb @@ -0,0 +1,67 @@ +Given /^I visit dashboard page$/ do + visit dashboard_path +end + +Then /^I should see "(.*?)" link$/ do |arg1| + page.should have_link(arg1) +end + +Then /^I should see "(.*?)" project link$/ do |arg1| + page.should have_link(arg1) +end + +Then /^I should see project "(.*?)" activity feed$/ do |arg1| + project = Project.find_by_name(arg1) + page.should have_content "#{@user.name} pushed new branch new_design at #{project.name}" +end + +Given /^project "(.*?)" has push event$/ do |arg1| + @project = Project.find_by_name(arg1) + + data = { + :before => "0000000000000000000000000000000000000000", + :after => "0220c11b9a3e6c69dc8fd35321254ca9a7b98f7e", + :ref => "refs/heads/new_design", + :user_id => @user.id, + :user_name => @user.name, + :repository => { + :name => @project.name, + :url => "localhost/rubinius", + :description => "", + :homepage => "localhost/rubinius", + :private => true + } + } + + @event = Event.create( + :project => @project, + :action => Event::Pushed, + :data => data, + :author_id => @user.id + ) +end + +Then /^I should see last push widget$/ do + page.should have_content "Your last push was to branch new_design" + page.should have_link "Create Merge Request" +end + +Then /^I click "(.*?)" link$/ do |arg1| + click_link "Create Merge Request" +end + +Then /^I see prefilled new Merge Request page$/ do + current_path.should == new_project_merge_request_path(@project) + find("#merge_request_source_branch").value.should == "new_design" + find("#merge_request_target_branch").value.should == "master" + find("#merge_request_title").value.should == "New Design" +end + +Given /^I visit dashboard search page$/ do + visit search_path +end + +Given /^I search for "(.*?)"$/ do |arg1| + fill_in "dashboard_search", :with => arg1 + click_button "Search" +end