summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/controllers/products_controller_spec.rb13
-rw-r--r--spec/factories/product.rb18
2 files changed, 31 insertions, 0 deletions
diff --git a/spec/controllers/products_controller_spec.rb b/spec/controllers/products_controller_spec.rb
new file mode 100644
index 0000000..d4f1373
--- /dev/null
+++ b/spec/controllers/products_controller_spec.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Api::ProductsController, type: :controller do
+ let(:product) { create(:product) }
+
+ it { should route(:post, '/api/products').to(action: :create) }
+ it { should route(:put, "/api/products#{product.public_id}").to(action: :update, id: product.public_id) }
+ it { should route(:get, '/api/products').to(action: :index) }
+ it { should route(:get, "/api/products/#{product.public_id}").to(action: :show, id: product.public_id) }
+ it { should route(:delete, "/api/products/#{product.public_id}").to(action: :destroy, id: product.public_id) }
+end
diff --git a/spec/factories/product.rb b/spec/factories/product.rb
new file mode 100644
index 0000000..ab65cd0
--- /dev/null
+++ b/spec/factories/product.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+FactoryBot.define do
+ factory :company, class: 'Company' do
+ name { Faker::Commerce.product_name }
+ unitary_price { rand(1000.0) }
+ bulk_price { rand(1000.0) }
+ available_quantity { rand(1000) }
+ company { create(:company) }
+ categories do
+ c = []
+ (0..rand(5)).each do
+ c.push(Faker::Commerce.department(max: 1))
+ end
+ c
+ end
+ end
+end