Commit Graph

51 Commits

Author SHA1 Message Date
filipefurtad0
0e85811cab Adds test for valid_email2 email validation 2021-07-19 18:26:52 +01:00
Luis Ramos
23627c5453 Run rubocop -a (safe corrections) removing all exceptions so all possible fixes are applied
9290 issues fixed
2021-06-17 22:19:26 +01:00
Pau Perez
5bca7d1f8f Remove the old balance's code branch
This keeps the `OrderBalance` abstraction but removes the old code now
that the feature is enabled for all users in all instances and there are
no bugs reported. It's become dead code.
2021-04-19 11:52:41 +02:00
Pau Perez
f494b720f8 Fix spec 2021-03-22 11:45:12 +01:00
Pau Perez
e703113c08 Fix typo in test wording 2021-02-11 10:29:56 +01:00
filipefurtad0
33f7335c02 splitted testcases into different context blocks 2021-02-11 10:29:56 +01:00
filipefurtad0
82b93fc757 declared relevant variables with let! 2021-02-11 10:29:56 +01:00
filipefurtad0
3160d723b0 checks whether second payment was added correctly to the order 2021-02-11 10:29:56 +01:00
filipefurtad0
467b9e71a2 adds additional test case, in which a negative payment is added to an order 2021-02-11 10:29:56 +01:00
filipefurtad0
c722e1c082 declares variables for orders using let; prepares additional test cases 2021-02-11 10:29:56 +01:00
Pau Perez
398467e7ed Hide new balance impl. under feature toggle
This makes it possible to deploy it without releasing it to users since
the toggle is not enabled for anyone.

It aims to make the balance calculation consistent across pages.
2021-01-11 15:50:19 +01:00
Pau Perez
46d997406a Filter out cart orders when fetching customers
We only care about non-cart orders and skipping carts, saves PostgreSQL
query planner to go through thousands of records in production use cases
(my food hub).

We go from

```sql
 ->  Index Scan using index_spree_orders_on_customer_id on spree_orders  (cost=0.42..12049.45 rows=152002 width=15) (actual time=0.015..11.703 rows=13867 loops=1)
```

to

```sql
->  Index Scan using index_spree_orders_on_customer_id on spree_orders  (cost=0.42..12429.46 rows=10802 width=15) (actual time=0.025..17.705 rows=9954 loops=1)
```
2021-01-11 15:50:19 +01:00
Pau Perez
96a91969c9 Extract balance-specific serializer
So we only show the customer balance where really needed. Aggregating
the balance can be costly. Also, we avoid defensive coding.
2021-01-11 15:50:19 +01:00
Pau Perez
d62ab06504 Refactor DB query to aggregate customer balance
It's simpler and many orders of magnitude more efficient to ask the DB
to aggregate the customer balance based on their orders. It removes
a nasty N+1.

The resulting SQL query is:

```sql
SELECT customers.*, SUM(spree_orders.total - spree_orders.payment_total) AS balance
FROM "customers"
INNER JOIN "spree_orders"
    ON "spree_orders"."customer_id" = "customers"."id"
WHERE "customers"."enterprise_id" = 1
    AND (completed_at IS NOT NULL)
    AND (state != 'canceled')
GROUP BY customers.id
ORDER BY email;
```
2021-01-11 15:50:19 +01:00
Luis Ramos
2b8f0abe49 Try some mass auto-correct adding frozen-string-literal to all specs 2020-12-03 06:38:24 -08:00
Luis Ramos
0138f04506 Add spec to cover new customer balances on customers list 2020-10-29 13:38:36 +00:00
Luis Ramos
a2ebc614d9 Rename AuthenticationWorkflow to AuthenticationHelper 2020-07-27 15:32:35 +01:00
Luis Ramos
10b07aabd9 Rename quick_login_as to login_as 2020-07-27 15:32:35 +01:00
Luis Ramos
1af4bf6994 Replace usage of create_enterprise_user with :user factory 2020-07-27 14:44:23 +01:00
luisramos0
9a21ca38e1 Run transpec in a few more spec/features/admin specs 2019-05-28 17:04:06 +01:00
luisramos0
86b0d71c7e Result of rubocop auto-correct and rebuilding rubocop_manual_todo 2019-05-28 12:57:29 +01:00
Maikel Linke
aef5cebeed Fix flaky spec by waiting for modal animation
Without waiting, `fill_in` can fail randomly:
https://github.com/teamcapybara/capybara/issues/1890
2019-03-20 12:15:01 +11:00
Rob Harrington
3e90f9aa1d Update customers_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Maikel Linke
cbdda54989 DRY specs with new helper 2019-01-11 18:04:24 +11:00
Maikel
79f50e0b7b Merge pull request #2353 from luisramos0/customers_admin_country_state
fixed UX problem in the state selector in customers admin
2018-08-28 16:46:00 +10:00
Grey Baker
a747561e77 Switch feature matcher style from to_not have to to have_no 2018-08-22 09:29:48 +01:00
luisramos0
61f69905f8 fixed UX problem in the state selector in customers admin 2018-08-20 20:51:22 +01:00
Kristina Lim
822b2c929a Fix frontend sorting in "Customers" index
The scope for customersCtrl did not have access to the sorting
preferences stored in the nested ColumnsCtrl scope. To address this,
the page has been changed to use a new set of sorting preferences
declared in the customersCtrl scope itself.

Also, these sorting preferences are now stored in an object. This
enables the parent scope to see changes to the sorting preferences which
are done via the nested ColumnsCtrl scope,

The "Bulk Order Management" page is also affected by the same scoping
issue. Once this page is fixed, we can remove remnants of the sorting
preferences initialized in ColumnsCtrl.
2018-07-23 10:33:39 +10:00
HugsDaniel
7e5eae1b8d Added testing on statusMessage display for pending changes 2018-03-13 21:03:54 +11:00
Rob Harrington
c3e071b0d1 Removing retry from stabilised customers codes feature spec 2018-02-09 14:43:43 +11:00
Rob Harrington
6cf23b46c5 Fixing broken country and state selection for customer addresses 2018-02-09 14:43:42 +11:00
Rob Harrington
5febd0a0d6 Restructure flaky customer spec 2017-11-10 08:47:12 +11:00
Julius Pabrinkis
9971c9f923 Extract translations from models 2017-07-21 12:17:12 +10:00
Bing Xie
fb08759bec Add more tests 2016-10-21 14:45:04 +11:00
Bing Xie
ae2357d309 Edit customer address with first name and last name 2016-10-21 10:51:36 +11:00
Bing Xie
ed1f05e674 Show successful message 2016-08-12 16:31:49 +10:00
Bing Xie
98f3e15d87 Updating customer address feature tests 2016-08-12 14:44:59 +10:00
Bing Xie
add39f7401 Enterprise user can update customer's name 2016-08-12 14:44:59 +10:00
Rohan Mitchell
13c8f0a230 Improve spec reliability
It seems that the success message on the customers page is disappearing before the spec can
detect it. This seems unlikely since it's present for 3 s, but this is my best theory right now.
2016-07-06 15:29:04 +10:00
Rob Harrington
6586e67a5c Better messaging around deletion of customers 2016-06-17 14:47:04 +10:00
Rob Harrington
61969f5c84 Ensure CustomersController#update.json gives an appropriate response
pendingChanges submits an empty string when a field is blank (rather than undefined)
2016-06-16 22:42:53 +10:00
Rob Harrington
a909f0ddb8 Merge remote-tracking branch 'origin/master' into pr/1033 2016-06-16 15:12:30 +10:00
Rob Harrington
25cdd4af8e Preventing shop from being changed when unsaved customer changes exist
Also making layout of filters on customer index more consistent with other pages
2016-06-16 15:10:16 +10:00
Maikel Linke
ad1ef877c0 Warn about duplicate customer codes
The admin customer page displays a warning you change a code to an
existing one.
2016-06-10 09:09:56 +10:00
Rob Harrington
564c1a3650 Improvements to customers page
Create customer from dialog

Limiting the number of products shown as once

Adding SaveBar and StatusMessage
2016-05-25 08:10:20 +10:00
Rob Harrington
9eaec6061e Pulling columns dropdown out into a shared partial 2016-01-13 18:49:32 +11:00
Rob Harrington
dbd81e60a1 Fixing customer index feature spec, only checking shop when something has been selected 2015-06-03 16:18:09 +08:00
Rob Harrington
b364994cc8 Adding tags input to customer index using ngTagsInput 2015-05-13 12:44:37 +10:00
Rob Harrington
9add073b17 User can update customer code from customer index page 2015-05-13 12:44:36 +10:00
Rob Harrington
8f35ccf007 Adding quick search and column dropdown to customers index 2015-05-13 12:44:34 +10:00