mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-26 20:56:48 +00:00
Inspecting 1479 files
...................................................................................................................................................C..C.......................................................................................................C.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................C.....C..................C.............................................................................................C...................................................................C.......................................................................................................................................................................C....................................................C.............C...........CC.........C......C.CC.C....................C........................................................
Offenses:
app/controllers/spree/users_controller.rb:36:37: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
partial("layouts/alert",
^
app/controllers/spree/users_controller.rb:51:35: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
partial("layouts/alert",
^
app/controllers/user_confirmations_controller.rb:27:33: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
partial("layouts/alert",
^
app/models/enterprise.rb:117:24: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
validates :instagram,
^
spec/controllers/spree/credit_cards_controller_spec.rb:250:64: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
create(:stored_credit_card, user_id: user.id,
^
spec/controllers/user_confirmations_controller_spec.rb:45:44: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
session[:confirmation_return_url] =
^
spec/factories/order_factory.rb:40:67: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
order.payments << build(:payment, amount: order.total,
^
spec/lib/reports/packing/packing_report_spec.rb:59:40: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
build(:line_item_with_shipment,
^
spec/lib/reports/packing/packing_report_spec.rb:63:40: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
build(:line_item_with_shipment,
^
spec/models/enterprise_spec.rb:521:67: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
expect(Enterprise.supplying_variant_in([p1.variants.first,
^
spec/models/enterprise_spec.rb:906:77: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
create(:enterprise_relationship, parent: distributor, child: supplier,
^
spec/services/products_renderer_spec.rb:22:73: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
create(:product, name: "banana bread", primary_taxon_id: cakes.id,
^
spec/services/products_renderer_spec.rb:88:88: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
product_apples.product_properties.create!({ property_id: property_organic.id,
^
spec/services/products_renderer_spec.rb:90:87: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
products_renderer = ProductsRenderer.new(distributor, order_cycle, customer,
^
spec/services/products_renderer_spec.rb:97:90: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
fruits_supplier.producer_properties.create!({ property_id: property_organic.id,
^
spec/services/products_renderer_spec.rb:99:87: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
products_renderer = ProductsRenderer.new(distributor, order_cycle, customer,
^
spec/services/products_renderer_spec.rb:109:93: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
product_apples.product_properties.create!({ property_id: property_conventional.id,
^
spec/services/products_renderer_spec.rb:111:94: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
product_banana_bread.product_properties.create!({ property_id: property_organic.id,
^
spec/services/products_renderer_spec.rb:113:90: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
product_cherries.product_properties.create!({ property_id: property_organic.id,
^
spec/services/products_renderer_spec.rb:115:91: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
product_doughnuts.product_properties.create!({ property_id: property_organic.id,
^
spec/services/products_renderer_spec.rb:117:87: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
products_renderer = ProductsRenderer.new(distributor, order_cycle, customer,
^
spec/support/request/stripe_stubs.rb:17:81: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
def stub_payment_intent_get_request(response: {}, stripe_account_header: true,
^
spec/support/request/stripe_stubs.rb:172:6: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
{
^
spec/support/request/stripe_stubs.rb:175:24: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
object: "list",
^
spec/support/request/stripe_stubs.rb:176:25: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
has_more: false,
^
spec/system/admin/bulk_order_management_spec.rb:792:99: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
it "displays only line items whose orders meet the date restriction criteria, when changed",
^
spec/system/admin/bulk_order_management_spec.rb:1071:1: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
spec/system/admin/bulk_order_management_spec.rb:1121:82: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
shared_examples "display only group by information for selected variant" do
^^^^^^^^^^
spec/system/admin/bulk_order_management_spec.rb:1143:1: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
spec/system/admin/bulk_order_management_spec.rb:1166:12: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
end
^
spec/system/admin/customers_spec.rb:18:98: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
create(:customer, first_name: 'John', last_name: 'Doe', enterprise: managed_distributor1,
^
spec/system/admin/enterprise_fees_spec.rb:102:37: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
select 'Inherit From Product',
^
spec/system/admin/enterprise_fees_spec.rb:128:38: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
select 'Weight (per kg or lb)',
^
spec/system/admin/enterprise_fees_spec.rb:132:37: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
select 'Flat Rate (per item)',
^
spec/system/admin/enterprise_fees_spec.rb:153:1: C: [Corrected] Layout/EmptyLinesAroundBlockBody: Extra empty line detected at block body beginning.
spec/system/admin/enterprise_fees_spec.rb:153:1: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
spec/system/admin/enterprise_fees_spec.rb:157:1: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
spec/system/admin/enterprise_fees_spec.rb:159:38: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
select 'Flat Rate (per order)',
^
spec/system/admin/enterprise_fees_spec.rb:222:1: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
spec/system/admin/flatpickr_spec.rb:22:1: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
spec/system/admin/flatpickr_spec.rb:27:32: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
find("#admin-menu").click
^^^^^^^
spec/system/admin/flatpickr_spec.rb:32:1: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
spec/system/admin/flatpickr_spec.rb:34:1: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
spec/system/admin/flatpickr_spec.rb:41:1: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
spec/system/admin/order_cycles/complex_editing_spec.rb:74:33: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
expect(page).to have_select(
^
spec/system/admin/order_cycles/complex_editing_spec.rb:110:33: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
expect(page).to have_select(
^
spec/system/admin/order_cycles/list_spec.rb:147:46: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
expect(find('input.datetimepicker',
^
spec/system/admin/order_cycles/list_spec.rb:160:46: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
expect(find('input.datetimepicker',
^
spec/system/admin/order_cycles/list_spec.rb:188:46: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
expect(find('input.datetimepicker',
^
spec/system/admin/order_cycles/simple_spec.rb:447:43: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
expect(page).not_to have_selector(
^
spec/system/admin/order_spec.rb:92:1: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
spec/system/admin/order_spec.rb:207:30: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
within(".modal") do
^
spec/system/admin/order_spec.rb:235:21: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
login_as_admin
^^
spec/system/admin/order_spec.rb:240:16: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
before do
^
spec/system/admin/order_spec.rb:247:62: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
context "when using the cancel option in the dropdown" do
^^
spec/system/admin/order_spec.rb:248:16: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
before do
^
spec/system/admin/order_spec.rb:299:53: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
expect(page).to have_content "Are you sure?"
^^^^^^^^
spec/system/admin/order_spec.rb:327:36: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
find("a.delete-item").click
^
spec/system/admin/order_spec.rb:401:1: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
spec/system/admin/order_spec.rb:405:1: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
spec/system/admin/order_spec.rb:598:59: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
expect(page).to have_link "Resend Confirmation",
^
spec/system/admin/order_spec.rb:617:52: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
expect(page).to have_link "Cancel Order",
^
spec/system/admin/order_spec.rb:633:1: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
spec/system/admin/order_spec.rb:635:1: C: [Corrected] Layout/EmptyLinesAroundBlockBody: Extra empty line detected at block body beginning.
spec/system/admin/order_spec.rb:635:1: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
spec/system/admin/order_spec.rb:674:1: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
spec/system/admin/order_spec.rb:735:35: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
within "#order-total" do
^
spec/system/admin/order_spec.rb:762:39: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
within "#order-total" do
^
spec/system/admin/order_spec.rb:778:41: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
within "#order-total" do
^
spec/system/admin/order_spec.rb:780:20: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
end
^^
spec/system/admin/order_spec.rb:796:39: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
within "#order-total" do
^
spec/system/admin/order_spec.rb:807:88: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
# Since the order is completed, the price is not supposed to be updated
^
spec/system/admin/order_spec.rb:813:41: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
within "#order-total" do
^
spec/system/admin/order_spec.rb:815:20: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
end
^^
spec/system/admin/order_spec.rb:924:1: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
spec/system/admin/order_spec.rb:959:1: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
spec/system/admin/order_spec.rb:981:16: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
before do
^^
spec/system/admin/order_spec.rb:992:8: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
end
^^
spec/system/admin/order_spec.rb:1002:1: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
spec/system/admin/shipping_methods_spec.rb:50:1: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
spec/system/admin/shipping_methods_spec.rb:92:1: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
1479 files inspected, 81 offenses detected, 81 offenses corrected
266 lines
9.6 KiB
Ruby
266 lines
9.6 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
describe Spree::CreditCardsController, type: :controller do
|
|
describe "using VCR", :vcr do
|
|
let(:user) { create(:user) }
|
|
let(:secret) { ENV['STRIPE_SECRET_TEST_API_KEY'] }
|
|
|
|
before do
|
|
Stripe.api_key = secret
|
|
allow(controller).to receive(:spree_current_user) { user }
|
|
end
|
|
|
|
describe "#new_from_token" do
|
|
let!(:token) do
|
|
Stripe::Token.create({
|
|
card: {
|
|
number: '4242424242424242',
|
|
exp_month: 9,
|
|
exp_year: 2024,
|
|
cvc: '314',
|
|
},
|
|
})
|
|
end
|
|
context "when the request to store the customer/card with Stripe is successful" do
|
|
let(:params) do
|
|
{
|
|
format: :json,
|
|
exp_month: 9,
|
|
exp_year: 2024,
|
|
last4: 4242,
|
|
token: token['id'],
|
|
cc_type: "visa"
|
|
}
|
|
end
|
|
|
|
before do
|
|
# there should be no cards stored locally
|
|
expect(Spree::CreditCard.count).to eq(0)
|
|
end
|
|
|
|
it "saves the card locally" do
|
|
spree_post :new_from_token, params
|
|
|
|
# checks whether a card was created
|
|
expect(Spree::CreditCard.count).to eq(1)
|
|
card = Spree::CreditCard.last
|
|
|
|
# retrieves the created card from Stripe
|
|
stripe_card = Stripe::Customer.list_sources(
|
|
card.gateway_customer_profile_id,
|
|
{ object: 'card', limit: 1 },
|
|
)
|
|
|
|
payment_profile = stripe_card['data'][0]['id']
|
|
customer_profile = stripe_card['data'][0]['customer']
|
|
|
|
expect(card.gateway_payment_profile_id).to eq payment_profile
|
|
expect(card.gateway_customer_profile_id).to eq customer_profile
|
|
expect(card.user_id).to eq user.id
|
|
expect(card.last_digits).to eq "4242"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "not using VCR" do
|
|
let(:user) { create(:user) }
|
|
let(:token) { "tok_234bd2c22" }
|
|
|
|
before do
|
|
Stripe.api_key = "sk_test_12345"
|
|
allow(controller).to receive(:spree_current_user) { user }
|
|
end
|
|
describe "#new_from_token" do
|
|
let(:params) do
|
|
{
|
|
format: :json,
|
|
exp_month: 12,
|
|
exp_year: Time.now.year.next,
|
|
last4: 4242,
|
|
token: token,
|
|
cc_type: "visa"
|
|
}
|
|
end
|
|
|
|
before do
|
|
stub_request(:post, "https://api.stripe.com/v1/customers")
|
|
.with(body: { email: user.email, source: token })
|
|
.to_return(response_mock)
|
|
end
|
|
|
|
context "when the request to store the customer/card with Stripe fails" do
|
|
let(:response_mock) {
|
|
{ status: 402, body: JSON.generate(error: { message: "Bup-bow..." }) }
|
|
}
|
|
it "doesn't save the card locally, and renders a flash error" do
|
|
expect{ spree_post :new_from_token, params }.to_not change(Spree::CreditCard, :count)
|
|
|
|
json_response = JSON.parse(response.body)
|
|
flash_message = "There was a problem with your payment information: %s" % 'Bup-bow...'
|
|
expect(json_response["flash"]["error"]).to eq flash_message
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "#update card to be the default card" do
|
|
let(:params) { { format: :json, credit_card: { is_default: true } } }
|
|
context "when the specified credit card is not found" do
|
|
before { params[:id] = 123 }
|
|
|
|
it "renders a flash error" do
|
|
spree_put :update, params
|
|
json_response = JSON.parse(response.body)
|
|
expect(json_response['flash']['error']).to eq 'Card could not be updated'
|
|
end
|
|
end
|
|
|
|
context "when the specified credit card is found" do
|
|
let!(:card) { create(:credit_card, gateway_customer_profile_id: 'cus_AZNMJ') }
|
|
before { params[:id] = card.id }
|
|
|
|
context "but the card is not owned by the user" do
|
|
it "redirects to unauthorized" do
|
|
spree_put :update, params
|
|
expect(response).to redirect_to unauthorized_path
|
|
end
|
|
end
|
|
|
|
context "and the card is owned by the user" do
|
|
before { card.update_attribute(:user_id, user.id) }
|
|
|
|
context "when the update completes successfully" do
|
|
it "renders a serialized copy of the updated card" do
|
|
expect{ spree_put :update, params }.to change { card.reload.is_default }.to(true)
|
|
json_response = JSON.parse(response.body)
|
|
expect(json_response['id']).to eq card.id
|
|
expect(json_response['is_default']).to eq true
|
|
end
|
|
end
|
|
|
|
context "when the update fails" do
|
|
before { params[:credit_card][:month] = 'some illegal month' }
|
|
it "renders an error" do
|
|
spree_put :update, params
|
|
json_response = JSON.parse(response.body)
|
|
expect(json_response['flash']['error']).to eq 'Card could not be updated'
|
|
end
|
|
end
|
|
|
|
context "and there are existing authorizations for the user" do
|
|
let!(:customer1) { create(:customer, allow_charges: true) }
|
|
let!(:customer2) { create(:customer, allow_charges: true) }
|
|
|
|
it "removes the authorizations" do
|
|
customer1.user = card.user
|
|
customer2.user = card.user
|
|
customer1.save
|
|
customer2.save
|
|
expect(customer1.reload.allow_charges).to be true
|
|
expect(customer2.reload.allow_charges).to be true
|
|
spree_put :update, params
|
|
expect(customer1.reload.allow_charges).to be false
|
|
expect(customer2.reload.allow_charges).to be false
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "#destroy" do
|
|
context "when the specified credit card is not found" do
|
|
let(:params) { { id: 123 } }
|
|
|
|
it "redirects to /account with a flash error, does not request deletion with Stripe" do
|
|
expect(controller).to_not receive(:destroy_at_stripe)
|
|
spree_delete :destroy, params
|
|
expect(flash[:error]).to eq 'Sorry, the card could not be removed'
|
|
expect(response.status).to eq 200
|
|
end
|
|
end
|
|
|
|
context "when the specified credit card is found" do
|
|
let!(:card) { create(:credit_card, gateway_customer_profile_id: 'cus_AZNMJ') }
|
|
let(:params) { { id: card.id } }
|
|
|
|
context "but the card is not owned by the user" do
|
|
it "redirects to unauthorized" do
|
|
spree_delete :destroy, params
|
|
expect(response).to redirect_to unauthorized_path
|
|
end
|
|
end
|
|
|
|
context "and the card is owned by the user" do
|
|
before do
|
|
card.update_attribute(:user_id, user.id)
|
|
|
|
stub_request(:get, "https://api.stripe.com/v1/customers/cus_AZNMJ").
|
|
to_return(status: 200, body: JSON.generate(id: "cus_AZNMJ"))
|
|
end
|
|
|
|
context "where the request to destroy the Stripe customer fails" do
|
|
before do
|
|
stub_request(:delete, "https://api.stripe.com/v1/customers/cus_AZNMJ").
|
|
to_return(status: 402, body: JSON.generate(error: { message: 'Bup-bow!' }))
|
|
end
|
|
|
|
it "doesn't delete the card" do
|
|
expect{ spree_delete :destroy, params }.to_not change(Spree::CreditCard, :count)
|
|
expect(flash[:error]).to eq 'Sorry, the card could not be removed'
|
|
expect(response.status).to eq 422
|
|
end
|
|
end
|
|
|
|
context "where the request to destroy the Stripe customer succeeds" do
|
|
before do
|
|
stub_request(:delete, "https://api.stripe.com/v1/customers/cus_AZNMJ").
|
|
to_return(status: 200, body: JSON.generate(deleted: true, id: "cus_AZNMJ"))
|
|
end
|
|
|
|
it "deletes the card and redirects to account_path" do
|
|
expect{ spree_delete :destroy, params }.to change(Spree::CreditCard, :count).by(-1)
|
|
expect(flash[:success])
|
|
.to eq "Your card has been removed (number: %s)" % "x-#{card.last_digits}"
|
|
expect(response.status).to eq 200
|
|
end
|
|
|
|
context "card is the default card and there are existing authorizations for the user" do
|
|
before do
|
|
card.update_attribute(:is_default, true)
|
|
end
|
|
let!(:customer1) { create(:customer, allow_charges: true) }
|
|
let!(:customer2) { create(:customer, allow_charges: true) }
|
|
|
|
it "removes the authorizations" do
|
|
customer1.user = card.user
|
|
customer2.user = card.user
|
|
customer1.save
|
|
customer2.save
|
|
expect(customer1.reload.allow_charges).to be true
|
|
expect(customer2.reload.allow_charges).to be true
|
|
spree_delete :destroy, params
|
|
expect(customer1.reload.allow_charges).to be false
|
|
expect(customer2.reload.allow_charges).to be false
|
|
end
|
|
|
|
context "when has any other saved cards" do
|
|
let!(:second_card) {
|
|
create(:stored_credit_card, user_id: user.id,
|
|
gateway_customer_profile_id: 'cus_AZNMJ')
|
|
}
|
|
|
|
it "should assign the second one as the default one" do
|
|
spree_delete :destroy, params
|
|
expect(Spree::CreditCard.find_by(id: second_card.id).is_default).to eq true
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|