09 Jul Testing with rspec a create method in Controller which uses Devise and respond_with json format
This is the controller and the method create wich repond_with json format:
The file located in app/controller/invoices_controller.rb
# coding: utf-8
class InvoicesController < ApplicationController
before_filter :authenticate_user!
respond_to :json
def create
respond_with current_user.invoices.create(params[:invoice])
end
end
And the rspec test located in spec/controllers/invoices_controller_spec.rb
# coding: utf-8
require 'spec_helper'
describe InvoicesController do
let(:current_user)do
FactoryGirl.create(:user)
end
before do
controller.should_receive(:authenticate_user!)
controller.stub(:current_user).and_return current_user
end
describe '#create' do
context 'when an invoice is created' do
let(:invoice_params) do
{
tipo_comprobante: 'Factura',
total: 3400.00,
subtotal: 500.50,
folio: 333,
address_id: 1,
fecha_emision: '13/06/2013',
partner_id: 1
}
end
it 'successfully' do
post :create, { invoice: invoice_params, format: :json }
expect(response).to be_success
expect(JSON(response.body)['tipo_comprobante']).to eq('Factura')
end
end
end
end
No Comments