require 'spec_helper' describe OrdersController, ':' do Order.delete_all Order.create :name => 'name', :qty => 123 let(:order) {Order.all.first} %w{index new}.each do |action| describe "#{action}" do it "renders the '#{action}' template" do get action.to_sym expect(response.code).to eq('200') expect(response).to render_template("rows/#{action}") expect(response.body).to eq('') end end end %w{edit show}.each do |action| describe "#{action}" do it "renders the '#{action}' template" do get action.to_sym, :id => order.id expect(response.code).to eq('200') expect(response).to render_template("rows/#{action}") expect(response.body).to eq('') end end end it 'checking resource' do get :show, :id => order.id expect(subject.send(:resource)).to eq(order) expect(assigns(:order)).to eq(order) expect(assigns(:row)).to eq(order) end it 'checking resources' do get :index expect(subject.send(:resources).to_a).to be_a_kind_of(Array) expect(assigns(:orders).to_a).to be_a_kind_of(Array) expect(assigns(:orders)).to eq(Order.all) expect(assigns(:rows)).to eq(Order.all) end it 'checking model_class' do get :show, :id => order.id expect(subject.send(:model_class)).to eq(Order) expect(subject.send(:model_name)).to eq('Order') expect(subject.send(:model_symbol)).to eq('order') expect(subject.send(:model_symbol_plural)).to eq('orders') end it 'should update' do put :update, { id: order.id, order: {name: 'name'} } expect(response).to be_truthy expect(response).to redirect_to(action: :edit) end it 'should update #2' do put :update, { id: order.id, commit: 'OK', order: {name: 'name'} } expect(response).to be_truthy expect(response).to redirect_to(action: :index) end it 'should not update' do put :update, { id: order.id, order: {name: 'error'} } expect(response).to be_success expect(response).to render_template('rows/edit') end it 'should not create' do post :create, { id: order.id, order: {name: 'error'} } expect(response).to be_success expect(response).to render_template('rows/new') end end class CategoriesController < RowsController model_class Order end describe CategoriesController do it 'checking model_class' do get :index expect(subject.send(:model_class)).to eq(Order) expect(subject.send(:model_name)).to eq('Order') expect(subject.send(:model_symbol)).to eq('order') expect(subject.send(:model_symbol_plural)).to eq('orders') end end