project_snippets.rb 2.55 KB
Newer Older
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
class ProjectSnippets < Spinach::FeatureSteps
  include SharedAuthentication
  include SharedProject
  include SharedNote
  include SharedPaths

  And 'project "Shop" have "Snippet one" snippet' do
    create(:project_snippet,
           title: "Snippet one",
           content: "Test content",
           file_name: "snippet.rb",
           project: project,
           author: project.users.first)
  end

  And 'project "Shop" have no "Snippet two" snippet' do
    create(:snippet,
           title: "Snippet two",
           content: "Test content",
           file_name: "snippet.rb",
           author: project.users.first)
  end

  Given 'I click link "New Snippet"' do
    click_link "Add new snippet"
  end

  Given 'I click link "Snippet one"' do
    click_link "Snippet one"
  end

  Then 'I should see "Snippet one" in snippets' do
    page.should have_content "Snippet one"
  end

  And 'I should not see "Snippet two" in snippets' do
    page.should_not have_content "Snippet two"
  end

  And 'I should not see "Snippet one" in snippets' do
    page.should_not have_content "Snippet one"
  end

  And 'I click link "Edit"' do
45
    within ".file-title" do
46 47 48 49
      click_link "Edit"
    end
  end

50 51
  And 'I click link "Remove Snippet"' do
    click_link "Remove snippet"
52 53 54 55 56 57 58 59
  end

  And 'I submit new snippet "Snippet three"' do
    fill_in "project_snippet_title", :with => "Snippet three"
    fill_in "project_snippet_file_name", :with => "my_snippet.rb"
    within('.file-editor') do
      find(:xpath, "//input[@id='project_snippet_content']").set 'Content of snippet three'
    end
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
60
    click_button "Create snippet"
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
  end

  Then 'I should see snippet "Snippet three"' do
    page.should have_content "Snippet three"
    page.should have_content "Content of snippet three"
  end

  And 'I submit new title "Snippet new title"' do
    fill_in "project_snippet_title", :with => "Snippet new title"
    click_button "Save"
  end

  Then 'I should see "Snippet new title"' do
    page.should have_content "Snippet new title"
  end

  And 'I leave a comment like "Good snippet!"' do
    within('.js-main-target-form') do
      fill_in "note_note", with: "Good snippet!"
      click_button "Add Comment"
    end
  end

  Then 'I should see comment "Good snippet!"' do
    page.should have_content "Good snippet!"
  end

  And 'I visit snippet page "Snippet one"' do
    visit project_snippet_path(project, project_snippet)
  end

  def project
skv's avatar
skv committed
93
    @project ||= Project.find_by!(name: "Shop")
94 95 96
  end

  def project_snippet
skv's avatar
skv committed
97
    @project_snippet ||= ProjectSnippet.find_by!(title: "Snippet one")
98 99
  end
end