From 621bfdb4aa6c5ef2b031f7c4fb7753eb80d7a5b5 Mon Sep 17 00:00:00 2001 From: vsizov Date: Tue, 21 Feb 2012 20:18:06 +0300 Subject: [PATCH] wiki: rspec --- db/schema.rb | 14 -- spec/controllers/wikis_controller_spec.rb | 164 ---------------------- spec/factories.rb | 5 + spec/requests/wikis_spec.rb | 35 +++++ spec/views/wikis/edit.html.haml_spec.rb | 20 --- spec/views/wikis/index.html.haml_spec.rb | 24 ---- spec/views/wikis/new.html.haml_spec.rb | 20 --- spec/views/wikis/show.html.haml_spec.rb | 18 --- 8 files changed, 40 insertions(+), 260 deletions(-) delete mode 100644 spec/controllers/wikis_controller_spec.rb create mode 100644 spec/requests/wikis_spec.rb delete mode 100644 spec/views/wikis/edit.html.haml_spec.rb delete mode 100644 spec/views/wikis/index.html.haml_spec.rb delete mode 100644 spec/views/wikis/new.html.haml_spec.rb delete mode 100644 spec/views/wikis/show.html.haml_spec.rb diff --git a/db/schema.rb b/db/schema.rb index cf4b226c..c32df7ea 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -159,20 +159,6 @@ ActiveRecord::Schema.define(:version => 20120219193300) do t.datetime "updated_at" end - create_table "wiki_pages", :force => true do |t| - t.string "slug" - t.string "title" - t.text "content" - t.integer "author_id" - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "wiki_pages", ["author_id"], :name => "index_wiki_pages_on_author_id" - add_index "wiki_pages", ["project_id"], :name => "index_wiki_pages_on_project_id" - add_index "wiki_pages", ["slug"], :name => "index_wiki_pages_on_slug", :unique => true - create_table "wikis", :force => true do |t| t.string "title" t.text "content" diff --git a/spec/controllers/wikis_controller_spec.rb b/spec/controllers/wikis_controller_spec.rb deleted file mode 100644 index bb601aac..00000000 --- a/spec/controllers/wikis_controller_spec.rb +++ /dev/null @@ -1,164 +0,0 @@ -require 'spec_helper' - -# This spec was generated by rspec-rails when you ran the scaffold generator. -# It demonstrates how one might use RSpec to specify the controller code that -# was generated by Rails when you ran the scaffold generator. -# -# It assumes that the implementation code is generated by the rails scaffold -# generator. If you are using any extension libraries to generate different -# controller code, this generated spec may or may not pass. -# -# It only uses APIs available in rails and/or rspec-rails. There are a number -# of tools you can use to make these specs even more expressive, but we're -# sticking to rails and rspec-rails APIs to keep things simple and stable. -# -# Compared to earlier versions of this generator, there is very limited use of -# stubs and message expectations in this spec. Stubs are only used when there -# is no simpler way to get a handle on the object needed for the example. -# Message expectations are only used when there is no simpler way to specify -# that an instance is receiving a specific message. - -describe WikisController do - - # This should return the minimal set of attributes required to create a valid - # Wiki. As you add validations to Wiki, be sure to - # update the return value of this method accordingly. - def valid_attributes - {} - end - - # This should return the minimal set of values that should be in the session - # in order to pass any filters (e.g. authentication) defined in - # WikisController. Be sure to keep this updated too. - def valid_session - {} - end - - describe "GET index" do - it "assigns all wikis as @wikis" do - wiki = Wiki.create! valid_attributes - get :index, {}, valid_session - assigns(:wikis).should eq([wiki]) - end - end - - describe "GET show" do - it "assigns the requested wiki as @wiki" do - wiki = Wiki.create! valid_attributes - get :show, {:id => wiki.to_param}, valid_session - assigns(:wiki).should eq(wiki) - end - end - - describe "GET new" do - it "assigns a new wiki as @wiki" do - get :new, {}, valid_session - assigns(:wiki).should be_a_new(Wiki) - end - end - - describe "GET edit" do - it "assigns the requested wiki as @wiki" do - wiki = Wiki.create! valid_attributes - get :edit, {:id => wiki.to_param}, valid_session - assigns(:wiki).should eq(wiki) - end - end - - describe "POST create" do - describe "with valid params" do - it "creates a new Wiki" do - expect { - post :create, {:wiki => valid_attributes}, valid_session - }.to change(Wiki, :count).by(1) - end - - it "assigns a newly created wiki as @wiki" do - post :create, {:wiki => valid_attributes}, valid_session - assigns(:wiki).should be_a(Wiki) - assigns(:wiki).should be_persisted - end - - it "redirects to the created wiki" do - post :create, {:wiki => valid_attributes}, valid_session - response.should redirect_to(Wiki.last) - end - end - - describe "with invalid params" do - it "assigns a newly created but unsaved wiki as @wiki" do - # Trigger the behavior that occurs when invalid params are submitted - Wiki.any_instance.stub(:save).and_return(false) - post :create, {:wiki => {}}, valid_session - assigns(:wiki).should be_a_new(Wiki) - end - - it "re-renders the 'new' template" do - # Trigger the behavior that occurs when invalid params are submitted - Wiki.any_instance.stub(:save).and_return(false) - post :create, {:wiki => {}}, valid_session - response.should render_template("new") - end - end - end - - describe "PUT update" do - describe "with valid params" do - it "updates the requested wiki" do - wiki = Wiki.create! valid_attributes - # Assuming there are no other wikis in the database, this - # specifies that the Wiki created on the previous line - # receives the :update_attributes message with whatever params are - # submitted in the request. - Wiki.any_instance.should_receive(:update_attributes).with({'these' => 'params'}) - put :update, {:id => wiki.to_param, :wiki => {'these' => 'params'}}, valid_session - end - - it "assigns the requested wiki as @wiki" do - wiki = Wiki.create! valid_attributes - put :update, {:id => wiki.to_param, :wiki => valid_attributes}, valid_session - assigns(:wiki).should eq(wiki) - end - - it "redirects to the wiki" do - wiki = Wiki.create! valid_attributes - put :update, {:id => wiki.to_param, :wiki => valid_attributes}, valid_session - response.should redirect_to(wiki) - end - end - - describe "with invalid params" do - it "assigns the wiki as @wiki" do - wiki = Wiki.create! valid_attributes - # Trigger the behavior that occurs when invalid params are submitted - Wiki.any_instance.stub(:save).and_return(false) - put :update, {:id => wiki.to_param, :wiki => {}}, valid_session - assigns(:wiki).should eq(wiki) - end - - it "re-renders the 'edit' template" do - wiki = Wiki.create! valid_attributes - # Trigger the behavior that occurs when invalid params are submitted - Wiki.any_instance.stub(:save).and_return(false) - put :update, {:id => wiki.to_param, :wiki => {}}, valid_session - response.should render_template("edit") - end - end - end - - describe "DELETE destroy" do - it "destroys the requested wiki" do - wiki = Wiki.create! valid_attributes - expect { - delete :destroy, {:id => wiki.to_param}, valid_session - }.to change(Wiki, :count).by(-1) - end - - it "redirects to the wikis list" do - wiki = Wiki.create! valid_attributes - delete :destroy, {:id => wiki.to_param}, valid_session - response.should redirect_to(wikis_url) - end - end - -end diff --git a/spec/factories.rb b/spec/factories.rb index 15e54ed2..6d7a4cb7 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -59,3 +59,8 @@ end Factory.add(:web_hook, WebHook) do |obj| obj.url = Faker::Internet.url end + +Factory.add(:wikis, WebHook) do |obj| + obj.title = Faker::Lorem.sentence + obj.content = Faker::Lorem.sentence +end diff --git a/spec/requests/wikis_spec.rb b/spec/requests/wikis_spec.rb new file mode 100644 index 00000000..fd66b5e4 --- /dev/null +++ b/spec/requests/wikis_spec.rb @@ -0,0 +1,35 @@ +require 'spec_helper' + +describe "Wiki" do + let(:project) { Factory :project } + + before do + login_as :user + project.add_access(@user, :read, :write) + end + + describe "Add pages" do + before do + visit project_wiki_path(project, :index) + end + + it "should see form" do + page.should have_content("Editing page") + end + + it "should see added page" do + fill_in "Title", :with => 'Test title' + fill_in "Content", :with => '[link test](test)' + click_on "Save" + + page.should have_content("Test title") + page.should have_content("link test") + + click_link "link test" + + page.should have_content("Editing page") + end + + end + +end diff --git a/spec/views/wikis/edit.html.haml_spec.rb b/spec/views/wikis/edit.html.haml_spec.rb deleted file mode 100644 index 194dfcaf..00000000 --- a/spec/views/wikis/edit.html.haml_spec.rb +++ /dev/null @@ -1,20 +0,0 @@ -require 'spec_helper' - -describe "wikis/edit" do - before(:each) do - @wiki = assign(:wiki, stub_model(Wiki, - :title => "MyString", - :content => "MyText" - )) - end - - it "renders the edit wiki form" do - render - - # Run the generator again with the --webrat flag if you want to use webrat matchers - assert_select "form", :action => wikis_path(@wiki), :method => "post" do - assert_select "input#wiki_title", :name => "wiki[title]" - assert_select "textarea#wiki_content", :name => "wiki[content]" - end - end -end diff --git a/spec/views/wikis/index.html.haml_spec.rb b/spec/views/wikis/index.html.haml_spec.rb deleted file mode 100644 index 753d4a27..00000000 --- a/spec/views/wikis/index.html.haml_spec.rb +++ /dev/null @@ -1,24 +0,0 @@ -require 'spec_helper' - -describe "wikis/index" do - before(:each) do - assign(:wikis, [ - stub_model(Wiki, - :title => "Title", - :content => "MyText" - ), - stub_model(Wiki, - :title => "Title", - :content => "MyText" - ) - ]) - end - - it "renders a list of wikis" do - render - # Run the generator again with the --webrat flag if you want to use webrat matchers - assert_select "tr>td", :text => "Title".to_s, :count => 2 - # Run the generator again with the --webrat flag if you want to use webrat matchers - assert_select "tr>td", :text => "MyText".to_s, :count => 2 - end -end diff --git a/spec/views/wikis/new.html.haml_spec.rb b/spec/views/wikis/new.html.haml_spec.rb deleted file mode 100644 index f167d4a0..00000000 --- a/spec/views/wikis/new.html.haml_spec.rb +++ /dev/null @@ -1,20 +0,0 @@ -require 'spec_helper' - -describe "wikis/new" do - before(:each) do - assign(:wiki, stub_model(Wiki, - :title => "MyString", - :content => "MyText" - ).as_new_record) - end - - it "renders new wiki form" do - render - - # Run the generator again with the --webrat flag if you want to use webrat matchers - assert_select "form", :action => wikis_path, :method => "post" do - assert_select "input#wiki_title", :name => "wiki[title]" - assert_select "textarea#wiki_content", :name => "wiki[content]" - end - end -end diff --git a/spec/views/wikis/show.html.haml_spec.rb b/spec/views/wikis/show.html.haml_spec.rb deleted file mode 100644 index b8144df0..00000000 --- a/spec/views/wikis/show.html.haml_spec.rb +++ /dev/null @@ -1,18 +0,0 @@ -require 'spec_helper' - -describe "wikis/show" do - before(:each) do - @wiki = assign(:wiki, stub_model(Wiki, - :title => "Title", - :content => "MyText" - )) - end - - it "renders attributes in

" do - render - # Run the generator again with the --webrat flag if you want to use webrat matchers - rendered.should match(/Title/) - # Run the generator again with the --webrat flag if you want to use webrat matchers - rendered.should match(/MyText/) - end -end