cyperful 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f85e5c56fa2637a6533a9fb13e8afd07278704d03f5703ec1c25c30b13a9ae31
4
- data.tar.gz: 8c96954f38fb306b73b5a3c0423a277aef1d4911e5ca854d47067499e87ab6e4
3
+ metadata.gz: f9f8d3ff27a617e78c9574d35c85d0f02dc0273de2e90c7773da683cd8750f5e
4
+ data.tar.gz: 2fb3db663142fcbc88cdd6961983f8c1a3df8f623dc5fbf8ed73e4a7256a6c1c
5
5
  SHA512:
6
- metadata.gz: f39bbdf382d5f93cb7a85ebbcfbb78e3921b9ee7ad156e98320a2beb77c2be8c6247ff78b4bfef8d0be0fecaadfab24f28584a288cc3a5b6aef35e40d50be79e
7
- data.tar.gz: 5cdb29c74f89f38024aad8ab9cf4d345285bbeacd22a3bc353ee3baf044fdbb1c08684572565deb10b2e380ddb6a0c65a204252fa3370ab86a9f25c7f199a972
6
+ metadata.gz: 2887f50bf26d411114cd9152e233f9bc81f66425c173ed2550e19e867c0d4f2abe3811626f2918bc731d810e4ca2e683bf1d0144ae5f1cf13d324afd1ed45cfd
7
+ data.tar.gz: 74f2680a4ec70a3fe89291e84f81f3a682b5a6e7c2c1dd40f0031df3fb5720f0654d42b2e4eaf833f32913a3c5a381b1c2a66a58b0705f485e20abf4dc595932
@@ -207,7 +207,7 @@ class Cyperful::Driver
207
207
  end
208
208
 
209
209
  def print_steps
210
- logger.plain("Found #{@steps.length} steps:")
210
+ logger.puts("found #{@steps.length} steps:")
211
211
  @steps.each_with_index do |step, i|
212
212
  logger.plain(
213
213
  " #{
@@ -498,7 +498,9 @@ class Cyperful::Driver
498
498
  @ui_server.notify(nil) # `break` out of the `loop` (see `UiServer#socket_open`)
499
499
 
500
500
  logger.puts "teardown complete. Waiting for command..."
501
- # NOTE: this will raise an `Interrupt` if the user Ctrl+C's here
501
+
502
+ # NOTE: MiniTest will raise an `Interrupt` if the user Ctrl+C's here
503
+ # TODO: can't seem to capture Rspec Ctrl+C's :(
502
504
  command = @step_pausing_queue.deq
503
505
  enqueue_reset if command == :reset
504
506
  ensure
@@ -54,10 +54,32 @@ module PrependSystemTestingDriver
54
54
 
55
55
  # this assumes Selenium and Chrome:
56
56
 
57
+ # all chrome flags: https://peter.sh/experiments/chromium-command-line-switches
58
+ # chrome flags for tooling: https://github.com/GoogleChrome/chrome-launcher/blob/main/docs/chrome-flags-for-tools.md
59
+
60
+ # set the min flags to make cyperful functional:
61
+
57
62
  # so user isn't prompted when we start recording video w/ MediaStream
58
63
  driver_opts.add_argument("--auto-accept-this-tab-capture")
59
64
  driver_opts.add_argument("--use-fake-ui-for-media-stream")
60
65
 
66
+ if driver_opts.args.none? { |arg| arg.include?("--disable-features=") }
67
+ # credit: https://github.com/krausest/js-framework-benchmark/discussions/1682
68
+ disabled_features = %w[
69
+ InterestFeedContentSuggestions
70
+ IPH_DemoMode
71
+ BackForwardCache
72
+ OptimizationHints
73
+ OptimizationHintsFetching
74
+ OptimizationTargetPrediction
75
+ PrivacySandboxSettings4
76
+ Translate
77
+ ]
78
+ driver_opts.add_argument(
79
+ "--flag-switches-begin --disable-features=#{disabled_features.join(",")} --flag-switches-end",
80
+ )
81
+ end
82
+
61
83
  # make sure we're not in headless mode
62
84
  driver_opts.args.delete("--headless")
63
85
  driver_opts.args.delete("--headless=new")
@@ -1,15 +1,6 @@
1
1
  require "webrick/websocket"
2
2
  require "webrick/httpproxy"
3
3
 
4
- # fix for: webrick-websocket incorrectly assumes `Upgrade` header is always present
5
- module FixWebrickWebsocketServer
6
- def service(req, res)
7
- req.header["upgrade"] = [""] if req["upgrade"].nil?
8
- super
9
- end
10
- end
11
- WEBrick::Websocket::HTTPServer.prepend(FixWebrickWebsocketServer)
12
-
13
4
  class Cyperful::UiServer
14
5
  def initialize(port:)
15
6
  @port = port