Commit Graph

28175 Commits

Author SHA1 Message Date
Matt-Yorkley
4c64aaed77 Remove callbacks in Adjustment that call order.update! 2021-03-11 11:20:01 +00:00
Matt-Yorkley
791a47d170 Merge pull request #6858 from Matt-Yorkley/adjustments-shipping-cost
[Adjustments] Move shipping adjustment from order to shipment
2021-03-11 12:17:14 +01:00
Luis Ramos
12d5120629 Remove dead current_api_user helper 2021-03-11 00:40:51 +00:00
Maikel Linke
06f46c4e29 Remove unnecessary comments 2021-03-11 11:18:12 +11:00
Pau Pérez Fabregat
41adacbffb Merge pull request #7056 from jibees/6978-unit-prices-transform-question-mark-to-cross-to-close-it
Transform question mark to cross to close it (unit price)
2021-03-10 17:08:05 +01:00
Pau Pérez Fabregat
e341b04487 Merge pull request #6902 from openfoodfoundation/setup-postgres-gh-actions
Setup Github Actions as CI
2021-03-10 16:59:59 +01:00
Pau Perez
0eb14bc0a4 Do not modify the HTML returned by Money gem
It was due to these lines that we were returning a broken HTML tag but
also, there's no need to remove blanks.
2021-03-10 16:29:09 +01:00
Pau Perez
42d0f16773 Abstract order balance in a simple PORO
This new class lets us [Branch by
abstraction](https://www.martinfowler.com/bliki/BranchByAbstraction.html)
by encapsulating an order's balance. As a result, that's the only place
where we need to check the feature toggle, instead of every place where
`#outstanding_balance` is called (quite some). That would be very hard
to review and it'd be more likely to introduce bugs.

What I like about this is that we also managed to group together the
data and logic that we had spread in a few places and have it nicely
encapsulated. So, where we had a number, we'll now have an object.

Once we fully change all `#outstanding_balance` consumers to use this
new abstraction we'll be able to remove the methods this class replaces.
These are: `Spree::Order#outstanding_balance?`,
`Spree::Order#display_oustanding_balance` and
`OrderHelper.outstanding_balance_label`.

This is just the first step. I'll follow this up with a PR per
page/mailer/whatever where we use the balance to replace it with an
instance of `OrderBalance`. That is, splitting up what I explored in
https://github.com/openfoodfoundation/openfoodnetwork/pull/6959 but in
very small and manageable pieces.
2021-03-10 16:09:09 +01:00
Pau Pérez Fabregat
82257185c4 Merge pull request #7057 from Matt-Yorkley/missing-tax-translation
Update untranslated string
2021-03-10 10:42:14 +01:00
Pau Pérez Fabregat
66201c6618 Merge pull request #7055 from coopdevs/remove-js-capabilities-to-test
Remove unnecessary JS-capabilites for test
2021-03-10 09:53:23 +01:00
Maikel Linke
20f11327b5 Show combined checkbox when all terms required
The user should need to tick only one box to agree.

We don't remember yet if someone agreed to the platform TOS and
therefore the box is always unticked to start with.

Remembering the agreement is another issue:
https://github.com/openfoodfoundation/openfoodnetwork/issues/6328
2021-03-10 17:09:26 +11:00
Maikel Linke
f73c32ce4b Move rendering logic of terms to helper
Preparing for a third option to display.
2021-03-10 17:09:26 +11:00
Maikel Linke
4af0e61163 Simplify logic for terms and conditions display
Checking for `false` instead of a falsey value allows us to distinguish
from an unset variable and disable the checkout button only when a
checkbox is present and unticked.
2021-03-10 17:09:26 +11:00
Maikel Linke
b266c9df34 Enable checkout button only when terms accepted
This was working with the seller's terms but now it includes the
platform's terms as well.

Pending:

- Simplify Ansible code
- Unify the two terms checkboxes if both required
2021-03-10 17:09:26 +11:00
Maikel Linke
2149ce7c94 Reduce run time of specs by combining them
It's better style to have those specs independent but we also have a
need for fast tests.
2021-03-10 17:09:26 +11:00
Maikel Linke
561da1f834 Show Terms of Service at checkout if required
The checkout page shows a checkbox to accept the platform's Terms of
Service. Ticking the box doesn't have any effect yet but at least people
are aware and are presented with a link to the terms.
2021-03-10 17:09:26 +11:00
Maikel Linke
0e8745adc3 Remove passing of unused variable 2021-03-10 17:09:26 +11:00
Maikel Linke
ee66a096e2 Ignore uploaded Ts&Cs for version control
We do that for other uploaded files already.
2021-03-10 17:09:26 +11:00
Maikel Linke
ba9de403e6 Add admin option to require shoppers agree to TOS
This switch doesn't have any effect yet. We need to implement it in the
checkout.
2021-03-10 17:09:26 +11:00
Andy Brett
05a074d33a Merge pull request #7041 from Matt-Yorkley/adjustments-set-eligibility
[Adjustments] Remove Adjustment#set_eligibility
2021-03-09 13:33:21 -08:00
Pau Pérez Fabregat
332d7b8482 Merge pull request #7044 from filipefurtad0/transaction_fees_specs
adds coverage to transacion fees/payment methods
2021-03-09 18:52:58 +01:00
Matt-Yorkley
11d5c6a2f1 Update untranslated string
This translation already exists, we just weren't using it in this view.
2021-03-09 17:19:40 +00:00
Jean-Baptiste Bellet
2414161210 Remove useless and error-prone css specification
- This shouldn't be a general specification, but eventually used inside context. By default, no need to this.
2021-03-09 17:25:32 +01:00
Jean-Baptiste Bellet
5239b259d0 Transform question mark to cross when tooltip is open
- Behavior consistent w/ price_breakdown feature.
2021-03-09 17:22:07 +01:00
Pau Pérez Fabregat
64a2493cc7 Merge pull request #7001 from coopdevs/add-bullet-for-development
Set up Bullet for development and testing
2021-03-09 16:47:53 +01:00
Pau Pérez Fabregat
3543e7f005 Merge pull request #6894 from jibees/6878-question-mark-icon-as-svg
Use svg icon instead of CSS `before` for the question mark icon
2021-03-09 16:47:30 +01:00
Pau Pérez Fabregat
4a6de97935 Merge pull request #7054 from coopdevs/removes-puts-debugging
Remove puts debugging in tests
2021-03-09 16:27:32 +01:00
Pau Perez
5b31e06cab Add Github Actions badge to README 2021-03-09 16:22:46 +01:00
Pau Perez
8301f2d550 Output RSpec profiling data
This shows things like:

```
Top 10 slowest examples (32.34 seconds, 87.1% of total time):

  As a site administrator
  I want to configure the site content
 fills in a setting shows the result on the home page
    19.12 seconds ./spec/features/admin/configuration/content_spec.rb:17
  States creating and editing states should allow an admin to edit existing states
    7.36 seconds ./spec/features/admin/configuration/states_spec.rb:40
  Tax Rates while editing can be deleted
    1.22 seconds ./spec/features/admin/configuration/tax_rates_spec.rb:58
  States creating and editing states should allow an admin to create states for non default countries
    1.16 seconds ./spec/features/admin/configuration/states_spec.rb:52
  States creating and editing states should show validation errors
    1 seconds ./spec/features/admin/configuration/states_spec.rb:68
  Zones edit existing zone
    0.90067 seconds ./spec/features/admin/configuration/zones_spec.rb:42
```

and

```
Top 8 slowest example groups:

  As a site administrator
  I want to configure the site content
    6.64 seconds average (19.93 seconds / 3 examples) ./spec/features/admin/configuration/content_spec.rb:5
  States
    2.42 seconds average (9.68 seconds / 4 examples) ./spec/features/admin/configuration/states_spec.rb:5
  Tax Rates
    0.51138 seconds average (2.56 seconds / 5 examples) ./spec/features/admin/configuration/tax_rates_spec.rb:4
  Zones
    0.49488 seconds average (1.48 seconds / 3 examples) ./spec/features/admin/configuration/zones_spec.rb:5
  Tax Categories
    0.32438 seconds average (1.3 seconds / 4 examples) ./spec/features/admin/configuration/tax_categories_spec.rb:5
  Taxonomies
    0.30578 seconds average (1.22 seconds / 4 examples) ./spec/features/admin/configuration/taxonomies_spec.rb:5
  General Settings
    0.28868 seconds average (0.57737 seconds / 2 examples) ./spec/features/admin/configuration/general_settings_spec.rb:5
  Mail Methods
    0.26415 seconds average (0.26415 seconds / 1 example) ./spec/features/admin/configuration/mail_methods_spec.rb:5

Finished in 37.11 seconds (files took 6.27 seconds to load)
26 examples, 0 failures
```

which is essential to speed up our test suite.
2021-03-09 16:22:46 +01:00
Andy Brett
5e19e5e83d use UTC 2021-03-09 16:22:46 +01:00
Andy Brett
b5b751fa39 fix admin feature spec 2021-03-09 16:22:46 +01:00
Andy Brett
bc7469c7aa fix order test 2021-03-09 16:22:46 +01:00
Pau Perez
a5fbd6bb57 DRY downloads directory path 2021-03-09 16:22:46 +01:00
Pau Perez
0e4f9d18d4 Fix browser's download path configuration
The CI build can't find the downloaded file and fails like:

```
2) enterprise fee summaries csv downloads smoke test for generation of report based on permissions when logged in as enterprise user generates file with data for the enterprise
     Failure/Error: sleep 0.1 until downloaded?

     Timeout::Error:
       execution expired
     # ./spec/support/downloads_helper.rb:34:in `sleep'
     # ./spec/support/downloads_helper.rb:34:in `block in wait_for_download'
     # ./spec/support/downloads_helper.rb:33:in `wait_for_download'
     # ./spec/support/downloads_helper.rb:11:in `downloaded_filename'
     # ./engines/order_management/spec/features/order_management/reports/enterprise_fee_summaries_spec.rb:119:in `block (5 levels) in <top (required)>'
     # ./engines/order_management/spec/features/order_management/reports/enterprise_fee_summaries_spec.rb:80:in `block (4 levels) in <top (required)>'
     # ./spec/support/downloads_helper.rb:22:in `with_empty_downloads_folder'
     # ./engines/order_management/spec/features/order_management/reports/enterprise_fee_summaries_spec.rb:80:in `block (3 levels) in <top (required)>'
```
2021-03-09 16:19:27 +01:00
Andy Brett
ae3b186bcd remove hardcoded time string in T&C spec 2021-03-09 16:19:27 +01:00
Pau Perez
42c9050a17 Fix cookie retrieval in feature spec
I also took the chance to reduce some redundant assertions.
2021-03-09 16:19:27 +01:00
Pau Perez
c61fc25e9f Disable Knapsack only to Github workflow 2021-03-09 16:19:27 +01:00
Pau Perez
838563a80b Skip code coverage in Github Actions
No need to slow down the build with partial coverage analysis that won't
be merged in a single report for the whole build.

Also, this makes builds fail because we are not running the whole suite.
2021-03-09 16:19:27 +01:00
Pau Perez
3cef261de1 Force RSpec's output to be in color
While also simplifying the configuration using the default `progress`
RSpec formatter.
2021-03-09 16:18:29 +01:00
Pau Perez
1f0b597120 Run tests in a Github workflow
Things to be aware of:

  * Allows manually triggering GH workflow. See:
  https://docs.github.com/en/actions/reference/events-that-trigger-workflows#workflow_dispatch.
  * Installs versions in the yarn.lock and prevents updates to the yarn.lock.
  * Yarn and npm come pre-installed in Github's runner VMs. See
https://docs.github.com/en/actions/guides/building-and-testing-nodejs#installing-dependencies.
  * We use the latest LTS Node version so it can read ES6 syntax `let`.
  * Karma tests require RAILS_ENV. In lib/tasks/karma.rake we default to
  `test` so that means someone else is setting `RAILS_ENV` before that.
  We'll need to find out who so we can avoid this.
  * We run the CI build only on pushes to any branch. This the
  redundancy of all build jobs due to the `push` and `pull_request`
  events. I still don't see what's the exact difference between these
  two events. See:
  https://docs.github.com/en/actions/reference/events-that-trigger-workflows.
2021-03-09 16:18:04 +01:00
filipefurtad0
f26a7befab removes default value assertions 2021-03-09 15:18:02 +00:00
Pau Perez
c986583d09 Remove unnecessary JS-capabilites for test
This gets this file execution time from ~10s to ~2s.
2021-03-09 16:04:29 +01:00
Pau Perez
333c669fbf Remove puts debugging in tests 2021-03-09 16:01:55 +01:00
Pau Perez
9c642e2957 Use the instance currency as Money's default 2021-03-09 09:00:37 +01:00
Andy Brett
0125b5f10e add spec for plus_relatives_and_oc_producers 2021-03-08 09:10:40 -08:00
Andy Brett
95c232dfe7 add spec for a resumed order 2021-03-08 08:54:28 -08:00
Pau Pérez Fabregat
6b111561e8 Merge pull request #7000 from Matt-Yorkley/dead-code-tax-total
DCOTW: Order#tax_total
2021-03-08 16:57:59 +01:00
Matt-Yorkley
c99a9f4ee1 Remove Adjustment#set_eligibility 2021-03-08 15:29:04 +00:00
Pau Perez
5c74668726 Make test rely on container rather than parent
This decouples it a bit from the actual HTML markup and makes it a bit
more resilient.
2021-03-08 16:20:07 +01:00
Jean-Baptiste Bellet
ac70bbfd9b Add missing closing curly bracket 2021-03-08 15:58:26 +01:00