summaryrefslogtreecommitdiff
path: root/features/steps/user.rb
blob: 5cbbecc7495533322843c6d8d86c18d99c713411 (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
class Spinach::Features::User < Spinach::FeatureSteps
  include SharedAuthentication
  include SharedPaths
  include SharedUser
  include SharedProject

  step 'I should see user "John Doe" page' do
    expect(title).to match(/^\s*John Doe/)
  end

  step '"John Doe" has contributions' do
    user = User.find_by(name: 'John Doe')
    project = contributed_project

    # Issue controbution
    issue_params = { title: 'Bug in old browser' }
    Issues::CreateService.new(project, user, issue_params).execute

    # Push code contribution
    push_params = {
      project: project,
      action: Event::PUSHED,
      author_id: user.id,
      data: { commit_count: 3 }
    }

    Event.create(push_params)
  end

  step 'I should see contributed projects' do
    within '.contributed-projects' do
      expect(page).to have_content(@contributed_project.name)
    end
  end

  step 'I should see contributions calendar' do
    expect(page).to have_css('.cal-heatmap-container')
  end

  def contributed_project
    @contributed_project ||= create(:project, :public)
  end
end