diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-02-21 10:41:37 +0200 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-02-21 10:41:37 +0200 |
commit | 03f6a28ec0dab308070e83ec422f12fa289aad9f (patch) | |
tree | a2b72dd5944863f38f7c7397590626223ab0fc5a /spec/features/snippets_spec.rb | |
parent | 9f722427e5835e4aeb5c1dd6a9cc8720b40d87c0 (diff) | |
download | gitlab-ce-03f6a28ec0dab308070e83ec422f12fa289aad9f.tar.gz |
move capybara scenarios to spec/features
Diffstat (limited to 'spec/features/snippets_spec.rb')
-rw-r--r-- | spec/features/snippets_spec.rb | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/spec/features/snippets_spec.rb b/spec/features/snippets_spec.rb new file mode 100644 index 00000000000..770e34dc07c --- /dev/null +++ b/spec/features/snippets_spec.rb @@ -0,0 +1,99 @@ +require 'spec_helper' + +describe "Snippets" do + let(:project) { create(:project) } + + before do + login_as :user + project.team << [@user, :developer] + end + + describe "GET /snippets" do + before do + @snippet = create(:snippet, + author: @user, + project: project) + + visit project_snippets_path(project) + end + + subject { page } + + it { should have_content(@snippet.title[0..10]) } + it { should have_content(@snippet.project.name) } + + describe "Destroy" do + before do + # admin access to remove snippet + @user.users_projects.destroy_all + project.team << [@user, :master] + visit edit_project_snippet_path(project, @snippet) + end + + it "should remove entry" do + expect { + click_link "destroy_snippet_#{@snippet.id}" + }.to change { Snippet.count }.by(-1) + end + end + end + + describe "New snippet" do + before do + visit project_snippets_path(project) + click_link "New Snippet" + end + + it "should open new snippet popup" do + page.current_path.should == new_project_snippet_path(project) + end + + describe "fill in", js: true do + before do + fill_in "snippet_title", with: "login function" + fill_in "snippet_file_name", with: "test.rb" + page.execute_script("editor.insert('def login; end');") + end + + it { expect { click_button "Save" }.to change {Snippet.count}.by(1) } + + it "should add new snippet to table" do + click_button "Save" + page.current_path.should == project_snippet_path(project, Snippet.last) + page.should have_content "login function" + page.should have_content "test.rb" + end + end + end + + describe "Edit snippet" do + before do + @snippet = create(:snippet, + author: @user, + project: project) + visit project_snippet_path(project, @snippet) + click_link "Edit" + end + + it "should open edit page" do + page.current_path.should == edit_project_snippet_path(project, @snippet) + end + + describe "fill in" do + before do + fill_in "snippet_title", with: "login function" + fill_in "snippet_file_name", with: "test.rb" + end + + it { expect { click_button "Save" }.to_not change {Snippet.count} } + + it "should update snippet fields" do + click_button "Save" + + page.current_path.should == project_snippet_path(project, @snippet) + page.should have_content "login function" + page.should have_content "test.rb" + end + end + end +end |