admin/spec/controllers/gaku/admin/schools/campuses/campuses_controller_spec.rb in gaku-0.1.1 vs admin/spec/controllers/gaku/admin/schools/campuses/campuses_controller_spec.rb in gaku-0.2.0

- old
+ new

@@ -1,8 +1,8 @@ require 'spec_helper_controllers' -describe Gaku::Admin::Schools::CampusesController do +describe Gaku::Admin::CampusesController do let!(:school) { create(:school) } let(:campus) { create(:campus, school_id: school.id) } let(:invalid_campus) { create(:ivalid_campus) } @@ -17,55 +17,25 @@ it { should respond_with 200 } it('assigns @campus') { expect(assigns(:campus)).to eq campus } it('renders the :edit template') { template? :edit } end - describe 'GET #show' do - before { gaku_get :show, id: campus, school_id: school.id } + end - it { should respond_with 200 } - it('assigns @campus') { expect(assigns(:campus)).to eq campus } - it('renders the :show template') { template? :show } - end - - - describe 'PATCH #update' do - context 'with valid attributes' do - before do - gaku_patch :update, id: campus, school_id: school.id, campus: attributes_for(:campus, name: 'test') - end - - it { should respond_with 302 } - it('redirects to :edit view') { redirect_to? "/admin/schools/#{school.id}/campuses/#{campus.id}/edit"} - it('assigns @campus') { expect(assigns(:campus)).to eq campus } - it('sets flash') { flash_updated? } - it "changes campus's attributes" do - campus.reload - expect(campus.name).to eq 'test' - end + context 'js' do + describe 'JS GET #index' do + before do + campus + gaku_js_get :index, school_id: school.id end - context 'with invalid attributes' do - before do - gaku_patch :update, id: campus, school_id: school.id, campus: attributes_for(:campus, name: '') - end - - it { should respond_with 200 } - it('assigns @campus') { expect(assigns(:campus)).to eq campus } - - it "does not change campus's attributes" do - campus.reload - expect(campus.name).not_to eq '' - end - end + it { should respond_with 200 } + it('assigns @campuses') { expect(assigns(:campuses)).to eq [school.master_campus, campus] } + it('renders the :index template') { template? :index } end - end - - context 'js' do - - describe 'JS #new' do + describe 'JS GET #new' do before { gaku_js_get :new, school_id: school.id } it { should respond_with 200 } it('assigns @campus') { expect(assigns(:campus)).to be_a_new(Gaku::Campus) } it('renders the :new template') { template? :new } @@ -111,9 +81,39 @@ end it "doesn't increment @count" do invalid_js_create expect(assigns(:count)).to eq 1 + end + end + end + + describe 'JS PATCH #update' do + context 'with valid attributes' do + before do + gaku_js_patch :update, id: campus, school_id: school.id, campus: attributes_for(:campus, name: 'test') + end + + it { should respond_with 200 } + it('assigns @campus') { expect(assigns(:campus)).to eq campus } + it('sets flash') { flash_updated? } + it "changes campus's attributes" do + campus.reload + expect(campus.name).to eq 'test' + end + end + + context 'with invalid attributes' do + before do + gaku_js_patch :update, id: campus, school_id: school.id, campus: attributes_for(:campus, name: '') + end + + it { should respond_with 200 } + it('assigns @campus') { expect(assigns(:campus)).to eq campus } + + it "does not change campus's attributes" do + campus.reload + expect(campus.name).not_to eq '' end end end describe 'JS DELETE #destroy' do