summaryrefslogtreecommitdiff
path: root/features/step_definitions/dashboard_steps.rb
blob: 3ddc68e931c07ada963f8da29e1c544e5cace437 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
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 pushed to branch new_design"
  page.should have_link "Create Merge Request"
end

Then /^I click "(.*?)" link$/ do |arg1|
  click_link arg1 #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

Then /^I should see issues assigned to me$/ do
  issues = @user.issues
  issues.each do |issue|
    page.should have_content(issue.title[0..10])
    page.should have_content(issue.project.name)
  end
end

Then /^I should see my merge requests$/ do
  merge_requests = @user.merge_requests
  merge_requests.each do |mr|
    page.should have_content(mr.title[0..10])
    page.should have_content(mr.project.name)
  end
end

Given /^I have assigned issues$/ do
  project = Factory :project
  project.add_access(@user, :read, :write)

  issue1 = Factory :issue,
   :author => @user,
   :assignee => @user,
   :project => project

  issue2 = Factory :issue,
   :author => @user,
   :assignee => @user,
   :project => project
end

Given /^I have authored merge requests$/ do
  project1 = Factory :project

  project2 = Factory :project

  project1.add_access(@user, :read, :write)
  project2.add_access(@user, :read, :write)

  merge_request1 = Factory :merge_request,
   :author => @user,
   :project => project1

  merge_request2 = Factory :merge_request,
   :author => @user,
   :project => project2
end

Given /^user with name "(.*?)" joined project "(.*?)"$/ do |user_name, project_name|
  user = Factory.create(:user, {name: user_name})
  project = Project.find_by_name project_name
  Event.create(
    project: project,
    author_id: user.id,
    action: Event::Joined
  )
end

Given /^user with name "(.*?)" left project "(.*?)"$/ do |user_name, project_name|
  user = User.find_by_name user_name
  project = Project.find_by_name project_name
  Event.create(
    project: project,
    author_id: user.id,
    action: Event::Left
  )
end

Then /^I should see "(.*?)" event$/ do |event_text|
  page.should have_content(event_text)
end