Products controller test
This commit is contained in:
parent
71659e246d
commit
e8f4fe6849
|
@ -1,17 +1,40 @@
|
||||||
|
# from_barcode_products POST /products/barcode(.:format) products#from_barcode
|
||||||
|
# products GET /products(.:format) products#index
|
||||||
|
# POST /products(.:format) products#create
|
||||||
|
# new_product GET /products/new(.:format) products#new
|
||||||
|
# edit_product GET /products/:id/edit(.:format) products#edit
|
||||||
|
# product PATCH /products/:id(.:format) products#update
|
||||||
|
# PUT /products/:id(.:format) products#update
|
||||||
|
#
|
||||||
|
|
||||||
describe ProductsController, type: :controller do
|
describe ProductsController, type: :controller do
|
||||||
before :each do
|
before :each do
|
||||||
@admin = create :admin
|
@admin = create :admin
|
||||||
sign_in @admin
|
sign_in @admin
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#########
|
||||||
|
# NEW #
|
||||||
|
#########
|
||||||
|
|
||||||
describe 'GET new' do
|
describe 'GET new' do
|
||||||
it 'should render the form' do
|
it 'should render the form' do
|
||||||
get :new
|
get :new
|
||||||
expect(response).to render_template(:new)
|
expect(response).to render_template(:new)
|
||||||
expect(response).to have_http_status(200)
|
expect(response).to have_http_status(200)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'should initialize a new product' do
|
||||||
|
get :new
|
||||||
|
expect(assigns(:product).class).to eq(Product)
|
||||||
|
expect(assigns(:product)).to_not be_persisted
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
##########
|
||||||
|
# POST #
|
||||||
|
##########
|
||||||
|
|
||||||
describe 'POST create' do
|
describe 'POST create' do
|
||||||
context 'successfull' do
|
context 'successfull' do
|
||||||
it 'should create a product' do
|
it 'should create a product' do
|
||||||
|
@ -40,6 +63,10 @@ describe ProductsController, type: :controller do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
###########
|
||||||
|
# INDEX #
|
||||||
|
###########
|
||||||
|
|
||||||
describe 'GET index' do
|
describe 'GET index' do
|
||||||
it 'should load all the products' do
|
it 'should load all the products' do
|
||||||
product = create :product
|
product = create :product
|
||||||
|
@ -48,6 +75,10 @@ describe ProductsController, type: :controller do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
##########
|
||||||
|
# EDIT #
|
||||||
|
##########
|
||||||
|
|
||||||
describe 'GET edit' do
|
describe 'GET edit' do
|
||||||
before :each do
|
before :each do
|
||||||
@product = create :product
|
@product = create :product
|
||||||
|
@ -65,6 +96,10 @@ describe ProductsController, type: :controller do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
############
|
||||||
|
# UPDATE #
|
||||||
|
############
|
||||||
|
|
||||||
describe 'PUT update' do
|
describe 'PUT update' do
|
||||||
before :each do
|
before :each do
|
||||||
@product = create :product
|
@product = create :product
|
||||||
|
@ -75,12 +110,31 @@ describe ProductsController, type: :controller do
|
||||||
expect(assigns :product).to eq(@product)
|
expect(assigns :product).to eq(@product)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'successful' do
|
||||||
|
it 'should update attributes' do
|
||||||
|
put :update, id: @product, product: { name: "new_product_name" }
|
||||||
|
expect(@product.reload.name).to eq("new_product_name")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context 'failed' do
|
context 'failed' do
|
||||||
it 'should not update attributes' do
|
it 'should not update attributes' do
|
||||||
old_attributes = @product.reload.attributes
|
old_attributes = @product.attributes
|
||||||
put :update, id: @product, product: attributes_for(:invalid_product)
|
put :update, id: @product, product: attributes_for(:invalid_product)
|
||||||
expect(@product.reload.attributes).to eq(old_attributes)
|
expect(@product.reload.attributes).to eq(old_attributes)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
##################
|
||||||
|
# FROM_BARCODE #
|
||||||
|
##################
|
||||||
|
|
||||||
|
describe 'POST from_barcode' do
|
||||||
|
it 'should return a product when barcode in database' do
|
||||||
|
product = create :product
|
||||||
|
post :from_barcode, barcode: product.barcode
|
||||||
|
expect(JSON.parse(response.body)["id"]).to eq(product.id)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue