mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-02-01 05:01:04 -05:00
84 lines
3.1 KiB
Ruby
84 lines
3.1 KiB
Ruby
## DEPRECATION NOTICE: Do not add new tests to this file!
|
|
##
|
|
## View and controller tests are deprecated in the Growstuff project.
|
|
## We no longer write new view and controller tests, but instead write
|
|
## feature tests (in spec/features) using Capybara (https://github.com/jnicklas/capybara).
|
|
## These test the full stack, behaving as a browser, and require less complicated setup
|
|
## to run. Please feel free to delete old view/controller tests as they are reimplemented
|
|
## in feature tests.
|
|
##
|
|
## If you submit a pull request containing new view or controller tests, it will not be
|
|
## merged.
|
|
|
|
require 'rails_helper'
|
|
|
|
RSpec.describe GardensController, type: :controller do
|
|
include Devise::Test::ControllerHelpers
|
|
let(:valid_params) { { name: 'My second Garden' } }
|
|
|
|
context "when not signed in" do
|
|
let(:garden) { double('garden') }
|
|
describe 'GET new' do
|
|
before { get :new, id: garden.to_param }
|
|
it { expect(response).to redirect_to(new_member_session_path) }
|
|
end
|
|
describe 'PUT create' do
|
|
before { put :create, garden: valid_params }
|
|
it { expect(response).to redirect_to(new_member_session_path) }
|
|
end
|
|
|
|
describe 'changing existing records' do
|
|
before do
|
|
allow(Garden).to receive(:find).and_return(:garden)
|
|
expect(garden).not_to receive(:save)
|
|
expect(garden).not_to receive(:save!)
|
|
expect(garden).not_to receive(:update)
|
|
expect(garden).not_to receive(:update!)
|
|
expect(garden).not_to receive(:destroy)
|
|
end
|
|
describe 'GET edit' do
|
|
before { get :edit, id: garden.to_param }
|
|
it { expect(response).to redirect_to(new_member_session_path) }
|
|
end
|
|
describe 'POST update' do
|
|
before { post :update, id: garden.to_param, garden: valid_params }
|
|
it { expect(response).to redirect_to(new_member_session_path) }
|
|
end
|
|
describe 'DELETE' do
|
|
before { delete :destroy, id: garden.to_param, params: { garden: valid_params } }
|
|
it { expect(response).to redirect_to(new_member_session_path) }
|
|
end
|
|
end
|
|
end
|
|
context "when signed in" do
|
|
before(:each) { sign_in member }
|
|
|
|
let!(:member) { FactoryGirl.create(:member) }
|
|
|
|
describe "for another member's garden" do
|
|
let(:not_my_garden) { double('garden') }
|
|
before do
|
|
expect(Garden).to receive(:find).and_return(:not_my_garden)
|
|
expect(not_my_garden).not_to receive(:save)
|
|
expect(not_my_garden).not_to receive(:save!)
|
|
expect(not_my_garden).not_to receive(:update)
|
|
expect(not_my_garden).not_to receive(:update!)
|
|
expect(not_my_garden).not_to receive(:destroy)
|
|
end
|
|
|
|
describe 'GET edit' do
|
|
before { get :edit, id: not_my_garden.to_param }
|
|
it { expect(response).to redirect_to(root_path) }
|
|
end
|
|
describe 'POST update' do
|
|
before { post :update, id: not_my_garden.to_param, garden: valid_params }
|
|
it { expect(response).to redirect_to(root_path) }
|
|
end
|
|
describe 'DELETE' do
|
|
before { delete :destroy, id: not_my_garden.to_param, params: { garden: valid_params } }
|
|
it { expect(response).to redirect_to(root_path) }
|
|
end
|
|
end
|
|
end
|
|
end
|