venetian 0.1.3-aarch64-linux → 0.2.0-aarch64-linux

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.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +70 -1
  3. data/exe/aarch64-linux/node +0 -0
  4. data/exe/aarch64-linux/package/api.json +1 -1
  5. data/exe/aarch64-linux/package/bin/reinstall_chrome_beta_linux.sh +1 -1
  6. data/exe/aarch64-linux/package/bin/reinstall_chrome_beta_mac.sh +1 -1
  7. data/exe/aarch64-linux/package/bin/reinstall_chrome_stable_linux.sh +1 -1
  8. data/exe/aarch64-linux/package/bin/reinstall_chrome_stable_mac.sh +1 -1
  9. data/exe/aarch64-linux/package/bin/reinstall_msedge_beta_linux.sh +1 -1
  10. data/exe/aarch64-linux/package/bin/reinstall_msedge_beta_mac.sh +1 -1
  11. data/exe/aarch64-linux/package/bin/reinstall_msedge_dev_linux.sh +1 -1
  12. data/exe/aarch64-linux/package/bin/reinstall_msedge_dev_mac.sh +1 -1
  13. data/exe/aarch64-linux/package/bin/reinstall_msedge_stable_linux.sh +1 -1
  14. data/exe/aarch64-linux/package/bin/reinstall_msedge_stable_mac.sh +1 -1
  15. data/exe/aarch64-linux/package/browsers.json +14 -14
  16. data/exe/aarch64-linux/package/index.js +1 -16
  17. data/exe/aarch64-linux/package/lib/bootstrap.js +11 -0
  18. data/exe/aarch64-linux/package/lib/coreBundle.js +26319 -22732
  19. data/exe/aarch64-linux/package/lib/server/deviceDescriptorsSource.json +1142 -182
  20. data/exe/aarch64-linux/package/lib/serverRegistry.js +1 -1
  21. data/exe/aarch64-linux/package/lib/tools/cli-client/help.json +17 -3
  22. data/exe/aarch64-linux/package/lib/tools/cli-client/output.js +2 -2
  23. data/exe/aarch64-linux/package/lib/tools/cli-client/program.js +29 -5
  24. data/exe/aarch64-linux/package/lib/tools/cli-client/registry.js +2 -2
  25. data/exe/aarch64-linux/package/lib/tools/cli-client/session.js +6 -17
  26. data/exe/aarch64-linux/package/lib/tools/cli-client/skill/SKILL.md +16 -0
  27. data/exe/aarch64-linux/package/lib/tools/cli-client/skill/references/spec-driven-testing.md +2 -2
  28. data/exe/aarch64-linux/package/lib/tools/cli-client/skill/references/storage-state.md +2 -2
  29. data/exe/aarch64-linux/package/lib/tools/cli-client/skill/references/video-recording.md +1 -1
  30. data/exe/aarch64-linux/package/lib/utilsBundle.js +2825 -1507
  31. data/exe/aarch64-linux/package/lib/utilsBundle.js.LICENSE +61 -7
  32. data/exe/aarch64-linux/package/lib/vite/dashboard/assets/{index-DpEq2p62.js → index-C_5TMfeg.js} +1 -1
  33. data/exe/aarch64-linux/package/lib/vite/dashboard/index.html +1 -1
  34. data/exe/aarch64-linux/package/lib/vite/htmlReport/report.js +3 -3
  35. data/exe/aarch64-linux/package/lib/vite/recorder/assets/{codeMirrorModule-BHYmBp6h.js → codeMirrorModule-DeBYQozu.js} +1 -1
  36. data/exe/aarch64-linux/package/lib/vite/recorder/assets/{index-DA10QRaq.js → index-Bq-mQf8S.js} +91 -91
  37. data/exe/aarch64-linux/package/lib/vite/recorder/index.html +1 -1
  38. data/exe/aarch64-linux/package/lib/vite/traceViewer/assets/{codeMirrorModule-Ds_H_9Yq.js → codeMirrorModule-LEHpjmcn.js} +1 -1
  39. data/exe/aarch64-linux/package/lib/vite/traceViewer/assets/defaultSettingsView-BNmKHKpQ.js +264 -0
  40. data/exe/aarch64-linux/package/lib/vite/traceViewer/{defaultSettingsView.BDKsFU3c.css → defaultSettingsView.CjdS-WJx.css} +1 -1
  41. data/exe/aarch64-linux/package/lib/vite/traceViewer/index.DMMX1gXU.js +2 -0
  42. data/exe/aarch64-linux/package/lib/vite/traceViewer/index.html +3 -3
  43. data/exe/aarch64-linux/package/lib/vite/traceViewer/sw.bundle.js +2 -2
  44. data/exe/aarch64-linux/package/lib/vite/traceViewer/uiMode.BZQ54Kgt.css +1 -0
  45. data/exe/aarch64-linux/package/lib/vite/traceViewer/uiMode.Ut8wwJNp.js +6 -0
  46. data/exe/aarch64-linux/package/lib/vite/traceViewer/uiMode.html +4 -4
  47. data/exe/aarch64-linux/package/package.json +1 -1
  48. data/exe/aarch64-linux/package/protocol.yml +153 -46
  49. data/exe/aarch64-linux/package/types/protocol.d.ts +95 -31
  50. data/exe/aarch64-linux/package/types/types.d.ts +478 -551
  51. data/lib/venetian/browser_installer.rb +20 -1
  52. data/lib/venetian/executable.rb +28 -11
  53. data/lib/venetian/railtie.rb +7 -0
  54. data/lib/venetian/system_test_case_extension.rb +43 -0
  55. data/lib/venetian/version.rb +2 -2
  56. data/lib/venetian.rb +4 -3
  57. metadata +14 -13
  58. data/exe/aarch64-linux/package/lib/vite/traceViewer/assets/defaultSettingsView-D31xz8zv.js +0 -262
  59. data/exe/aarch64-linux/package/lib/vite/traceViewer/index.BCnMPevh.js +0 -2
  60. data/exe/aarch64-linux/package/lib/vite/traceViewer/uiMode.Btcz36p_.css +0 -1
  61. data/exe/aarch64-linux/package/lib/vite/traceViewer/uiMode.C2Efnu2P.js +0 -6
@@ -5,6 +5,18 @@ module Venetian
5
5
  #
6
6
  # Installs browsers using the Playwright executable.
7
7
  class BrowserInstaller
8
+ class << self
9
+ private
10
+
11
+ def install_dependencies?
12
+ Venetian.auto_install_dependencies && dependencies_supported?
13
+ end
14
+
15
+ def install_dry_run
16
+ Venetian.system "install-deps", "--dry-run", exception: false, echo: ENV.fetch("VENETIAN_DEBUG", nil)
17
+ end
18
+ end
19
+
8
20
  # # Install Error
9
21
  #
10
22
  # Raised when the installation fails for some reason.
@@ -17,11 +29,18 @@ module Venetian
17
29
  end
18
30
 
19
31
  # Installs a browser. Raises InstallError if installation fails.
20
- def self.install(browser = nil, install_dependencies: true)
32
+ def self.install(browser = nil, install_dependencies: install_dependencies?)
21
33
  Venetian.system "install", *browser&.to_s, *("--with-deps" if install_dependencies),
22
34
  exception: true, echo: ENV.fetch("VENETIAN_DEBUG", nil)
23
35
  rescue StandardError => e
24
36
  raise InstallError, e.message
25
37
  end
38
+
39
+ # Returns true if the current OS supports Playwright's dependency installer.
40
+ def self.dependencies_supported?(force: false)
41
+ return @dependencies_supported unless @dependencies_supported.nil? || force
42
+
43
+ @dependencies_supported = install_dry_run || false
44
+ end
26
45
  end
27
46
  end
@@ -5,6 +5,10 @@ module Venetian
5
5
  #
6
6
  # Provides methods for locating the Playwright executable.
7
7
  module Executable
8
+ class Executor # :nodoc:
9
+ public :system, :exec
10
+ end
11
+
8
12
  DEFAULT_DIR = File.expand_path(File.join(__dir__, "..", "..", "exe")) # :nodoc:
9
13
  INSTALL_DIR_ENV_VAR = "VENETIAN_INSTALL_DIR" # :nodoc:
10
14
 
@@ -82,21 +86,26 @@ module Venetian
82
86
  end
83
87
 
84
88
  # Executes the Playwright executable with the given arguments.
85
- def execute(*args, echo: true)
86
- [base_command, *args].then do |command|
87
- puts command.inspect if echo
89
+ def execute(*args, echo: true, exception: true, **)
90
+ [*base_command, *args].then do |command|
88
91
  # due to mysterious Windows behavior; see equivalent in `tailwindcss-ruby`
89
- next system(*command, exception: true) if Gem.win_platform?
90
-
91
- exec(*command)
92
+ next system(*args, exception:, echo:) if Gem.win_platform?
93
+
94
+ puts command.shelljoin if echo
95
+ begin
96
+ executor.exec(*command)
97
+ rescue StandardError
98
+ exception ? raise : false
99
+ end
92
100
  end
93
101
  end
94
102
 
95
103
  # Runs the Playwright executable with the given arguments.
96
- def system(*args, echo: true, **)
104
+ def system(*args, echo: true, exception: true, **)
97
105
  [*base_command, *args].then do |command|
98
- puts command.inspect if echo
99
- super(*command, exception: true)
106
+ puts command.shelljoin if echo
107
+ executor.system(*command,
108
+ exception:, **{ out: echo ? nil : File::NULL, err: echo ? nil : File::NULL }.compact)
100
109
  end
101
110
  end
102
111
 
@@ -133,7 +142,7 @@ module Venetian
133
142
  def exe_path
134
143
  return custom_exe_path if ENV.key?(INSTALL_DIR_ENV_VAR)
135
144
 
136
- Upstream::NATIVE_PLATFORMS.select { |platform, _| Gem::Platform.match_gem?(Gem::Platform.new(platform), GEMSPEC.name) }
145
+ Upstream::NATIVE_PLATFORMS.select { |platform, _| Gem::Platform.match_gem?(Gem::Platform.new(platform), gem_name) }
137
146
  .collect { |platform, _info| File.join(exe_dir, platform, "node") }
138
147
  .detect { |candidate| File.exist?(candidate) }
139
148
  end
@@ -143,12 +152,20 @@ module Venetian
143
152
  end
144
153
 
145
154
  def gem_platforms_unsupported?
146
- Upstream::NATIVE_PLATFORMS.keys.none? { |platform| Gem::Platform.match_gem?(Gem::Platform.new(platform), GEMSPEC.name) }
155
+ Upstream::NATIVE_PLATFORMS.keys.none? { |platform| Gem::Platform.match_gem?(Gem::Platform.new(platform), gem_name) }
156
+ end
157
+
158
+ def gem_name
159
+ GEMSPEC&.name || "venetian"
147
160
  end
148
161
 
149
162
  def platform
150
163
  Gem::Platform.local.to_s
151
164
  end
165
+
166
+ def executor
167
+ @executor ||= Executor.new
168
+ end
152
169
  end
153
170
  end
154
171
  end
@@ -5,5 +5,12 @@ module Venetian
5
5
  rake_tasks do
6
6
  load "tasks/venetian.rake"
7
7
  end
8
+
9
+ initializer "venetian.system_test_setup" do
10
+ ActiveSupport.on_load :action_dispatch_system_test_case do
11
+ require "venetian/system_test_case_extension"
12
+ prepend SystemTestCaseExtension
13
+ end
14
+ end
8
15
  end
9
16
  end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Venetian
4
+ module SystemTestCaseExtension # :nodoc:
5
+ extend ActiveSupport::Concern
6
+
7
+ prepended do
8
+ class_attribute :venetian_browser_type, default: :chromium, instance_writer: false
9
+
10
+ parallelize_before_fork do
11
+ install_playwright_browsers if venetian_preinstall_browsers_before_fork?
12
+ end
13
+ end
14
+
15
+ class_methods do # :nodoc:
16
+ def driven_by(driver, options: {}, **)
17
+ super
18
+
19
+ self.venetian_browser_type = driver == :playwright ? options.fetch(:browser_type, :chromium).to_sym : nil
20
+ end
21
+
22
+ def install_playwright_browsers
23
+ venetian_browsers.presence.try do |browsers|
24
+ browsers.each { |browser| BrowserInstaller.install(browser) }
25
+ Venetian.auto_install_browsers = false
26
+ end
27
+ end
28
+
29
+ private
30
+
31
+ def venetian_preinstall_browsers_before_fork?
32
+ Venetian.auto_install_browsers && defined? ActionDispatch::SystemTestCase
33
+ end
34
+
35
+ def venetian_browsers
36
+ Minitest::Runnable.runnables
37
+ .select { |klass| klass < ActionDispatch::SystemTestCase && klass.driver&.name == :playwright }
38
+ .filter_map(&:venetian_browser_type)
39
+ .uniq
40
+ end
41
+ end
42
+ end
43
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Venetian
4
- VERSION = "0.1.3"
5
- COMPATIBLE_PLAYWRIGHT_VERSION = "1.60.0"
4
+ VERSION = "0.2.0"
5
+ COMPATIBLE_PLAYWRIGHT_VERSION = "1.61.1"
6
6
  end
data/lib/venetian.rb CHANGED
@@ -16,15 +16,16 @@ require "venetian/railtie" if defined? Rails
16
16
  # Native Playwright driver for Capybara.
17
17
  module Venetian
18
18
  class << self
19
- attr_accessor :auto_install_browsers
19
+ attr_accessor :auto_install_browsers, :auto_install_dependencies
20
20
  end
21
21
 
22
22
  class Error < StandardError; end
23
23
 
24
24
  self.auto_install_browsers = true
25
+ self.auto_install_dependencies = true
25
26
 
26
- def self.execute(*, echo: true)
27
- Executable.execute(*, echo: echo)
27
+ def self.execute(*, echo: true, **)
28
+ Executable.execute(*, echo: echo, **)
28
29
  end
29
30
 
30
31
  def self.system(*, echo: true, **)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: venetian
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - Justin Malčić
@@ -29,14 +29,14 @@ dependencies:
29
29
  requirements:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 1.60.0
32
+ version: 1.61.0
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 1.60.0
39
+ version: 1.61.0
40
40
  description: Bundles the Playwright driver binary in platform-specific gem variants
41
41
  and integrates with `capybara-playwright-driver`.
42
42
  email:
@@ -121,37 +121,37 @@ files:
121
121
  - exe/aarch64-linux/package/lib/vite/dashboard/assets/firefox-beta-k3eOH_eK.svg
122
122
  - exe/aarch64-linux/package/lib/vite/dashboard/assets/firefox-nightly-Cp5nfeDT.svg
123
123
  - exe/aarch64-linux/package/lib/vite/dashboard/assets/index-BY2S1tHT.css
124
- - exe/aarch64-linux/package/lib/vite/dashboard/assets/index-DpEq2p62.js
124
+ - exe/aarch64-linux/package/lib/vite/dashboard/assets/index-C_5TMfeg.js
125
125
  - exe/aarch64-linux/package/lib/vite/dashboard/assets/safari-na3_-uQk.svg
126
126
  - exe/aarch64-linux/package/lib/vite/dashboard/index.html
127
127
  - exe/aarch64-linux/package/lib/vite/dashboard/playwright-logo.svg
128
128
  - exe/aarch64-linux/package/lib/vite/htmlReport/index.html
129
129
  - exe/aarch64-linux/package/lib/vite/htmlReport/report.css
130
130
  - exe/aarch64-linux/package/lib/vite/htmlReport/report.js
131
- - exe/aarch64-linux/package/lib/vite/recorder/assets/codeMirrorModule-BHYmBp6h.js
132
131
  - exe/aarch64-linux/package/lib/vite/recorder/assets/codeMirrorModule-DYBRYzYX.css
132
+ - exe/aarch64-linux/package/lib/vite/recorder/assets/codeMirrorModule-DeBYQozu.js
133
133
  - exe/aarch64-linux/package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf
134
134
  - exe/aarch64-linux/package/lib/vite/recorder/assets/index-4ZiSSCmn.css
135
- - exe/aarch64-linux/package/lib/vite/recorder/assets/index-DA10QRaq.js
135
+ - exe/aarch64-linux/package/lib/vite/recorder/assets/index-Bq-mQf8S.js
136
136
  - exe/aarch64-linux/package/lib/vite/recorder/index.html
137
137
  - exe/aarch64-linux/package/lib/vite/recorder/playwright-logo.svg
138
- - exe/aarch64-linux/package/lib/vite/traceViewer/assets/codeMirrorModule-Ds_H_9Yq.js
139
- - exe/aarch64-linux/package/lib/vite/traceViewer/assets/defaultSettingsView-D31xz8zv.js
138
+ - exe/aarch64-linux/package/lib/vite/traceViewer/assets/codeMirrorModule-LEHpjmcn.js
139
+ - exe/aarch64-linux/package/lib/vite/traceViewer/assets/defaultSettingsView-BNmKHKpQ.js
140
140
  - exe/aarch64-linux/package/lib/vite/traceViewer/assets/urlMatch-BYQrIQwR.js
141
141
  - exe/aarch64-linux/package/lib/vite/traceViewer/assets/xtermModule-CsJ4vdCR.js
142
142
  - exe/aarch64-linux/package/lib/vite/traceViewer/codeMirrorModule.DYBRYzYX.css
143
143
  - exe/aarch64-linux/package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf
144
- - exe/aarch64-linux/package/lib/vite/traceViewer/defaultSettingsView.BDKsFU3c.css
145
- - exe/aarch64-linux/package/lib/vite/traceViewer/index.BCnMPevh.js
144
+ - exe/aarch64-linux/package/lib/vite/traceViewer/defaultSettingsView.CjdS-WJx.css
146
145
  - exe/aarch64-linux/package/lib/vite/traceViewer/index.CzXZzn5A.css
146
+ - exe/aarch64-linux/package/lib/vite/traceViewer/index.DMMX1gXU.js
147
147
  - exe/aarch64-linux/package/lib/vite/traceViewer/index.html
148
148
  - exe/aarch64-linux/package/lib/vite/traceViewer/manifest.webmanifest
149
149
  - exe/aarch64-linux/package/lib/vite/traceViewer/playwright-logo.svg
150
150
  - exe/aarch64-linux/package/lib/vite/traceViewer/snapshot.html
151
151
  - exe/aarch64-linux/package/lib/vite/traceViewer/snapshot.v8KI4P3m.js
152
152
  - exe/aarch64-linux/package/lib/vite/traceViewer/sw.bundle.js
153
- - exe/aarch64-linux/package/lib/vite/traceViewer/uiMode.Btcz36p_.css
154
- - exe/aarch64-linux/package/lib/vite/traceViewer/uiMode.C2Efnu2P.js
153
+ - exe/aarch64-linux/package/lib/vite/traceViewer/uiMode.BZQ54Kgt.css
154
+ - exe/aarch64-linux/package/lib/vite/traceViewer/uiMode.Ut8wwJNp.js
155
155
  - exe/aarch64-linux/package/lib/vite/traceViewer/uiMode.html
156
156
  - exe/aarch64-linux/package/lib/vite/traceViewer/xtermModule.DYP7pi_n.css
157
157
  - exe/aarch64-linux/package/lib/xdg-open
@@ -169,6 +169,7 @@ files:
169
169
  - lib/venetian/gemspec.rb
170
170
  - lib/venetian/playwright_create_extensions.rb
171
171
  - lib/venetian/railtie.rb
172
+ - lib/venetian/system_test_case_extension.rb
172
173
  - lib/venetian/tasks.rb
173
174
  - lib/venetian/upstream.rb
174
175
  - lib/venetian/version.rb
@@ -177,7 +178,7 @@ licenses:
177
178
  - MIT
178
179
  metadata:
179
180
  homepage_uri: https://malcic.codes/software/venetian
180
- playwright_version: 1.60.0
181
+ playwright_version: 1.61.1
181
182
  rubygems_mfa_required: 'true'
182
183
  source_code_uri: https://github.com/jmalcic/venetian
183
184
  rdoc_options: []