cypress-rails 0.5.4 → 0.6.0

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: '0088a9590b5bc5e26f46712eab77a85be92e01cea16722a0945463261a2e517b'
4
- data.tar.gz: eb19c0b7022aaea43ead4557247f47b11a8e3d1e90c6f0ce518dd0dadfe811da
3
+ metadata.gz: 51850b1aa42e0669b0f94e97f73b7f9f6858ab04c6290645c29c556c5b6ccc9e
4
+ data.tar.gz: edade573f72bf936fe1489872bcbcd0ed824c8c04b4b56728260402f551e2e88
5
5
  SHA512:
6
- metadata.gz: be4b582a6f013139ca8599ba08a2ee2b4c6c8f17c8a05d6fa62276bb4f52730959495e3004f635612cb3ac5c2a93d1f30a7a0ce2b09cd9659793aeaef03e22ea
7
- data.tar.gz: eadd7f6340cd5f8596cf9abfadf8a758f26893af6c01501100ac361bf067b842d4afdd8b617fef18e83b73643b5aa6d22c5ba47711985a66af601fd34dd39893
6
+ metadata.gz: 81c23646df18000812108410396a1b65eb3bbd8300ecdd00a37f3aca789ac567e465634690ae4a902ff6bc6baa4616782f8af5071a2ccb6379bbc3f785908c5f
7
+ data.tar.gz: 7848d68edac62c1ddb86e779b22b3eda78c1ca350661e6a95433e364ffcdbb7e708f09a88334edfafebe23f7a569f1958e39b535a264fa2b80633e0afd0e7322
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.6.0
4
+
5
+ * Update initializer task to generate valid Cypress v10+ configurations
6
+ [#156](https://github.com/testdouble/cypress-rails/pull/156)
7
+
8
+ ## 0.5.5
9
+
10
+ * Add Puma 6 support
11
+ [#136](https://github.com/testdouble/cypress-rails/pull/136)
12
+
3
13
  ## 0.5.4
4
14
 
5
15
  * Fix Rails 5 support
data/Gemfile.lock CHANGED
@@ -1,65 +1,66 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cypress-rails (0.5.4)
4
+ cypress-rails (0.6.0)
5
5
  puma (>= 3.8.0)
6
6
  railties (>= 5.2.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- actionpack (7.0.3)
12
- actionview (= 7.0.3)
13
- activesupport (= 7.0.3)
14
- rack (~> 2.0, >= 2.2.0)
11
+ actionpack (7.0.5)
12
+ actionview (= 7.0.5)
13
+ activesupport (= 7.0.5)
14
+ rack (~> 2.0, >= 2.2.4)
15
15
  rack-test (>= 0.6.3)
16
16
  rails-dom-testing (~> 2.0)
17
17
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
18
- actionview (7.0.3)
19
- activesupport (= 7.0.3)
18
+ actionview (7.0.5)
19
+ activesupport (= 7.0.5)
20
20
  builder (~> 3.1)
21
21
  erubi (~> 1.4)
22
22
  rails-dom-testing (~> 2.0)
23
23
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
24
- activesupport (7.0.3)
24
+ activesupport (7.0.5)
25
25
  concurrent-ruby (~> 1.0, >= 1.0.2)
26
26
  i18n (>= 1.6, < 2)
27
27
  minitest (>= 5.1)
28
28
  tzinfo (~> 2.0)
29
29
  ast (2.4.2)
30
30
  builder (3.2.4)
31
- concurrent-ruby (1.1.10)
31
+ concurrent-ruby (1.2.2)
32
32
  crass (1.0.6)
33
- erubi (1.10.0)
34
- i18n (1.10.0)
33
+ erubi (1.12.0)
34
+ i18n (1.14.1)
35
35
  concurrent-ruby (~> 1.0)
36
- loofah (2.18.0)
36
+ loofah (2.21.3)
37
37
  crass (~> 1.0.2)
38
- nokogiri (>= 1.5.9)
38
+ nokogiri (>= 1.12.0)
39
39
  method_source (1.0.0)
40
- mini_portile2 (2.8.0)
40
+ mini_portile2 (2.8.2)
41
41
  minitest (5.15.0)
42
- nio4r (2.5.8)
43
- nokogiri (1.13.6)
44
- mini_portile2 (~> 2.8.0)
42
+ nio4r (2.5.9)
43
+ nokogiri (1.15.2)
44
+ mini_portile2 (~> 2.8.2)
45
45
  racc (~> 1.4)
46
46
  parallel (1.22.1)
47
47
  parser (3.1.2.0)
48
48
  ast (~> 2.4.1)
49
- puma (5.6.4)
49
+ puma (6.3.0)
50
50
  nio4r (~> 2.0)
51
- racc (1.6.0)
52
- rack (2.2.3)
53
- rack-test (1.1.0)
54
- rack (>= 1.0, < 3)
51
+ racc (1.6.2)
52
+ rack (2.2.7)
53
+ rack-test (2.1.0)
54
+ rack (>= 1.3)
55
55
  rails-dom-testing (2.0.3)
56
56
  activesupport (>= 4.2.0)
57
57
  nokogiri (>= 1.6)
58
- rails-html-sanitizer (1.4.2)
59
- loofah (~> 2.3)
60
- railties (7.0.3)
61
- actionpack (= 7.0.3)
62
- activesupport (= 7.0.3)
58
+ rails-html-sanitizer (1.6.0)
59
+ loofah (~> 2.21)
60
+ nokogiri (~> 1.14)
61
+ railties (7.0.5)
62
+ actionpack (= 7.0.5)
63
+ activesupport (= 7.0.5)
63
64
  method_source
64
65
  rake (>= 12.2)
65
66
  thor (~> 1.0)
@@ -86,11 +87,11 @@ GEM
86
87
  standard (1.12.1)
87
88
  rubocop (= 1.29.1)
88
89
  rubocop-performance (= 1.13.3)
89
- thor (1.2.1)
90
- tzinfo (2.0.4)
90
+ thor (1.2.2)
91
+ tzinfo (2.0.6)
91
92
  concurrent-ruby (~> 1.0)
92
93
  unicode-display_width (2.1.0)
93
- zeitwerk (2.5.4)
94
+ zeitwerk (2.6.8)
94
95
 
95
96
  PLATFORMS
96
97
  ruby
data/README.md CHANGED
@@ -50,7 +50,7 @@ Once installed, you'll want to run:
50
50
  $ rake cypress:init
51
51
  ```
52
52
 
53
- This will override a few configurations in your `cypress.json` configuration
53
+ This will override a few configurations in your `cypress.config.js` configuration
54
54
  file.
55
55
 
56
56
  ## Usage
@@ -161,7 +161,7 @@ preferred environment variables project-wide using a tool like
161
161
  the Rails test server on
162
162
  * **CYPRESS_RAILS_BASE_PATH** (default: `"/"`) the base path for all Cypress's
163
163
  requests to the app (e.g. via `cy.visit()`). If you've customized your
164
- `baseUrl` setting (e.g. in `cypress.json`), you'll need to duplicate it with
164
+ `baseUrl` setting (e.g. in `cypress.config.js`), you'll need to duplicate it with
165
165
  this environment variable
166
166
  * **CYPRESS_RAILS_TRANSACTIONAL_SERVER** (default: `true`) when true, will start
167
167
  a transaction on all database connections before launching the server. In
@@ -11,6 +11,7 @@ Gem::Specification.new do |spec|
11
11
  spec.summary = "Helps you write Cypress tests of your Rails app"
12
12
  spec.homepage = "https://github.com/testdouble/cypress-rails"
13
13
  spec.license = "MIT"
14
+ spec.metadata["rubygems_mfa_required"] = "true"
14
15
 
15
16
  # Specify which files should be added to the gem when it is released.
16
17
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -1,30 +1,32 @@
1
1
  module CypressRails
2
2
  class Init
3
- DEFAULT_CONFIG = {
4
- "screenshotsFolder" => "tmp/cypress_screenshots",
5
- "videosFolder" => "tmp/cypress_videos",
6
- "trashAssetsBeforeRuns" => false
7
- }
3
+ DEFAULT_CONFIG = <<~JS
4
+ const { defineConfig } = require('cypress')
8
5
 
9
- def call(dir = Dir.pwd)
10
- config_path = File.join(dir, "cypress.json")
11
- json = JSON.pretty_generate(determine_new_config(config_path))
12
- File.write(config_path, json)
13
- puts "Cypress config (re)initialized in #{config_path}"
14
- end
15
-
16
- private
6
+ module.exports = defineConfig({
7
+ // setupNodeEvents can be defined in either
8
+ // the e2e or component configuration
9
+ e2e: {
10
+ setupNodeEvents(on, config) {
11
+ on('before:browser:launch', (browser = {}, launchOptions) => {
12
+ /* ... */
13
+ })
14
+ },
15
+ },
16
+ screenshotsFolder: "tmp/cypress_screenshots",
17
+ videosFolder: "tmp/cypress_videos",
18
+ trashAssetsBeforeRuns: false
19
+ })
20
+ JS
17
21
 
18
- def determine_new_config(config_path)
19
- if File.exist?(config_path)
20
- merge_existing_with_defaults(config_path)
22
+ def call(dir = Dir.pwd)
23
+ config_path = File.join(dir, "cypress.config.js")
24
+ if !File.exist?(config_path)
25
+ File.write(config_path, DEFAULT_CONFIG)
26
+ puts "Cypress config initialized in `#{config_path}'"
21
27
  else
22
- DEFAULT_CONFIG
28
+ warn "Cypress config already exists in `#{config_path}'. Skipping."
23
29
  end
24
30
  end
25
-
26
- def merge_existing_with_defaults(json_path)
27
- JSON.parse(File.read(json_path)).merge(DEFAULT_CONFIG).sort.to_h
28
- end
29
31
  end
30
32
  end
@@ -1,7 +1,7 @@
1
1
  require "pathname"
2
2
  CLI = Pathname.new(File.dirname(__FILE__)).join("../../exe/cypress-rails")
3
3
 
4
- desc "Initialize cypress.json"
4
+ desc "Initialize cypress.config.js"
5
5
  task :"cypress:init" do
6
6
  system "#{CLI} init"
7
7
  end
@@ -12,18 +12,18 @@ module CypressRails
12
12
 
13
13
  conf = Rack::Handler::Puma.config(app, options)
14
14
  conf.clamp
15
- events = ::Puma::Events.stdio
15
+ logger = (defined?(::Puma::LogWriter) ? ::Puma::LogWriter : ::Puma::Events).stdio
16
16
 
17
17
  puma_ver = Gem::Version.new(::Puma::Const::PUMA_VERSION)
18
18
  require_relative "patches/puma_ssl" if (Gem::Version.new("4.0.0")...Gem::Version.new("4.1.0")).cover? puma_ver
19
19
 
20
- events.log "Starting Puma..."
21
- events.log "* Version #{::Puma::Const::PUMA_VERSION} , codename: #{::Puma::Const::CODE_NAME}"
22
- events.log "* Min threads: #{conf.options[:min_threads]}, max threads: #{conf.options[:max_threads]}"
20
+ logger.log "Starting Puma..."
21
+ logger.log "* Version #{::Puma::Const::PUMA_VERSION} , codename: #{::Puma::Const::CODE_NAME}"
22
+ logger.log "* Min threads: #{conf.options[:min_threads]}, max threads: #{conf.options[:max_threads]}"
23
23
 
24
- ::Puma::Server.new(conf.app, events, conf.options).tap do |s|
25
- s.binder.parse conf.options[:binds], s.events
26
- s.min_threads, s.max_threads = conf.options[:min_threads], conf.options[:max_threads]
24
+ ::Puma::Server.new(conf.app, defined?(::Puma::LogWriter) ? nil : logger, conf.options).tap do |s|
25
+ s.binder.parse conf.options[:binds], s.respond_to?(:log_writer) ? s.log_writer : s.events
26
+ s.min_threads, s.max_threads = conf.options[:min_threads], conf.options[:max_threads] if s.respond_to?(:min_threads=)
27
27
  end.run.join
28
28
  end
29
29
  end
@@ -1,3 +1,3 @@
1
1
  module CypressRails
2
- VERSION = "0.5.4"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -10,6 +10,7 @@ yarn install
10
10
 
11
11
  # test a normal test run
12
12
  bundle exec rake db:test:prepare
13
+ NODE_OPTIONS=--openssl-legacy-provider RAILS_ENV=test bundle exec rake assets:precompile
13
14
  bundle exec rake cypress:run
14
15
 
15
16
  # test that passing options works (by printing help)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cypress-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Searls
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-05-20 00:00:00.000000000 Z
11
+ date: 2023-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -142,7 +142,8 @@ files:
142
142
  homepage: https://github.com/testdouble/cypress-rails
143
143
  licenses:
144
144
  - MIT
145
- metadata: {}
145
+ metadata:
146
+ rubygems_mfa_required: 'true'
146
147
  post_install_message:
147
148
  rdoc_options: []
148
149
  require_paths:
@@ -158,7 +159,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
158
159
  - !ruby/object:Gem::Version
159
160
  version: '0'
160
161
  requirements: []
161
- rubygems_version: 3.3.6
162
+ rubygems_version: 3.4.10
162
163
  signing_key:
163
164
  specification_version: 4
164
165
  summary: Helps you write Cypress tests of your Rails app