Skip to content
Snippets Groups Projects
issues.rb 5.31 KiB
Newer Older
  • Learn to ignore specific revisions
  • class ProjectIssues < Spinach::FeatureSteps
    
    Nihad Abbasov's avatar
    Nihad Abbasov committed
      include SharedAuthentication
      include SharedProject
      include SharedNote
      include SharedPaths
    
      include SharedMarkdown
    
      Given 'I should see "Release 0.4" in issues' do
        page.should have_content "Release 0.4"
      end
    
      And 'I should not see "Release 0.3" in issues' do
        page.should_not have_content "Release 0.3"
      end
    
    
      And 'I should not see "Tweet control" in issues' do
        page.should_not have_content "Tweet control"
    
      Given 'I click link "Closed"' do
        click_link "Closed"
      end
    
      Then 'I should see "Release 0.3" in issues' do
        page.should have_content "Release 0.3"
      end
    
      And 'I should not see "Release 0.4" in issues' do
        page.should_not have_content "Release 0.4"
      end
    
      Given 'I click link "All"' do
        click_link "All"
      end
    
      Given 'I click link "Release 0.4"' do
        click_link "Release 0.4"
      end
    
      Then 'I should see issue "Release 0.4"' do
        page.should have_content "Release 0.4"
      end
    
      Given 'I click link "New Issue"' do
        click_link "New Issue"
      end
    
      And 'I submit new issue "500 error on profile"' do
    
        fill_in "issue_title", with: "500 error on profile"
    
        click_button "Submit new issue"
      end
    
    
      step 'I submit new issue "500 error on profile" with label \'bug\'' do
        fill_in "issue_title", with: "500 error on profile"
        select 'bug', from: "Labels"
        click_button "Submit new issue"
      end
    
    
      Given 'I click link "500 error on profile"' do
        click_link "500 error on profile"
      end
    
    
      step 'I should see label \'bug\' with issue' do
        within '.issue-show-labels' do
          page.should have_content 'bug'
        end
      end
    
    
      Then 'I should see issue "500 error on profile"' do
    
    skv's avatar
    skv committed
        issue = Issue.find_by(title: "500 error on profile")
    
        page.should have_content issue.title
        page.should have_content issue.author_name
        page.should have_content issue.project.name
      end
    
    
      Given 'I fill in issue search with "Re"' do
        fill_in 'issue_search', with: "Re"
    
      Given 'I fill in issue search with "Bu"' do
        fill_in 'issue_search', with: "Bu"
    
      And 'I fill in issue search with ".3"' do
        fill_in 'issue_search', with: ".3"
    
      end
    
      And 'I fill in issue search with "Something"' do
        fill_in 'issue_search', with: "Something"
      end
    
      And 'I fill in issue search with ""' do
        fill_in 'issue_search', with: ""
      end
    
      Given 'project "Shop" has milestone "v2.2"' do
    
    skv's avatar
    skv committed
        project = Project.find_by(name: "Shop")
    
        milestone = create(:milestone, title: "v2.2", project: project)
    
        3.times { create(:issue, project: project, milestone: milestone) }
    
      end
    
      And 'project "Shop" has milestone "v3.0"' do
    
    skv's avatar
    skv committed
        project = Project.find_by(name: "Shop")
    
        milestone = create(:milestone, title: "v3.0", project: project)
    
        3.times { create(:issue, project: project, milestone: milestone) }
    
      end
    
      When 'I select milestone "v3.0"' do
        select "v3.0", from: "milestone_id"
      end
    
      Then 'I should see selected milestone with title "v3.0"' do
    
        issues_milestone_selector = "#issue_milestone_id_chzn > a"
    
        page.find(issues_milestone_selector).should have_content("v3.0")
      end
    
      When 'I select first assignee from "Shop" project' do
    
    skv's avatar
    skv committed
        project = Project.find_by(name: "Shop")
    
        first_assignee = project.users.first
        select first_assignee.name, from: "assignee_id"
      end
    
      Then 'I should see first assignee from "Shop" as selected assignee' do
    
        issues_assignee_selector = "#issue_assignee_id_chzn > a"
    
    skv's avatar
    skv committed
        project = Project.find_by(name: "Shop")
    
        assignee_name = project.users.first.name
        page.find(issues_assignee_selector).should have_content(assignee_name)
      end
    
      And 'project "Shop" have "Release 0.4" open issue' do
    
    skv's avatar
    skv committed
        project = Project.find_by(name: "Shop")
    
               title: "Release 0.4",
               project: project,
    
               author: project.users.first,
               description: "# Description header"
              )
    
      And 'project "Shop" have "Tweet control" open issue' do
    
    skv's avatar
    skv committed
        project = Project.find_by(name: "Shop")
    
        create(:issue,
    
               project: project,
               author: project.users.first)
      end
    
    
      And 'project "Shop" have "Release 0.3" closed issue' do
    
    skv's avatar
    skv committed
        project = Project.find_by(name: "Shop")
    
    Andrew8xx8's avatar
    Andrew8xx8 committed
        create(:closed_issue,
    
               title: "Release 0.3",
               project: project,
               author: project.users.first)
    
    
      Given 'empty project "Empty Project"' do
        create :empty_project, name: 'Empty Project', namespace: @user.namespace
      end
    
      When 'I visit empty project page' do
        project = Project.find_by(name: 'Empty Project')
        visit project_path(project)
      end
    
      And 'I see empty project details with ssh clone info' do
        project = Project.find_by(name: 'Empty Project')
        page.all(:css, '.git-empty .clone').each do |element|
          element.text.should include(project.url_to_repo)
        end
      end
    
      When "I visit empty project's issues page" do
        project = Project.find_by(name: 'Empty Project')
        visit project_issues_path(project)
      end
    
    Marin Jankovski's avatar
    Marin Jankovski committed
    
      step 'I leave a comment with code block' do
        within(".js-main-target-form") do
          fill_in "note[note]", with: "```\nCommand [1]: /usr/local/bin/git , see [text](doc/text)\n```"
          click_button "Add Comment"
          sleep 0.05
        end
      end
    
      step 'The code block should be unchanged' do
        page.should have_content("```\nCommand [1]: /usr/local/bin/git , see [text](doc/text)\n```")
      end