Commit 621bfdb4aa6c5ef2b031f7c4fb7753eb80d7a5b5
1 parent
49d58492
Exists in
master
and in
4 other branches
wiki: rspec
Showing
8 changed files
with
40 additions
and
260 deletions
Show diff stats
db/schema.rb
| ... | ... | @@ -159,20 +159,6 @@ ActiveRecord::Schema.define(:version => 20120219193300) do |
| 159 | 159 | t.datetime "updated_at" |
| 160 | 160 | end |
| 161 | 161 | |
| 162 | - create_table "wiki_pages", :force => true do |t| | |
| 163 | - t.string "slug" | |
| 164 | - t.string "title" | |
| 165 | - t.text "content" | |
| 166 | - t.integer "author_id" | |
| 167 | - t.integer "project_id" | |
| 168 | - t.datetime "created_at" | |
| 169 | - t.datetime "updated_at" | |
| 170 | - end | |
| 171 | - | |
| 172 | - add_index "wiki_pages", ["author_id"], :name => "index_wiki_pages_on_author_id" | |
| 173 | - add_index "wiki_pages", ["project_id"], :name => "index_wiki_pages_on_project_id" | |
| 174 | - add_index "wiki_pages", ["slug"], :name => "index_wiki_pages_on_slug", :unique => true | |
| 175 | - | |
| 176 | 162 | create_table "wikis", :force => true do |t| |
| 177 | 163 | t.string "title" |
| 178 | 164 | t.text "content" | ... | ... |
spec/controllers/wikis_controller_spec.rb
| ... | ... | @@ -1,164 +0,0 @@ |
| 1 | -require 'spec_helper' | |
| 2 | - | |
| 3 | -# This spec was generated by rspec-rails when you ran the scaffold generator. | |
| 4 | -# It demonstrates how one might use RSpec to specify the controller code that | |
| 5 | -# was generated by Rails when you ran the scaffold generator. | |
| 6 | -# | |
| 7 | -# It assumes that the implementation code is generated by the rails scaffold | |
| 8 | -# generator. If you are using any extension libraries to generate different | |
| 9 | -# controller code, this generated spec may or may not pass. | |
| 10 | -# | |
| 11 | -# It only uses APIs available in rails and/or rspec-rails. There are a number | |
| 12 | -# of tools you can use to make these specs even more expressive, but we're | |
| 13 | -# sticking to rails and rspec-rails APIs to keep things simple and stable. | |
| 14 | -# | |
| 15 | -# Compared to earlier versions of this generator, there is very limited use of | |
| 16 | -# stubs and message expectations in this spec. Stubs are only used when there | |
| 17 | -# is no simpler way to get a handle on the object needed for the example. | |
| 18 | -# Message expectations are only used when there is no simpler way to specify | |
| 19 | -# that an instance is receiving a specific message. | |
| 20 | - | |
| 21 | -describe WikisController do | |
| 22 | - | |
| 23 | - # This should return the minimal set of attributes required to create a valid | |
| 24 | - # Wiki. As you add validations to Wiki, be sure to | |
| 25 | - # update the return value of this method accordingly. | |
| 26 | - def valid_attributes | |
| 27 | - {} | |
| 28 | - end | |
| 29 | - | |
| 30 | - # This should return the minimal set of values that should be in the session | |
| 31 | - # in order to pass any filters (e.g. authentication) defined in | |
| 32 | - # WikisController. Be sure to keep this updated too. | |
| 33 | - def valid_session | |
| 34 | - {} | |
| 35 | - end | |
| 36 | - | |
| 37 | - describe "GET index" do | |
| 38 | - it "assigns all wikis as @wikis" do | |
| 39 | - wiki = Wiki.create! valid_attributes | |
| 40 | - get :index, {}, valid_session | |
| 41 | - assigns(:wikis).should eq([wiki]) | |
| 42 | - end | |
| 43 | - end | |
| 44 | - | |
| 45 | - describe "GET show" do | |
| 46 | - it "assigns the requested wiki as @wiki" do | |
| 47 | - wiki = Wiki.create! valid_attributes | |
| 48 | - get :show, {:id => wiki.to_param}, valid_session | |
| 49 | - assigns(:wiki).should eq(wiki) | |
| 50 | - end | |
| 51 | - end | |
| 52 | - | |
| 53 | - describe "GET new" do | |
| 54 | - it "assigns a new wiki as @wiki" do | |
| 55 | - get :new, {}, valid_session | |
| 56 | - assigns(:wiki).should be_a_new(Wiki) | |
| 57 | - end | |
| 58 | - end | |
| 59 | - | |
| 60 | - describe "GET edit" do | |
| 61 | - it "assigns the requested wiki as @wiki" do | |
| 62 | - wiki = Wiki.create! valid_attributes | |
| 63 | - get :edit, {:id => wiki.to_param}, valid_session | |
| 64 | - assigns(:wiki).should eq(wiki) | |
| 65 | - end | |
| 66 | - end | |
| 67 | - | |
| 68 | - describe "POST create" do | |
| 69 | - describe "with valid params" do | |
| 70 | - it "creates a new Wiki" do | |
| 71 | - expect { | |
| 72 | - post :create, {:wiki => valid_attributes}, valid_session | |
| 73 | - }.to change(Wiki, :count).by(1) | |
| 74 | - end | |
| 75 | - | |
| 76 | - it "assigns a newly created wiki as @wiki" do | |
| 77 | - post :create, {:wiki => valid_attributes}, valid_session | |
| 78 | - assigns(:wiki).should be_a(Wiki) | |
| 79 | - assigns(:wiki).should be_persisted | |
| 80 | - end | |
| 81 | - | |
| 82 | - it "redirects to the created wiki" do | |
| 83 | - post :create, {:wiki => valid_attributes}, valid_session | |
| 84 | - response.should redirect_to(Wiki.last) | |
| 85 | - end | |
| 86 | - end | |
| 87 | - | |
| 88 | - describe "with invalid params" do | |
| 89 | - it "assigns a newly created but unsaved wiki as @wiki" do | |
| 90 | - # Trigger the behavior that occurs when invalid params are submitted | |
| 91 | - Wiki.any_instance.stub(:save).and_return(false) | |
| 92 | - post :create, {:wiki => {}}, valid_session | |
| 93 | - assigns(:wiki).should be_a_new(Wiki) | |
| 94 | - end | |
| 95 | - | |
| 96 | - it "re-renders the 'new' template" do | |
| 97 | - # Trigger the behavior that occurs when invalid params are submitted | |
| 98 | - Wiki.any_instance.stub(:save).and_return(false) | |
| 99 | - post :create, {:wiki => {}}, valid_session | |
| 100 | - response.should render_template("new") | |
| 101 | - end | |
| 102 | - end | |
| 103 | - end | |
| 104 | - | |
| 105 | - describe "PUT update" do | |
| 106 | - describe "with valid params" do | |
| 107 | - it "updates the requested wiki" do | |
| 108 | - wiki = Wiki.create! valid_attributes | |
| 109 | - # Assuming there are no other wikis in the database, this | |
| 110 | - # specifies that the Wiki created on the previous line | |
| 111 | - # receives the :update_attributes message with whatever params are | |
| 112 | - # submitted in the request. | |
| 113 | - Wiki.any_instance.should_receive(:update_attributes).with({'these' => 'params'}) | |
| 114 | - put :update, {:id => wiki.to_param, :wiki => {'these' => 'params'}}, valid_session | |
| 115 | - end | |
| 116 | - | |
| 117 | - it "assigns the requested wiki as @wiki" do | |
| 118 | - wiki = Wiki.create! valid_attributes | |
| 119 | - put :update, {:id => wiki.to_param, :wiki => valid_attributes}, valid_session | |
| 120 | - assigns(:wiki).should eq(wiki) | |
| 121 | - end | |
| 122 | - | |
| 123 | - it "redirects to the wiki" do | |
| 124 | - wiki = Wiki.create! valid_attributes | |
| 125 | - put :update, {:id => wiki.to_param, :wiki => valid_attributes}, valid_session | |
| 126 | - response.should redirect_to(wiki) | |
| 127 | - end | |
| 128 | - end | |
| 129 | - | |
| 130 | - describe "with invalid params" do | |
| 131 | - it "assigns the wiki as @wiki" do | |
| 132 | - wiki = Wiki.create! valid_attributes | |
| 133 | - # Trigger the behavior that occurs when invalid params are submitted | |
| 134 | - Wiki.any_instance.stub(:save).and_return(false) | |
| 135 | - put :update, {:id => wiki.to_param, :wiki => {}}, valid_session | |
| 136 | - assigns(:wiki).should eq(wiki) | |
| 137 | - end | |
| 138 | - | |
| 139 | - it "re-renders the 'edit' template" do | |
| 140 | - wiki = Wiki.create! valid_attributes | |
| 141 | - # Trigger the behavior that occurs when invalid params are submitted | |
| 142 | - Wiki.any_instance.stub(:save).and_return(false) | |
| 143 | - put :update, {:id => wiki.to_param, :wiki => {}}, valid_session | |
| 144 | - response.should render_template("edit") | |
| 145 | - end | |
| 146 | - end | |
| 147 | - end | |
| 148 | - | |
| 149 | - describe "DELETE destroy" do | |
| 150 | - it "destroys the requested wiki" do | |
| 151 | - wiki = Wiki.create! valid_attributes | |
| 152 | - expect { | |
| 153 | - delete :destroy, {:id => wiki.to_param}, valid_session | |
| 154 | - }.to change(Wiki, :count).by(-1) | |
| 155 | - end | |
| 156 | - | |
| 157 | - it "redirects to the wikis list" do | |
| 158 | - wiki = Wiki.create! valid_attributes | |
| 159 | - delete :destroy, {:id => wiki.to_param}, valid_session | |
| 160 | - response.should redirect_to(wikis_url) | |
| 161 | - end | |
| 162 | - end | |
| 163 | - | |
| 164 | -end |
spec/factories.rb
| ... | ... | @@ -0,0 +1,35 @@ |
| 1 | +require 'spec_helper' | |
| 2 | + | |
| 3 | +describe "Wiki" do | |
| 4 | + let(:project) { Factory :project } | |
| 5 | + | |
| 6 | + before do | |
| 7 | + login_as :user | |
| 8 | + project.add_access(@user, :read, :write) | |
| 9 | + end | |
| 10 | + | |
| 11 | + describe "Add pages" do | |
| 12 | + before do | |
| 13 | + visit project_wiki_path(project, :index) | |
| 14 | + end | |
| 15 | + | |
| 16 | + it "should see form" do | |
| 17 | + page.should have_content("Editing page") | |
| 18 | + end | |
| 19 | + | |
| 20 | + it "should see added page" do | |
| 21 | + fill_in "Title", :with => 'Test title' | |
| 22 | + fill_in "Content", :with => '[link test](test)' | |
| 23 | + click_on "Save" | |
| 24 | + | |
| 25 | + page.should have_content("Test title") | |
| 26 | + page.should have_content("link test") | |
| 27 | + | |
| 28 | + click_link "link test" | |
| 29 | + | |
| 30 | + page.should have_content("Editing page") | |
| 31 | + end | |
| 32 | + | |
| 33 | + end | |
| 34 | + | |
| 35 | +end | ... | ... |
spec/views/wikis/edit.html.haml_spec.rb
| ... | ... | @@ -1,20 +0,0 @@ |
| 1 | -require 'spec_helper' | |
| 2 | - | |
| 3 | -describe "wikis/edit" do | |
| 4 | - before(:each) do | |
| 5 | - @wiki = assign(:wiki, stub_model(Wiki, | |
| 6 | - :title => "MyString", | |
| 7 | - :content => "MyText" | |
| 8 | - )) | |
| 9 | - end | |
| 10 | - | |
| 11 | - it "renders the edit wiki form" do | |
| 12 | - render | |
| 13 | - | |
| 14 | - # Run the generator again with the --webrat flag if you want to use webrat matchers | |
| 15 | - assert_select "form", :action => wikis_path(@wiki), :method => "post" do | |
| 16 | - assert_select "input#wiki_title", :name => "wiki[title]" | |
| 17 | - assert_select "textarea#wiki_content", :name => "wiki[content]" | |
| 18 | - end | |
| 19 | - end | |
| 20 | -end |
spec/views/wikis/index.html.haml_spec.rb
| ... | ... | @@ -1,24 +0,0 @@ |
| 1 | -require 'spec_helper' | |
| 2 | - | |
| 3 | -describe "wikis/index" do | |
| 4 | - before(:each) do | |
| 5 | - assign(:wikis, [ | |
| 6 | - stub_model(Wiki, | |
| 7 | - :title => "Title", | |
| 8 | - :content => "MyText" | |
| 9 | - ), | |
| 10 | - stub_model(Wiki, | |
| 11 | - :title => "Title", | |
| 12 | - :content => "MyText" | |
| 13 | - ) | |
| 14 | - ]) | |
| 15 | - end | |
| 16 | - | |
| 17 | - it "renders a list of wikis" do | |
| 18 | - render | |
| 19 | - # Run the generator again with the --webrat flag if you want to use webrat matchers | |
| 20 | - assert_select "tr>td", :text => "Title".to_s, :count => 2 | |
| 21 | - # Run the generator again with the --webrat flag if you want to use webrat matchers | |
| 22 | - assert_select "tr>td", :text => "MyText".to_s, :count => 2 | |
| 23 | - end | |
| 24 | -end |
spec/views/wikis/new.html.haml_spec.rb
| ... | ... | @@ -1,20 +0,0 @@ |
| 1 | -require 'spec_helper' | |
| 2 | - | |
| 3 | -describe "wikis/new" do | |
| 4 | - before(:each) do | |
| 5 | - assign(:wiki, stub_model(Wiki, | |
| 6 | - :title => "MyString", | |
| 7 | - :content => "MyText" | |
| 8 | - ).as_new_record) | |
| 9 | - end | |
| 10 | - | |
| 11 | - it "renders new wiki form" do | |
| 12 | - render | |
| 13 | - | |
| 14 | - # Run the generator again with the --webrat flag if you want to use webrat matchers | |
| 15 | - assert_select "form", :action => wikis_path, :method => "post" do | |
| 16 | - assert_select "input#wiki_title", :name => "wiki[title]" | |
| 17 | - assert_select "textarea#wiki_content", :name => "wiki[content]" | |
| 18 | - end | |
| 19 | - end | |
| 20 | -end |
spec/views/wikis/show.html.haml_spec.rb
| ... | ... | @@ -1,18 +0,0 @@ |
| 1 | -require 'spec_helper' | |
| 2 | - | |
| 3 | -describe "wikis/show" do | |
| 4 | - before(:each) do | |
| 5 | - @wiki = assign(:wiki, stub_model(Wiki, | |
| 6 | - :title => "Title", | |
| 7 | - :content => "MyText" | |
| 8 | - )) | |
| 9 | - end | |
| 10 | - | |
| 11 | - it "renders attributes in <p>" do | |
| 12 | - render | |
| 13 | - # Run the generator again with the --webrat flag if you want to use webrat matchers | |
| 14 | - rendered.should match(/Title/) | |
| 15 | - # Run the generator again with the --webrat flag if you want to use webrat matchers | |
| 16 | - rendered.should match(/MyText/) | |
| 17 | - end | |
| 18 | -end |