summaryrefslogtreecommitdiff
path: root/spec/requests/addresses_controller/destroy_addresses_controller_spec.rb
diff options
context:
space:
mode:
authorHombreLaser <sebastian-440@live.com>2023-03-25 00:10:33 -0600
committerHombreLaser <sebastian-440@live.com>2023-03-25 00:10:33 -0600
commit7265af094ed16c36632128bccdcf84a3796c2359 (patch)
tree6d4f49752e0256b7c5ef2fc3e7db917be67db7bf /spec/requests/addresses_controller/destroy_addresses_controller_spec.rb
parent76d44f91efab14dc0eeb84e83a77a85a7bb7fd74 (diff)
Añade specs de addresscontroller
Diffstat (limited to 'spec/requests/addresses_controller/destroy_addresses_controller_spec.rb')
-rw-r--r--spec/requests/addresses_controller/destroy_addresses_controller_spec.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/spec/requests/addresses_controller/destroy_addresses_controller_spec.rb b/spec/requests/addresses_controller/destroy_addresses_controller_spec.rb
new file mode 100644
index 0000000..df43329
--- /dev/null
+++ b/spec/requests/addresses_controller/destroy_addresses_controller_spec.rb
@@ -0,0 +1,35 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe 'DELETE /api/products/product_id', type: :request do
+ let(:user) { create(:user_account, role: 'regular') }
+ let(:token) { jwt(user) }
+ let(:headers) { { 'Authorization' => "Bearer #{token['token']}" } }
+ let(:address) { create(:address) }
+
+ before(:each) do
+ relate_user_and_address(user, address)
+ end
+
+ it_behaves_like 'a DELETE request' do
+ let(:resource) { "/api/account/addresses/#{address.id}" }
+ let(:nonexistent_resource) { "/api/account/addresses/#{SecureRandom.hex(8)}" }
+ end
+
+ context 'when the address belongs to other users' do
+ it "doesn't get deleted" do
+ another_user = create(:user_account, role: 'regular')
+ relate_user_and_address(another_user, address)
+ delete("/api/account/addresses/#{address.id}", headers:)
+ expect(Address.find_by(id: address.id)).to_not be_nil
+ end
+ end
+
+ context "when the address doesn't belong to other users" do
+ it 'gets deleted' do
+ delete("/api/account/addresses/#{address.id}", headers:)
+ expect(Address.find_by(id: address.id)).to be_nil
+ end
+ end
+end