Commit Graph

26 Commits

Author SHA1 Message Date
David Cook
60ee33053d Apply suggestions from code review 2025-10-08 14:15:56 +11:00
Maikel Linke
5b383237ea Deactivate Puffing Billy to avoid hanging specs 2025-10-08 13:26:37 +11:00
Maikel Linke
2d3f18a71b Load DFC Permissions module in system spec
But we can't access the inside of the component yet.
2025-08-08 14:00:41 +10:00
Maikel Linke
a062a7b697 Add Billy proxy to Chrome in system specs
And demonstrate the use of puffing-billy browser proxy.

Billy can cache and record responses to browser requests. For that to
work we need to allow network connections and disable VCR. But instead I
found that the Billy proxy is just like any other Ruby backend code and
its connections can be recorded with VCR instead.

And instead of stubbing requests via Billy.proxy, we can use standard
Webmock `stub_request`. Now we use puffing-billy just to relay browser
requests via our Ruby app.
2025-07-29 14:37:27 +10:00
filipefurtad0
352f1ba900 Adds a DOCKER env variable, to disable sandbox mode for system tests
Fixes rubocop offense - || instead of or

Comments out the DOCKER variable

Corrects the syntax for Markdown inline code
2025-07-10 19:53:00 +01:00
filipefurtad0
660db32c04 Converts whitelist URLs to regular expressions 2023-11-22 17:37:41 +00:00
Neal Chambers
7c14853add Safely autocorrect Style/RedundantDoubleSplatHashBraces
Inspecting 1509 files
.....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................C...............

Offenses:

spec/system/support/cuprite_setup.rb:13:5: C: [Corrected] Style/RedundantDoubleSplatHashBraces: Remove the redundant double splat and braces, use keyword arguments directly.
    **{ ...
    ^^^
spec/system/support/cuprite_setup.rb:14:7: C: [Corrected] Layout/HashAlignment: Align the keys of a hash literal if they span more than one line.
      browser_options:,
      ^^^^^^^^^^^^^^^^
spec/system/support/cuprite_setup.rb:15:7: C: [Corrected] Layout/HashAlignment: Align the keys of a hash literal if they span more than one line.
      process_timeout: 60,
      ^^^^^^^^^^^^^^^^^^^
spec/system/support/cuprite_setup.rb:16:7: C: [Corrected] Layout/HashAlignment: Align the keys of a hash literal if they span more than one line.
      timeout: 60,
      ^^^^^^^^^^^
spec/system/support/cuprite_setup.rb:17:7: C: [Corrected] Layout/CommentIndentation: Incorrect indentation detected (column 6 instead of 4).
      # Don't load scripts from external sources, like google maps or stripe
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/system/support/cuprite_setup.rb:18:7: C: [Corrected] Layout/HashAlignment: Align the keys of a hash literal if they span more than one line.
      url_whitelist: ["http://localhost", "http://0.0.0.0", "http://127.0.0.1"],
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/system/support/cuprite_setup.rb:19:7: C: [Corrected] Layout/HashAlignment: Align the keys of a hash literal if they span more than one line.
      inspector: true,
      ^^^^^^^^^^^^^^^
spec/system/support/cuprite_setup.rb:20:7: C: [Corrected] Layout/HashAlignment: Align the keys of a hash literal if they span more than one line.
      headless:,
      ^^^^^^^^^
spec/system/support/cuprite_setup.rb:21:7: C: [Corrected] Layout/HashAlignment: Align the keys of a hash literal if they span more than one line.
      js_errors: true
      ^^^^^^^^^^^^^^^

1509 files inspected, 9 offenses detected, 9 offenses corrected
2023-11-10 09:13:57 +09:00
Maikel Linke
c4c5c97270 Clarify cuprite driver configuration
Rails is registering a driver called `cuprite`. And when we did that as
well the driver got registered three times somehow. It looked like our
driver options were used in the end but just to clarify I gave it a
unique name.

This was inspired by:

* https://github.com/ViewComponent/view_component/pull/1877

It suggests that it may avoid dead browser errors on CI. We'll see.
2023-11-02 14:07:33 +11:00
Neal Chambers
dc607b654d Fix Style/HashSyntax 2023-10-24 08:49:34 +09:00
Maikel Linke
4ecbbae55e Adapt large browser window as default
We were really close to that anyway. It simplifies the code a bit.
2023-06-08 13:51:29 +10:00
Maikel Linke
f13c0e1dca Bring all Rspec config for database cleaning together 2023-04-12 14:23:09 +10:00
filipefurtad0
9323394eb7 Adds CI condition browser_options; sets timeouts to 60 2023-01-20 11:13:31 +00:00
Philipp Winkler
093b851395 Control headless mode for testing via environment variable 2022-08-09 20:57:52 +02:00
filipefurtad0
b0d29c6dbc Updates spec settings to address timeout error 2022-06-23 10:24:20 +01:00
Maikel Linke
4d8c44d890 Include port in URLs generated by system specs
This means that we can follow generated links, for example in emails and
reach the test app server.
2022-04-13 15:03:38 +10:00
Maikel Linke
c89cf36831 Raise JavaScript errors within system specs (again)
Re-raising console errors helps us to find subtle bugs.
2021-10-15 16:34:56 +11:00
filipefurtad0
ef68791fd6 Sets js_errors: to false and keeps headless; true
Sets js_errors to false

Sets headless to true
2021-10-14 14:11:36 +01:00
Maikel Linke
02a19361fb Raise JavaScript errors within system specs
Re-raising console errors helps us to find subtle bugs.
2021-10-11 13:39:24 +11:00
Matt-Yorkley
21f26669b4 Split spec configurations into smaller parts
base_spec_helper now defines configs that are universal, whereas spec_helper is for configs that are using DatabaseCleaner and Selenium. This means we can include the base_spec_helper in both the system test setup and the regular setup but separate the other configurations for each type.
2021-07-25 12:32:36 +01:00
Matt-Yorkley
afce55dab5 Add Devise System spec helpers
This is recommended when using Devise.
2021-07-25 11:25:44 +01:00
Matt-Yorkley
2b4d8fbd63 Reorganise cuprite setup code 2021-07-22 11:01:51 +01:00
Matt-Yorkley
7ee6e48f17 Ignore external scripts
In some cases the browser will try to load external files like fonts, Google maps JS, Stripe JS. This can cause network issues on slow connections and add a lot of unnecessary time to each test.
2021-07-22 10:48:16 +01:00
Matt-Yorkley
0fbba0fa9d Clean up some comments 2021-07-22 10:20:57 +01:00
Matt-Yorkley
a14059a77d Adjust timeout settings for more flexibility 2021-07-22 10:18:50 +01:00
filipefurtad0
85d2db52ae Sets headless: true 2021-07-21 16:42:46 +01:00
filipefurtad0
ec07a3cd3d Add the Ferrum-Cuprite driver to the stack 2021-07-20 15:52:21 +01:00