-
-
\ No newline at end of file
diff --git a/specs_e2e/rails_4_2/bin/bundle b/specs_e2e/rails_4_2/bin/bundle
deleted file mode 100755
index 66e9889..0000000
--- a/specs_e2e/rails_4_2/bin/bundle
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env ruby
-ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
-load Gem.bin_path('bundler', 'bundle')
diff --git a/specs_e2e/rails_4_2/bin/rails b/specs_e2e/rails_4_2/bin/rails
deleted file mode 100755
index 5191e69..0000000
--- a/specs_e2e/rails_4_2/bin/rails
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/usr/bin/env ruby
-APP_PATH = File.expand_path('../../config/application', __FILE__)
-require_relative '../config/boot'
-require 'rails/commands'
diff --git a/specs_e2e/rails_4_2/bin/rake b/specs_e2e/rails_4_2/bin/rake
deleted file mode 100755
index 1724048..0000000
--- a/specs_e2e/rails_4_2/bin/rake
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/usr/bin/env ruby
-require_relative '../config/boot'
-require 'rake'
-Rake.application.run
diff --git a/specs_e2e/rails_4_2/bin/setup b/specs_e2e/rails_4_2/bin/setup
deleted file mode 100755
index acdb2c1..0000000
--- a/specs_e2e/rails_4_2/bin/setup
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env ruby
-require 'pathname'
-
-# path to your application root.
-APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
-
-Dir.chdir APP_ROOT do
- # This script is a starting point to setup your application.
- # Add necessary setup steps to this file:
-
- puts "== Installing dependencies =="
- system "gem install bundler --conservative"
- system "bundle check || bundle install"
-
- # puts "\n== Copying sample files =="
- # unless File.exist?("config/database.yml")
- # system "cp config/database.yml.sample config/database.yml"
- # end
-
- puts "\n== Preparing database =="
- system "bin/rake db:setup"
-
- puts "\n== Removing old logs and tempfiles =="
- system "rm -f log/*"
- system "rm -rf tmp/cache"
-
- puts "\n== Restarting application server =="
- system "touch tmp/restart.txt"
-end
diff --git a/specs_e2e/rails_4_2/config/application.rb b/specs_e2e/rails_4_2/config/application.rb
deleted file mode 100644
index e6e9c55..0000000
--- a/specs_e2e/rails_4_2/config/application.rb
+++ /dev/null
@@ -1,32 +0,0 @@
-require File.expand_path('../boot', __FILE__)
-
-require "rails"
-# Pick the frameworks you want:
-require "active_model/railtie"
-require "active_job/railtie"
-# require "active_record/railtie"
-require "action_controller/railtie"
-require "action_mailer/railtie"
-require "action_view/railtie"
-# require "sprockets/railtie"
-# require "rails/test_unit/railtie"
-
-# Require the gems listed in Gemfile, including any gems
-# you've limited to :test, :development, or :production.
-Bundler.require(*Rails.groups)
-
-module Rails42X
- class Application < Rails::Application
- # Settings in config/environments/* take precedence over those specified here.
- # Application configuration should go into files in config/initializers
- # -- all .rb files in that directory are automatically loaded.
-
- # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
- # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
- # config.time_zone = 'Central Time (US & Canada)'
-
- # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
- # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
- # config.i18n.default_locale = :de
- end
-end
diff --git a/specs_e2e/rails_4_2/config/boot.rb b/specs_e2e/rails_4_2/config/boot.rb
deleted file mode 100644
index 6b750f0..0000000
--- a/specs_e2e/rails_4_2/config/boot.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
-
-require 'bundler/setup' # Set up gems listed in the Gemfile.
diff --git a/specs_e2e/rails_4_2/config/environments/development.rb b/specs_e2e/rails_4_2/config/environments/development.rb
deleted file mode 100644
index 61a2a70..0000000
--- a/specs_e2e/rails_4_2/config/environments/development.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-Rails.application.configure do
- # Settings specified here will take precedence over those in config/application.rb.
-
- # In the development environment your application's code is reloaded on
- # every request. This slows down response time but is perfect for development
- # since you don't have to restart the web server when you make code changes.
- config.cache_classes = false
-
- # Do not eager load code on boot.
- config.eager_load = false
-
- # Show full error reports and disable caching.
- config.consider_all_requests_local = true
- config.action_controller.perform_caching = false
-
- # Don't care if the mailer can't send.
- config.action_mailer.raise_delivery_errors = false
-
- # Print deprecation notices to the Rails logger.
- config.active_support.deprecation = :log
-
-
- # Raises error for missing translations
- # config.action_view.raise_on_missing_translations = true
-end
diff --git a/specs_e2e/rails_4_2/config/environments/production.rb b/specs_e2e/rails_4_2/config/environments/production.rb
deleted file mode 100644
index 2babca3..0000000
--- a/specs_e2e/rails_4_2/config/environments/production.rb
+++ /dev/null
@@ -1,64 +0,0 @@
-Rails.application.configure do
- # Settings specified here will take precedence over those in config/application.rb.
-
- # Code is not reloaded between requests.
- config.cache_classes = true
-
- # Eager load code on boot. This eager loads most of Rails and
- # your application in memory, allowing both threaded web servers
- # and those relying on copy on write to perform better.
- # Rake tasks automatically ignore this option for performance.
- config.eager_load = true
-
- # Full error reports are disabled and caching is turned on.
- config.consider_all_requests_local = false
- config.action_controller.perform_caching = true
-
- # Enable Rack::Cache to put a simple HTTP cache in front of your application
- # Add `rack-cache` to your Gemfile before enabling this.
- # For large-scale production use, consider using a caching reverse proxy like
- # NGINX, varnish or squid.
- # config.action_dispatch.rack_cache = true
-
- # Disable serving static files from the `/public` folder by default since
- # Apache or NGINX already handles this.
- config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
-
-
- # Specifies the header that your server uses for sending files.
- # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
- # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
-
- # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
- # config.force_ssl = true
-
- # Use the lowest log level to ensure availability of diagnostic information
- # when problems arise.
- config.log_level = :debug
-
- # Prepend all log lines with the following tags.
- # config.log_tags = [ :subdomain, :uuid ]
-
- # Use a different logger for distributed setups.
- # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
-
- # Use a different cache store in production.
- # config.cache_store = :mem_cache_store
-
- # Enable serving of images, stylesheets, and JavaScripts from an asset server.
- # config.action_controller.asset_host = 'http://assets.example.com'
-
- # Ignore bad email addresses and do not raise email delivery errors.
- # Set this to true and configure the email server for immediate delivery to raise delivery errors.
- # config.action_mailer.raise_delivery_errors = false
-
- # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
- # the I18n.default_locale when a translation cannot be found).
- config.i18n.fallbacks = true
-
- # Send deprecation notices to registered listeners.
- config.active_support.deprecation = :notify
-
- # Use default logging formatter so that PID and timestamp are not suppressed.
- config.log_formatter = ::Logger::Formatter.new
-end
diff --git a/specs_e2e/rails_4_2/config/environments/test.rb b/specs_e2e/rails_4_2/config/environments/test.rb
deleted file mode 100644
index 6aa0bd0..0000000
--- a/specs_e2e/rails_4_2/config/environments/test.rb
+++ /dev/null
@@ -1,42 +0,0 @@
-Rails.application.configure do
- # Settings specified here will take precedence over those in config/application.rb.
-
- # The test environment is used exclusively to run your application's
- # test suite. You never need to work with it otherwise. Remember that
- # your test database is "scratch space" for the test suite and is wiped
- # and recreated between test runs. Don't rely on the data there!
- config.cache_classes = ENV['CI'].present?
-
- # Do not eager load code on boot. This avoids loading your whole application
- # just for the purpose of running a single test. If you are using a tool that
- # preloads Rails for running tests, you may have to set it to true.
- config.eager_load = false
-
- # Configure static file server for tests with Cache-Control for performance.
- config.serve_static_files = true
- config.static_cache_control = 'public, max-age=3600'
-
- # Show full error reports and disable caching.
- config.consider_all_requests_local = true
- config.action_controller.perform_caching = false
-
- # Raise exceptions instead of rendering exception templates.
- config.action_dispatch.show_exceptions = false
-
- # Disable request forgery protection in test environment.
- config.action_controller.allow_forgery_protection = false
-
- # Tell Action Mailer not to deliver emails to the real world.
- # The :test delivery method accumulates sent emails in the
- # ActionMailer::Base.deliveries array.
- config.action_mailer.delivery_method = :test
-
- # Randomize the order test cases are executed.
- config.active_support.test_order = :random
-
- # Print deprecation notices to the stderr.
- config.active_support.deprecation = :stderr
-
- # Raises error for missing translations
- # config.action_view.raise_on_missing_translations = true
-end
diff --git a/specs_e2e/rails_4_2/config/initializers/backtrace_silencers.rb b/specs_e2e/rails_4_2/config/initializers/backtrace_silencers.rb
deleted file mode 100644
index 59385cd..0000000
--- a/specs_e2e/rails_4_2/config/initializers/backtrace_silencers.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-# Be sure to restart your server when you modify this file.
-
-# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
-# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
-
-# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
-# Rails.backtrace_cleaner.remove_silencers!
diff --git a/specs_e2e/rails_4_2/config/initializers/cookies_serializer.rb b/specs_e2e/rails_4_2/config/initializers/cookies_serializer.rb
deleted file mode 100644
index 7f70458..0000000
--- a/specs_e2e/rails_4_2/config/initializers/cookies_serializer.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-# Be sure to restart your server when you modify this file.
-
-Rails.application.config.action_dispatch.cookies_serializer = :json
diff --git a/specs_e2e/rails_4_2/config/initializers/filter_parameter_logging.rb b/specs_e2e/rails_4_2/config/initializers/filter_parameter_logging.rb
deleted file mode 100644
index 4a994e1..0000000
--- a/specs_e2e/rails_4_2/config/initializers/filter_parameter_logging.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-# Be sure to restart your server when you modify this file.
-
-# Configure sensitive parameters which will be filtered from the log file.
-Rails.application.config.filter_parameters += [:password]
diff --git a/specs_e2e/rails_4_2/config/initializers/mime_types.rb b/specs_e2e/rails_4_2/config/initializers/mime_types.rb
deleted file mode 100644
index dc18996..0000000
--- a/specs_e2e/rails_4_2/config/initializers/mime_types.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-# Be sure to restart your server when you modify this file.
-
-# Add new mime types for use in respond_to blocks:
-# Mime::Type.register "text/richtext", :rtf
diff --git a/specs_e2e/rails_4_2/config/initializers/session_store.rb b/specs_e2e/rails_4_2/config/initializers/session_store.rb
deleted file mode 100644
index cabe809..0000000
--- a/specs_e2e/rails_4_2/config/initializers/session_store.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-# Be sure to restart your server when you modify this file.
-
-Rails.application.config.session_store :cookie_store, key: '_rails_4_2_session'
diff --git a/specs_e2e/rails_4_2/config/initializers/to_time_preserves_timezone.rb b/specs_e2e/rails_4_2/config/initializers/to_time_preserves_timezone.rb
deleted file mode 100644
index 8674be3..0000000
--- a/specs_e2e/rails_4_2/config/initializers/to_time_preserves_timezone.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-# Be sure to restart your server when you modify this file.
-
-# Preserve the timezone of the receiver when calling to `to_time`.
-# Ruby 2.4 will change the behavior of `to_time` to preserve the timezone
-# when converting to an instance of `Time` instead of the previous behavior
-# of converting to the local system timezone.
-#
-# Rails 5.0 introduced this config option so that apps made with earlier
-# versions of Rails are not affected when upgrading.
-ActiveSupport.to_time_preserves_timezone = true
diff --git a/specs_e2e/rails_4_2/config/initializers/wrap_parameters.rb b/specs_e2e/rails_4_2/config/initializers/wrap_parameters.rb
deleted file mode 100644
index b81ea74..0000000
--- a/specs_e2e/rails_4_2/config/initializers/wrap_parameters.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# Be sure to restart your server when you modify this file.
-
-# This file contains settings for ActionController::ParamsWrapper which
-# is enabled by default.
-
-# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
-ActiveSupport.on_load(:action_controller) do
- wrap_parameters format: [:json] if respond_to?(:wrap_parameters)
-end
diff --git a/specs_e2e/rails_4_2/config/locales/en.yml b/specs_e2e/rails_4_2/config/locales/en.yml
deleted file mode 100644
index 0653957..0000000
--- a/specs_e2e/rails_4_2/config/locales/en.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-# Files in the config/locales directory are used for internationalization
-# and are automatically loaded by Rails. If you want to use locales other
-# than English, add the necessary files in this directory.
-#
-# To use the locales, use `I18n.t`:
-#
-# I18n.t 'hello'
-#
-# In views, this is aliased to just `t`:
-#
-# <%= t('hello') %>
-#
-# To use a different locale, set it with `I18n.locale`:
-#
-# I18n.locale = :es
-#
-# This would use the information in config/locales/es.yml.
-#
-# To learn more, please read the Rails Internationalization guide
-# available at http://guides.rubyonrails.org/i18n.html.
-
-en:
- hello: "Hello world"
diff --git a/specs_e2e/rails_4_2/config/routes.rb b/specs_e2e/rails_4_2/config/routes.rb
deleted file mode 100644
index b6bf0c5..0000000
--- a/specs_e2e/rails_4_2/config/routes.rb
+++ /dev/null
@@ -1,61 +0,0 @@
-Rails.application.routes.draw do
- get 'using_vcr/index'
-
- # The priority is based upon order of creation: first created -> highest priority.
- # See how all your routes lay out with "rake routes".
-
- # You can have the root of your site routed with "root"
- root 'welcome#index'
-
- get 'using_vcr/:action', to: 'using_vcr#:action'
-
-
- # Example of regular route:
- # get 'products/:id' => 'catalog#view'
-
- # Example of named route that can be invoked with purchase_url(id: product.id)
- # get 'products/:id/purchase' => 'catalog#purchase', as: :purchase
-
- # Example resource route (maps HTTP verbs to controller actions automatically):
- # resources :products
-
- # Example resource route with options:
- # resources :products do
- # member do
- # get 'short'
- # post 'toggle'
- # end
- #
- # collection do
- # get 'sold'
- # end
- # end
-
- # Example resource route with sub-resources:
- # resources :products do
- # resources :comments, :sales
- # resource :seller
- # end
-
- # Example resource route with more complex sub-resources:
- # resources :products do
- # resources :comments
- # resources :sales do
- # get 'recent', on: :collection
- # end
- # end
-
- # Example resource route with concerns:
- # concern :toggleable do
- # post 'toggle'
- # end
- # resources :posts, concerns: :toggleable
- # resources :photos, concerns: :toggleable
-
- # Example resource route within a namespace:
- # namespace :admin do
- # # Directs /admin/products/* to Admin::ProductsController
- # # (app/controllers/admin/products_controller.rb)
- # resources :products
- # end
-end
diff --git a/specs_e2e/rails_4_2/config/secrets.yml b/specs_e2e/rails_4_2/config/secrets.yml
deleted file mode 100644
index ae72576..0000000
--- a/specs_e2e/rails_4_2/config/secrets.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-# Be sure to restart your server when you modify this file.
-
-# Your secret key is used for verifying the integrity of signed cookies.
-# If you change this key, all old signed cookies will become invalid!
-
-# Make sure the secret is at least 30 characters and all random,
-# no regular words or you'll be exposed to dictionary attacks.
-# You can use `rake secret` to generate a secure secret key.
-
-# Make sure the secrets in this file are kept private
-# if you're sharing your code publicly.
-
-development:
- secret_key_base: adfe5a1fe4a9da0cd84475395507664689b981c8059a1e3dabc7ad159a89a31d41e54811832c5a70bce77529ad3d601fd4f4051c7448349d52b2becd84d07d17
-
-test:
- secret_key_base: 546b4b752cc98c06016597d26714a81e705e8c18de9a1f94166a042bc170da21a4a905205c67b82de423b6648b779980ee161a61f820e172b88dc2dafc0abbeb
-
-# Do not keep production secrets in the repository,
-# instead read values from the environment.
-production:
- secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
diff --git a/specs_e2e/rails_4_2/package.json b/specs_e2e/rails_4_2/package.json
deleted file mode 100644
index 612aba8..0000000
--- a/specs_e2e/rails_4_2/package.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "name": "rails_4_2",
- "version": "1.0.0",
- "main": "index.js",
- "license": "MIT",
- "devDependencies": {
- "@playwright/test": "^1.40.1",
- "cypress": "^10.11.0",
- "cypress-on-rails": "file:../../plugin",
- "playwright": "^1.40.1"
- }
-}
diff --git a/specs_e2e/rails_4_2/playwright-report/index.html b/specs_e2e/rails_4_2/playwright-report/index.html
deleted file mode 100644
index d069452..0000000
--- a/specs_e2e/rails_4_2/playwright-report/index.html
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
-
-
-
-
- Playwright Test Report
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/specs_e2e/rails_4_2/public/favicon.ico b/specs_e2e/rails_4_2/public/favicon.ico
deleted file mode 100644
index e69de29..0000000
diff --git a/specs_e2e/rails_4_2/public/robots.txt b/specs_e2e/rails_4_2/public/robots.txt
deleted file mode 100644
index 3c9c7c0..0000000
--- a/specs_e2e/rails_4_2/public/robots.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-# See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
-#
-# To ban all spiders from the entire site uncomment the next two lines:
-# User-agent: *
-# Disallow: /
diff --git a/specs_e2e/rails_4_2/spec/fixtures/vcr_cassettes/cats.yml b/specs_e2e/rails_4_2/spec/fixtures/vcr_cassettes/cats.yml
deleted file mode 100644
index 8626b3f..0000000
--- a/specs_e2e/rails_4_2/spec/fixtures/vcr_cassettes/cats.yml
+++ /dev/null
@@ -1,63 +0,0 @@
----
-http_interactions:
-- request:
- method: get
- uri: https://cat-fact.herokuapp.com/facts
- body:
- encoding: US-ASCII
- string: ''
- headers:
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- User-Agent:
- - Ruby
- Host:
- - cat-fact.herokuapp.com
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - Cowboy
- Report-To:
- - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1704261545&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&s=OabIZbJae2naQpkmA6oM8tyC0dn4yWUtvOVjuyytaRg%3D"}]}'
- Reporting-Endpoints:
- - heroku-nel=https://nel.heroku.com/reports?ts=1704261545&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&s=OabIZbJae2naQpkmA6oM8tyC0dn4yWUtvOVjuyytaRg%3D
- Nel:
- - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}'
- Connection:
- - keep-alive
- X-Powered-By:
- - Express
- Access-Control-Allow-Origin:
- - "*"
- Content-Type:
- - application/json; charset=utf-8
- Content-Length:
- - '1877'
- Etag:
- - W/"755-h8iGk8b461dj2B2tvSoMjrc8cAA"
- Set-Cookie:
- - connect.sid=s%3ASQfrvsPQGDLjbr1QrsrgV8BwZQptae4i.6BlC7zySZLgqSg%2BRmO6edW%2FxM6WR%2FJ9Xz2lD16D4nWo;
- Path=/; HttpOnly
- Date:
- - Wed, 03 Jan 2024 05:59:05 GMT
- Via:
- - 1.1 vegur
- body:
- encoding: UTF-8
- string: '[{"status":{"verified":true,"sentCount":1},"_id":"58e00b5f0aac31001185ed24","user":"58e007480aac31001185ecef","text":"When
- asked if her husband had any hobbies, Mary Todd Lincoln is said to have replied
- \"cats.\"","__v":0,"source":"user","updatedAt":"2020-08-23T20:20:01.611Z","type":"cat","createdAt":"2018-02-19T21:20:03.434Z","deleted":false,"used":false},{"status":{"verified":true,"feedback":"","sentCount":1},"_id":"5887e1d85c873e0011036889","user":"5a9ac18c7478810ea6c06381","text":"Cats
- make about 100 different sounds. Dogs make only about 10.","__v":0,"source":"user","updatedAt":"2020-09-03T16:39:39.578Z","type":"cat","createdAt":"2018-01-15T21:20:00.003Z","deleted":false,"used":true},{"status":{"verified":true,"sentCount":1},"_id":"58e008780aac31001185ed05","user":"58e007480aac31001185ecef","text":"Owning
- a cat can reduce the risk of stroke and heart attack by a third.","__v":0,"source":"user","updatedAt":"2020-08-23T20:20:01.611Z","type":"cat","createdAt":"2018-03-29T20:20:03.844Z","deleted":false,"used":false},{"status":{"verified":true,"sentCount":1},"_id":"58e009390aac31001185ed10","user":"58e007480aac31001185ecef","text":"Most
- cats are lactose intolerant, and milk can cause painful stomach cramps and
- diarrhea. It''s best to forego the milk and just give your cat the standard:
- clean, cool drinking water.","__v":0,"source":"user","updatedAt":"2020-08-23T20:20:01.611Z","type":"cat","createdAt":"2018-03-04T21:20:02.979Z","deleted":false,"used":false},{"status":{"verified":true,"sentCount":1},"_id":"58e00af60aac31001185ed1d","user":"58e007480aac31001185ecef","text":"It
- was illegal to slay cats in ancient Egypt, in large part because they provided
- the great service of controlling the rat population.","__v":0,"source":"user","updatedAt":"2020-09-16T20:20:04.164Z","type":"cat","createdAt":"2018-01-15T21:20:02.945Z","deleted":false,"used":true}]'
- recorded_at: Wed, 03 Jan 2024 05:59:06 GMT
-recorded_with: VCR 6.0.0
diff --git a/specs_e2e/rails_7_2/.gitattributes b/specs_e2e/rails_7_2/.gitattributes
new file mode 100644
index 0000000..8dc4323
--- /dev/null
+++ b/specs_e2e/rails_7_2/.gitattributes
@@ -0,0 +1,9 @@
+# See https://git-scm.com/docs/gitattributes for more about git attribute files.
+
+# Mark the database schema as having been generated.
+db/schema.rb linguist-generated
+
+# Mark any vendored files as having been vendored.
+vendor/* linguist-vendored
+config/credentials/*.yml.enc diff=rails_credentials
+config/credentials.yml.enc diff=rails_credentials
diff --git a/specs_e2e/rails_7_2/.gitignore b/specs_e2e/rails_7_2/.gitignore
new file mode 100644
index 0000000..d62f776
--- /dev/null
+++ b/specs_e2e/rails_7_2/.gitignore
@@ -0,0 +1,16 @@
+.bundle
+test/node_modules
+test/cypress.config.js
+test/playwright.config.js
+test/package.json
+test/yarn.lock
+test/cypress/
+test/playwright/
+test/playwright-report/
+config/initializers/cypress_on_rails.rb
+vendor/bundle
+db/*.sqlite3
+db/schema.rb
+tmp/*
+log/*
+specs_e2e/server.pid
diff --git a/specs_e2e/rails_7_2/.rubocop.yml b/specs_e2e/rails_7_2/.rubocop.yml
new file mode 100644
index 0000000..f9d86d4
--- /dev/null
+++ b/specs_e2e/rails_7_2/.rubocop.yml
@@ -0,0 +1,8 @@
+# Omakase Ruby styling for Rails
+inherit_gem: { rubocop-rails-omakase: rubocop.yml }
+
+# Overwrite or add rules to create your own house style
+#
+# # Use `[a, [b, c]]` not `[ a, [ b, c ] ]`
+# Layout/SpaceInsideArrayLiteralBrackets:
+# Enabled: false
diff --git a/specs_e2e/rails_7_2/Gemfile b/specs_e2e/rails_7_2/Gemfile
new file mode 100644
index 0000000..d4c3b7a
--- /dev/null
+++ b/specs_e2e/rails_7_2/Gemfile
@@ -0,0 +1,11 @@
+source "https://rubygems.org"
+
+gem "rails", "~> 7.2.2"
+gem "sqlite3", ">= 1.4"
+gem "puma", ">= 5.0"
+gem "bootsnap", require: false
+
+group :development, :test do
+ gem 'cypress-on-rails', path: '../../'
+ gem 'database_cleaner'
+end
diff --git a/specs_e2e/rails_4_2/Rakefile b/specs_e2e/rails_7_2/Rakefile
similarity index 75%
rename from specs_e2e/rails_4_2/Rakefile
rename to specs_e2e/rails_7_2/Rakefile
index ba6b733..9a5ea73 100644
--- a/specs_e2e/rails_4_2/Rakefile
+++ b/specs_e2e/rails_7_2/Rakefile
@@ -1,6 +1,6 @@
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
-require File.expand_path('../config/application', __FILE__)
+require_relative "config/application"
Rails.application.load_tasks
diff --git a/specs_e2e/rails_7_2/app/assets/stylesheets/application.css b/specs_e2e/rails_7_2/app/assets/stylesheets/application.css
new file mode 100644
index 0000000..288b9ab
--- /dev/null
+++ b/specs_e2e/rails_7_2/app/assets/stylesheets/application.css
@@ -0,0 +1,15 @@
+/*
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
+ * listed below.
+ *
+ * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
+ * vendor/assets/stylesheets directory can be referenced here using a relative path.
+ *
+ * You're free to add application-wide styles to this file and they'll appear at the bottom of the
+ * compiled file so the styles you add here take precedence over styles defined in any other CSS
+ * files in this directory. Styles in this file should be added after the last require_* statement.
+ * It is generally better to create a new file per style scope.
+ *
+ *= require_tree .
+ *= require_self
+ */
diff --git a/specs_e2e/rails_7_2/app/controllers/application_controller.rb b/specs_e2e/rails_7_2/app/controllers/application_controller.rb
new file mode 100644
index 0000000..0d95db2
--- /dev/null
+++ b/specs_e2e/rails_7_2/app/controllers/application_controller.rb
@@ -0,0 +1,4 @@
+class ApplicationController < ActionController::Base
+ # Only allow modern browsers supporting webp images, web push, badges, import maps, CSS nesting, and CSS :has.
+ allow_browser versions: :modern
+end
diff --git a/specs_e2e/rails_7_2/app/controllers/posts_controller.rb b/specs_e2e/rails_7_2/app/controllers/posts_controller.rb
new file mode 100644
index 0000000..fed5ab9
--- /dev/null
+++ b/specs_e2e/rails_7_2/app/controllers/posts_controller.rb
@@ -0,0 +1,58 @@
+class PostsController < ApplicationController
+ before_action :set_post, only: [:show, :edit, :update, :destroy]
+
+ # GET /posts
+ def index
+ @posts = Post.all
+ end
+
+ # GET /posts/1
+ def show
+ end
+
+ # GET /posts/new
+ def new
+ @post = Post.new
+ end
+
+ # GET /posts/1/edit
+ def edit
+ end
+
+ # POST /posts
+ def create
+ @post = Post.new(post_params)
+
+ if @post.save
+ redirect_to @post, notice: 'Post was successfully created.'
+ else
+ render :new
+ end
+ end
+
+ # PATCH/PUT /posts/1
+ def update
+ if @post.update(post_params)
+ redirect_to @post, notice: 'Post was successfully updated.'
+ else
+ render :edit
+ end
+ end
+
+ # DELETE /posts/1
+ def destroy
+ @post.destroy
+ redirect_to posts_url, notice: 'Post was successfully destroyed.'
+ end
+
+ private
+ # Use callbacks to share common setup or constraints between actions.
+ def set_post
+ @post = Post.find(params[:id])
+ end
+
+ # Only allow a trusted parameter "white list" through.
+ def post_params
+ params.require(:post).permit(:title, :body, :published)
+ end
+end
diff --git a/specs_e2e/rails_7_2/app/helpers/posts_helper.rb b/specs_e2e/rails_7_2/app/helpers/posts_helper.rb
new file mode 100644
index 0000000..a7b8cec
--- /dev/null
+++ b/specs_e2e/rails_7_2/app/helpers/posts_helper.rb
@@ -0,0 +1,2 @@
+module PostsHelper
+end
diff --git a/specs_e2e/rails_7_2/app/jobs/application_job.rb b/specs_e2e/rails_7_2/app/jobs/application_job.rb
new file mode 100644
index 0000000..d394c3d
--- /dev/null
+++ b/specs_e2e/rails_7_2/app/jobs/application_job.rb
@@ -0,0 +1,7 @@
+class ApplicationJob < ActiveJob::Base
+ # Automatically retry jobs that encountered a deadlock
+ # retry_on ActiveRecord::Deadlocked
+
+ # Most jobs are safe to ignore if the underlying records are no longer available
+ # discard_on ActiveJob::DeserializationError
+end
diff --git a/specs_e2e/rails_7_2/app/models/application_record.rb b/specs_e2e/rails_7_2/app/models/application_record.rb
new file mode 100644
index 0000000..b63caeb
--- /dev/null
+++ b/specs_e2e/rails_7_2/app/models/application_record.rb
@@ -0,0 +1,3 @@
+class ApplicationRecord < ActiveRecord::Base
+ primary_abstract_class
+end
diff --git a/specs_e2e/rails_7_2/app/models/post.rb b/specs_e2e/rails_7_2/app/models/post.rb
new file mode 100644
index 0000000..b2a8b46
--- /dev/null
+++ b/specs_e2e/rails_7_2/app/models/post.rb
@@ -0,0 +1,2 @@
+class Post < ApplicationRecord
+end
diff --git a/specs_e2e/rails_7_2/app/views/layouts/application.html.erb b/specs_e2e/rails_7_2/app/views/layouts/application.html.erb
new file mode 100644
index 0000000..6db513b
--- /dev/null
+++ b/specs_e2e/rails_7_2/app/views/layouts/application.html.erb
@@ -0,0 +1,22 @@
+
+
+
+ <%= content_for(:title) || "App" %>
+
+
+ <%= csrf_meta_tags %>
+ <%= csp_meta_tag %>
+
+ <%= yield :head %>
+
+
+
+
+
+ <%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
+
+
+
+ <%= yield %>
+
+
diff --git a/specs_e2e/rails_7_2/app/views/posts/_form.html.erb b/specs_e2e/rails_7_2/app/views/posts/_form.html.erb
new file mode 100644
index 0000000..6459998
--- /dev/null
+++ b/specs_e2e/rails_7_2/app/views/posts/_form.html.erb
@@ -0,0 +1,32 @@
+<%= form_with(model: post, local: true) do |form| %>
+ <% if post.errors.any? %>
+
+
<%= pluralize(post.errors.count, "error") %> prohibited this post from being saved:
+
+
+ <% post.errors.full_messages.each do |message| %>
+
+
+<%= link_to 'Edit', edit_post_path(@post) %> |
+<%= link_to 'Back', posts_path %>
diff --git a/specs_e2e/rails_7_2/bin/brakeman b/specs_e2e/rails_7_2/bin/brakeman
new file mode 100755
index 0000000..ace1c9b
--- /dev/null
+++ b/specs_e2e/rails_7_2/bin/brakeman
@@ -0,0 +1,7 @@
+#!/usr/bin/env ruby
+require "rubygems"
+require "bundler/setup"
+
+ARGV.unshift("--ensure-latest")
+
+load Gem.bin_path("brakeman", "brakeman")
diff --git a/specs_e2e/rails_7_2/bin/bundle b/specs_e2e/rails_7_2/bin/bundle
new file mode 100755
index 0000000..42c7fd7
--- /dev/null
+++ b/specs_e2e/rails_7_2/bin/bundle
@@ -0,0 +1,109 @@
+#!/usr/bin/env ruby
+# frozen_string_literal: true
+
+#
+# This file was generated by Bundler.
+#
+# The application 'bundle' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require "rubygems"
+
+m = Module.new do
+ module_function
+
+ def invoked_as_script?
+ File.expand_path($0) == File.expand_path(__FILE__)
+ end
+
+ def env_var_version
+ ENV["BUNDLER_VERSION"]
+ end
+
+ def cli_arg_version
+ return unless invoked_as_script? # don't want to hijack other binstubs
+ return unless "update".start_with?(ARGV.first || " ") # must be running `bundle update`
+ bundler_version = nil
+ update_index = nil
+ ARGV.each_with_index do |a, i|
+ if update_index && update_index.succ == i && a =~ Gem::Version::ANCHORED_VERSION_PATTERN
+ bundler_version = a
+ end
+ next unless a =~ /\A--bundler(?:[= ](#{Gem::Version::VERSION_PATTERN}))?\z/
+ bundler_version = $1
+ update_index = i
+ end
+ bundler_version
+ end
+
+ def gemfile
+ gemfile = ENV["BUNDLE_GEMFILE"]
+ return gemfile if gemfile && !gemfile.empty?
+
+ File.expand_path("../Gemfile", __dir__)
+ end
+
+ def lockfile
+ lockfile =
+ case File.basename(gemfile)
+ when "gems.rb" then gemfile.sub(/\.rb$/, ".locked")
+ else "#{gemfile}.lock"
+ end
+ File.expand_path(lockfile)
+ end
+
+ def lockfile_version
+ return unless File.file?(lockfile)
+ lockfile_contents = File.read(lockfile)
+ return unless lockfile_contents =~ /\n\nBUNDLED WITH\n\s{2,}(#{Gem::Version::VERSION_PATTERN})\n/
+ Regexp.last_match(1)
+ end
+
+ def bundler_requirement
+ @bundler_requirement ||=
+ env_var_version ||
+ cli_arg_version ||
+ bundler_requirement_for(lockfile_version)
+ end
+
+ def bundler_requirement_for(version)
+ return "#{Gem::Requirement.default}.a" unless version
+
+ bundler_gem_version = Gem::Version.new(version)
+
+ bundler_gem_version.approximate_recommendation
+ end
+
+ def load_bundler!
+ ENV["BUNDLE_GEMFILE"] ||= gemfile
+
+ activate_bundler
+ end
+
+ def activate_bundler
+ gem_error = activation_error_handling do
+ gem "bundler", bundler_requirement
+ end
+ return if gem_error.nil?
+ require_error = activation_error_handling do
+ require "bundler/version"
+ end
+ return if require_error.nil? && Gem::Requirement.new(bundler_requirement).satisfied_by?(Gem::Version.new(Bundler::VERSION))
+ warn "Activating bundler (#{bundler_requirement}) failed:\n#{gem_error.message}\n\nTo install the version of bundler this project requires, run `gem install bundler -v '#{bundler_requirement}'`"
+ exit 42
+ end
+
+ def activation_error_handling
+ yield
+ nil
+ rescue StandardError, LoadError => e
+ e
+ end
+end
+
+m.load_bundler!
+
+if m.invoked_as_script?
+ load Gem.bin_path("bundler", "bundle")
+end
diff --git a/specs_e2e/rails_7_2/bin/importmap b/specs_e2e/rails_7_2/bin/importmap
new file mode 100755
index 0000000..36502ab
--- /dev/null
+++ b/specs_e2e/rails_7_2/bin/importmap
@@ -0,0 +1,4 @@
+#!/usr/bin/env ruby
+
+require_relative "../config/application"
+require "importmap/commands"
diff --git a/specs_e2e/rails_7_2/bin/rails b/specs_e2e/rails_7_2/bin/rails
new file mode 100755
index 0000000..efc0377
--- /dev/null
+++ b/specs_e2e/rails_7_2/bin/rails
@@ -0,0 +1,4 @@
+#!/usr/bin/env ruby
+APP_PATH = File.expand_path("../config/application", __dir__)
+require_relative "../config/boot"
+require "rails/commands"
diff --git a/specs_e2e/rails_7_2/bin/rake b/specs_e2e/rails_7_2/bin/rake
new file mode 100755
index 0000000..4fbf10b
--- /dev/null
+++ b/specs_e2e/rails_7_2/bin/rake
@@ -0,0 +1,4 @@
+#!/usr/bin/env ruby
+require_relative "../config/boot"
+require "rake"
+Rake.application.run
diff --git a/specs_e2e/rails_7_2/bin/setup b/specs_e2e/rails_7_2/bin/setup
new file mode 100755
index 0000000..eb1e55e
--- /dev/null
+++ b/specs_e2e/rails_7_2/bin/setup
@@ -0,0 +1,37 @@
+#!/usr/bin/env ruby
+require "fileutils"
+
+APP_ROOT = File.expand_path("..", __dir__)
+APP_NAME = "app"
+
+def system!(*args)
+ system(*args, exception: true)
+end
+
+FileUtils.chdir APP_ROOT do
+ # This script is a way to set up or update your development environment automatically.
+ # This script is idempotent, so that you can run it at any time and get an expectable outcome.
+ # Add necessary setup steps to this file.
+
+ puts "== Installing dependencies =="
+ system! "gem install bundler --conservative"
+ system("bundle check") || system!("bundle install")
+
+ # puts "\n== Copying sample files =="
+ # unless File.exist?("config/database.yml")
+ # FileUtils.cp "config/database.yml.sample", "config/database.yml"
+ # end
+
+ puts "\n== Preparing database =="
+ system! "bin/rails db:prepare"
+
+ puts "\n== Removing old logs and tempfiles =="
+ system! "bin/rails log:clear tmp:clear"
+
+ puts "\n== Restarting application server =="
+ system! "bin/rails restart"
+
+ # puts "\n== Configuring puma-dev =="
+ # system "ln -nfs #{APP_ROOT} ~/.puma-dev/#{APP_NAME}"
+ # system "curl -Is https://#{APP_NAME}.test/up | head -n 1"
+end
diff --git a/specs_e2e/rails_4_2/config.ru b/specs_e2e/rails_7_2/config.ru
similarity index 56%
rename from specs_e2e/rails_4_2/config.ru
rename to specs_e2e/rails_7_2/config.ru
index bd83b25..4a3c09a 100644
--- a/specs_e2e/rails_4_2/config.ru
+++ b/specs_e2e/rails_7_2/config.ru
@@ -1,4 +1,6 @@
# This file is used by Rack-based servers to start the application.
-require ::File.expand_path('../config/environment', __FILE__)
+require_relative "config/environment"
+
run Rails.application
+Rails.application.load_server
diff --git a/specs_e2e/rails_7_2/config/application.rb b/specs_e2e/rails_7_2/config/application.rb
new file mode 100644
index 0000000..d138c14
--- /dev/null
+++ b/specs_e2e/rails_7_2/config/application.rb
@@ -0,0 +1,37 @@
+require_relative "boot"
+
+require 'logger'
+require 'rails'
+# Pick the frameworks you want:
+require 'active_model/railtie'
+require 'active_job/railtie'
+require 'active_record/railtie'
+require 'active_storage/engine'
+require 'action_controller/railtie'
+require 'action_text/engine'
+require 'action_view/railtie'
+require 'action_cable/engine'
+
+# Require the gems listed in Gemfile, including any gems
+# you've limited to :test, :development, or :production.
+Bundler.require(*Rails.groups)
+
+module App
+ class Application < Rails::Application
+ # Initialize configuration defaults for originally generated Rails version.
+ config.load_defaults 7.2
+
+ # Please, add to the `ignore` list any other `lib` subdirectories that do
+ # not contain `.rb` files, or that should not be reloaded or eager loaded.
+ # Common ones are `templates`, `generators`, or `middleware`, for example.
+ config.autoload_lib(ignore: %w[assets tasks])
+
+ # Configuration for the application, engines, and railties goes here.
+ #
+ # These settings can be overridden in specific environments using the files
+ # in config/environments, which are processed later.
+ #
+ # config.time_zone = "Central Time (US & Canada)"
+ # config.eager_load_paths << Rails.root.join("extras")
+ end
+end
diff --git a/specs_e2e/rails_7_2/config/boot.rb b/specs_e2e/rails_7_2/config/boot.rb
new file mode 100644
index 0000000..988a5dd
--- /dev/null
+++ b/specs_e2e/rails_7_2/config/boot.rb
@@ -0,0 +1,4 @@
+ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
+
+require "bundler/setup" # Set up gems listed in the Gemfile.
+require "bootsnap/setup" # Speed up boot time by caching expensive operations.
diff --git a/specs_e2e/rails_7_2/config/cable.yml b/specs_e2e/rails_7_2/config/cable.yml
new file mode 100644
index 0000000..f39dc04
--- /dev/null
+++ b/specs_e2e/rails_7_2/config/cable.yml
@@ -0,0 +1,10 @@
+development:
+ adapter: async
+
+test:
+ adapter: test
+
+production:
+ adapter: redis
+ url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %>
+ channel_prefix: app_production
diff --git a/specs_e2e/rails_7_2/config/credentials.yml.enc b/specs_e2e/rails_7_2/config/credentials.yml.enc
new file mode 100644
index 0000000..891c7ce
--- /dev/null
+++ b/specs_e2e/rails_7_2/config/credentials.yml.enc
@@ -0,0 +1 @@
+oh98nG3RVyvWel7DHqGddaOy5TmoEiIXCIGfOzYwUIQCFsuRCjPXjhyPUpC/tk2vFxYla7+v1KjMTrPn7lf1/FCwq0iY/bHKUVuOhkBgS8rg0ovhVnUq92HYwmWKPHsQgDrRQRoGgZzsFs6tCgl8oKTJ6bwy6GnaYU/a020vqqd0TOOJViDWqo+hEy+ZmhZROJcEJ5swjTq2tZtJIkkXT0n9ug/ezKXxu2f9ABZS7UexaQuc7ILOnHv1TZ0zTwVS5vDV5zm48315jZpwq86jK1i8fsgzjf3r9W1YumNMT4W/uKef5UJGbmS/okaSgA8DF37vyUi7nlcFtXuJrMHJThBpjV1eB+A3fMzCAAAxM9/oNfUQddbPjVlIk/9lb1R/5cBe0oz7QyemzpKx0FWfVncPlJd7--lRNQXXXdHpDiWyxY--uRorsjITTUQAzA1y/d9NZA==
\ No newline at end of file
diff --git a/specs_e2e/rails_7_2/config/database.yml b/specs_e2e/rails_7_2/config/database.yml
new file mode 100644
index 0000000..241a608
--- /dev/null
+++ b/specs_e2e/rails_7_2/config/database.yml
@@ -0,0 +1,32 @@
+# SQLite. Versions 3.8.0 and up are supported.
+# gem install sqlite3
+#
+# Ensure the SQLite 3 gem is defined in your Gemfile
+# gem "sqlite3"
+#
+default: &default
+ adapter: sqlite3
+ pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
+ timeout: 5000
+
+development:
+ <<: *default
+ database: db/development.sqlite3
+
+# Warning: The database defined as "test" will be erased and
+# re-generated from your development database when you run "rake".
+# Do not set this db to the same as development or production.
+test:
+ <<: *default
+ database: db/test.sqlite3
+
+
+# SQLite3 write its data on the local filesystem, as such it requires
+# persistent disks. If you are deploying to a managed service, you should
+# make sure it provides disk persistence, as many don't.
+#
+# Similarly, if you deploy your application as a Docker container, you must
+# ensure the database is located in a persisted volume.
+production:
+ <<: *default
+ # database: path/to/persistent/storage/production.sqlite3
diff --git a/specs_e2e/rails_4_2/config/environment.rb b/specs_e2e/rails_7_2/config/environment.rb
similarity index 64%
rename from specs_e2e/rails_4_2/config/environment.rb
rename to specs_e2e/rails_7_2/config/environment.rb
index ee8d90d..cac5315 100644
--- a/specs_e2e/rails_4_2/config/environment.rb
+++ b/specs_e2e/rails_7_2/config/environment.rb
@@ -1,5 +1,5 @@
# Load the Rails application.
-require File.expand_path('../application', __FILE__)
+require_relative "application"
# Initialize the Rails application.
Rails.application.initialize!
diff --git a/specs_e2e/rails_7_2/config/environments/development.rb b/specs_e2e/rails_7_2/config/environments/development.rb
new file mode 100644
index 0000000..00cfb15
--- /dev/null
+++ b/specs_e2e/rails_7_2/config/environments/development.rb
@@ -0,0 +1,54 @@
+require "active_support/core_ext/integer/time"
+
+Rails.application.configure do
+ # Settings specified here will take precedence over those in config/application.rb.
+
+ # In the development environment your application's code is reloaded any time
+ # it changes. This slows down response time but is perfect for development
+ # since you don't have to restart the web server when you make code changes.
+ config.enable_reloading = true
+
+ # Do not eager load code on boot.
+ config.eager_load = false
+
+ # Show full error reports.
+ config.consider_all_requests_local = true
+
+ # Enable server timing.
+ config.server_timing = true
+
+ # Enable/disable caching. By default caching is disabled.
+ # Run rails dev:cache to toggle caching.
+ if Rails.root.join("tmp/caching-dev.txt").exist?
+ config.action_controller.perform_caching = true
+ config.action_controller.enable_fragment_cache_logging = true
+
+ config.cache_store = :memory_store
+ config.public_file_server.headers = { "Cache-Control" => "public, max-age=#{2.days.to_i}" }
+ else
+ config.action_controller.perform_caching = false
+
+ config.cache_store = :null_store
+ end
+
+ # Store uploaded files on the local file system (see config/storage.yml for options).
+ config.active_storage.service = :local
+
+ # Print deprecation notices to the Rails logger.
+ config.active_support.deprecation = :log
+
+ # Raise exceptions for disallowed deprecations.
+ config.active_support.disallowed_deprecation = :raise
+
+ # Tell Active Support which deprecation messages to disallow.
+ config.active_support.disallowed_deprecation_warnings = []
+
+ # Raise an error on page load if there are pending migrations.
+ config.active_record.migration_error = :page_load
+
+ # Highlight code that triggered database queries in logs.
+ config.active_record.verbose_query_logs = true
+
+ # Highlight code that enqueued background job in logs.
+ config.active_job.verbose_enqueue_logs = true
+end
diff --git a/specs_e2e/rails_7_2/config/environments/production.rb b/specs_e2e/rails_7_2/config/environments/production.rb
new file mode 100644
index 0000000..bfc86e4
--- /dev/null
+++ b/specs_e2e/rails_7_2/config/environments/production.rb
@@ -0,0 +1,105 @@
+require "active_support/core_ext/integer/time"
+
+Rails.application.configure do
+ # Settings specified here will take precedence over those in config/application.rb.
+
+ # Code is not reloaded between requests.
+ config.enable_reloading = false
+
+ # Eager load code on boot. This eager loads most of Rails and
+ # your application in memory, allowing both threaded web servers
+ # and those relying on copy on write to perform better.
+ # Rake tasks automatically ignore this option for performance.
+ config.eager_load = true
+
+ # Full error reports are disabled and caching is turned on.
+ config.consider_all_requests_local = false
+ config.action_controller.perform_caching = true
+
+ # Ensures that a master key has been made available in ENV["RAILS_MASTER_KEY"], config/master.key, or an environment
+ # key such as config/credentials/production.key. This key is used to decrypt credentials (and other encrypted files).
+ # config.require_master_key = true
+
+ # Disable serving static files from `public/`, relying on NGINX/Apache to do so instead.
+ # config.public_file_server.enabled = false
+
+ # Compress CSS using a preprocessor.
+ # config.assets.css_compressor = :sass
+
+ # Do not fall back to assets pipeline if a precompiled asset is missed.
+ config.assets.compile = false
+
+ # Enable serving of images, stylesheets, and JavaScripts from an asset server.
+ # config.asset_host = "http://assets.example.com"
+
+ # Specifies the header that your server uses for sending files.
+ # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for Apache
+ # config.action_dispatch.x_sendfile_header = "X-Accel-Redirect" # for NGINX
+
+ # Store uploaded files on the local file system (see config/storage.yml for options).
+ config.active_storage.service = :local
+
+ # Mount Action Cable outside main process or domain.
+ # config.action_cable.mount_path = nil
+ # config.action_cable.url = "wss://example.com/cable"
+ # config.action_cable.allowed_request_origins = [ "http://example.com", /http:\/\/example.*/ ]
+
+ # Assume all access to the app is happening through a SSL-terminating reverse proxy.
+ # Can be used together with config.force_ssl for Strict-Transport-Security and secure cookies.
+ # config.assume_ssl = true
+
+ # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
+ config.force_ssl = true
+
+ # Skip http-to-https redirect for the default health check endpoint.
+ # config.ssl_options = { redirect: { exclude: ->(request) { request.path == "/up" } } }
+
+ # Log to STDOUT by default
+ config.logger = ActiveSupport::Logger.new(STDOUT)
+ .tap { |logger| logger.formatter = ::Logger::Formatter.new }
+ .then { |logger| ActiveSupport::TaggedLogging.new(logger) }
+
+ # Prepend all log lines with the following tags.
+ config.log_tags = [ :request_id ]
+
+ # "info" includes generic and useful information about system operation, but avoids logging too much
+ # information to avoid inadvertent exposure of personally identifiable information (PII). If you
+ # want to log everything, set the level to "debug".
+ config.log_level = ENV.fetch("RAILS_LOG_LEVEL", "info")
+
+ # Use a different cache store in production.
+ # config.cache_store = :mem_cache_store
+
+ # Use a real queuing backend for Active Job (and separate queues per environment).
+ # config.active_job.queue_adapter = :resque
+ # config.active_job.queue_name_prefix = "app_production"
+
+ # Disable caching for Action Mailer templates even if Action Controller
+ # caching is enabled.
+ config.action_mailer.perform_caching = false
+
+ # Ignore bad email addresses and do not raise email delivery errors.
+ # Set this to true and configure the email server for immediate delivery to raise delivery errors.
+ # config.action_mailer.raise_delivery_errors = false
+
+ # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
+ # the I18n.default_locale when a translation cannot be found).
+ config.i18n.fallbacks = true
+
+ # Don't log any deprecations.
+ config.active_support.report_deprecations = false
+
+ # Do not dump schema after migrations.
+ config.active_record.dump_schema_after_migration = false
+
+ # Only use :id for inspections in production.
+ config.active_record.attributes_for_inspect = [ :id ]
+
+ # Enable DNS rebinding protection and other `Host` header attacks.
+ # config.hosts = [
+ # "example.com", # Allow requests from example.com
+ # /.*\.example\.com/ # Allow requests from subdomains like `www.example.com`
+ # ]
+ # Skip DNS rebinding protection for the default health check endpoint.
+ # config.host_authorization = { exclude: ->(request) { request.path == "/up" } }
+end
diff --git a/specs_e2e/rails_7_2/config/environments/test.rb b/specs_e2e/rails_7_2/config/environments/test.rb
new file mode 100644
index 0000000..3b85487
--- /dev/null
+++ b/specs_e2e/rails_7_2/config/environments/test.rb
@@ -0,0 +1,45 @@
+require "active_support/core_ext/integer/time"
+
+# The test environment is used exclusively to run your application's
+# test suite. You never need to work with it otherwise. Remember that
+# your test database is "scratch space" for the test suite and is wiped
+# and recreated between test runs. Don't rely on the data there!
+
+Rails.application.configure do
+ # Settings specified here will take precedence over those in config/application.rb.
+
+ # While tests run files are not watched, reloading is not necessary.
+ config.enable_reloading = false
+
+ # Eager loading loads your entire application. When running a single test locally,
+ # this is usually not necessary, and can slow down your test suite. However, it's
+ # recommended that you enable it in continuous integration systems to ensure eager
+ # loading is working properly before deploying your code.
+ config.eager_load = ENV["CI"].present?
+
+ # Configure public file server for tests with Cache-Control for performance.
+ config.public_file_server.headers = { "Cache-Control" => "public, max-age=#{1.hour.to_i}" }
+
+ # Show full error reports and disable caching.
+ config.consider_all_requests_local = true
+ config.action_controller.perform_caching = false
+ config.cache_store = :null_store
+
+ # Render exception templates for rescuable exceptions and raise for other exceptions.
+ config.action_dispatch.show_exceptions = :rescuable
+
+ # Disable request forgery protection in test environment.
+ config.action_controller.allow_forgery_protection = false
+
+ # Store uploaded files on the local file system in a temporary directory.
+ config.active_storage.service = :test
+
+ # Print deprecation notices to the stderr.
+ config.active_support.deprecation = :stderr
+
+ # Raise exceptions for disallowed deprecations.
+ config.active_support.disallowed_deprecation = :raise
+
+ # Tell Active Support which deprecation messages to disallow.
+ config.active_support.disallowed_deprecation_warnings = []
+end
diff --git a/specs_e2e/rails_7_2/config/importmap.rb b/specs_e2e/rails_7_2/config/importmap.rb
new file mode 100644
index 0000000..909dfc5
--- /dev/null
+++ b/specs_e2e/rails_7_2/config/importmap.rb
@@ -0,0 +1,7 @@
+# Pin npm packages by running ./bin/importmap
+
+pin "application"
+pin "@hotwired/turbo-rails", to: "turbo.min.js"
+pin "@hotwired/stimulus", to: "stimulus.min.js"
+pin "@hotwired/stimulus-loading", to: "stimulus-loading.js"
+pin_all_from "app/javascript/controllers", under: "controllers"
diff --git a/specs_e2e/rails_7_2/config/initializers/content_security_policy.rb b/specs_e2e/rails_7_2/config/initializers/content_security_policy.rb
new file mode 100644
index 0000000..b3076b3
--- /dev/null
+++ b/specs_e2e/rails_7_2/config/initializers/content_security_policy.rb
@@ -0,0 +1,25 @@
+# Be sure to restart your server when you modify this file.
+
+# Define an application-wide content security policy.
+# See the Securing Rails Applications Guide for more information:
+# https://guides.rubyonrails.org/security.html#content-security-policy-header
+
+# Rails.application.configure do
+# config.content_security_policy do |policy|
+# policy.default_src :self, :https
+# policy.font_src :self, :https, :data
+# policy.img_src :self, :https, :data
+# policy.object_src :none
+# policy.script_src :self, :https
+# policy.style_src :self, :https
+# # Specify URI for violation reports
+# # policy.report_uri "/csp-violation-report-endpoint"
+# end
+#
+# # Generate session nonces for permitted importmap, inline scripts, and inline styles.
+# config.content_security_policy_nonce_generator = ->(request) { request.session.id.to_s }
+# config.content_security_policy_nonce_directives = %w(script-src style-src)
+#
+# # Report violations without enforcing the policy.
+# # config.content_security_policy_report_only = true
+# end
diff --git a/specs_e2e/rails_7_2/config/initializers/filter_parameter_logging.rb b/specs_e2e/rails_7_2/config/initializers/filter_parameter_logging.rb
new file mode 100644
index 0000000..c010b83
--- /dev/null
+++ b/specs_e2e/rails_7_2/config/initializers/filter_parameter_logging.rb
@@ -0,0 +1,8 @@
+# Be sure to restart your server when you modify this file.
+
+# Configure parameters to be partially matched (e.g. passw matches password) and filtered from the log file.
+# Use this to limit dissemination of sensitive information.
+# See the ActiveSupport::ParameterFilter documentation for supported notations and behaviors.
+Rails.application.config.filter_parameters += [
+ :passw, :email, :secret, :token, :_key, :crypt, :salt, :certificate, :otp, :ssn
+]
diff --git a/specs_e2e/rails_4_2/config/initializers/inflections.rb b/specs_e2e/rails_7_2/config/initializers/inflections.rb
similarity index 77%
rename from specs_e2e/rails_4_2/config/initializers/inflections.rb
rename to specs_e2e/rails_7_2/config/initializers/inflections.rb
index ac033bf..3860f65 100644
--- a/specs_e2e/rails_4_2/config/initializers/inflections.rb
+++ b/specs_e2e/rails_7_2/config/initializers/inflections.rb
@@ -4,13 +4,13 @@
# are locale specific, and you may define rules for as many different
# locales as you wish. All of these examples are active by default:
# ActiveSupport::Inflector.inflections(:en) do |inflect|
-# inflect.plural /^(ox)$/i, '\1en'
-# inflect.singular /^(ox)en/i, '\1'
-# inflect.irregular 'person', 'people'
+# inflect.plural /^(ox)$/i, "\\1en"
+# inflect.singular /^(ox)en/i, "\\1"
+# inflect.irregular "person", "people"
# inflect.uncountable %w( fish sheep )
# end
# These inflection rules are supported but not enabled by default:
# ActiveSupport::Inflector.inflections(:en) do |inflect|
-# inflect.acronym 'RESTful'
+# inflect.acronym "RESTful"
# end
diff --git a/specs_e2e/rails_7_2/config/initializers/permissions_policy.rb b/specs_e2e/rails_7_2/config/initializers/permissions_policy.rb
new file mode 100644
index 0000000..7db3b95
--- /dev/null
+++ b/specs_e2e/rails_7_2/config/initializers/permissions_policy.rb
@@ -0,0 +1,13 @@
+# Be sure to restart your server when you modify this file.
+
+# Define an application-wide HTTP permissions policy. For further
+# information see: https://developers.google.com/web/updates/2018/06/feature-policy
+
+# Rails.application.config.permissions_policy do |policy|
+# policy.camera :none
+# policy.gyroscope :none
+# policy.microphone :none
+# policy.usb :none
+# policy.fullscreen :self
+# policy.payment :self, "https://secure.example.com"
+# end
diff --git a/specs_e2e/rails_7_2/config/locales/en.yml b/specs_e2e/rails_7_2/config/locales/en.yml
new file mode 100644
index 0000000..6c349ae
--- /dev/null
+++ b/specs_e2e/rails_7_2/config/locales/en.yml
@@ -0,0 +1,31 @@
+# Files in the config/locales directory are used for internationalization and
+# are automatically loaded by Rails. If you want to use locales other than
+# English, add the necessary files in this directory.
+#
+# To use the locales, use `I18n.t`:
+#
+# I18n.t "hello"
+#
+# In views, this is aliased to just `t`:
+#
+# <%= t("hello") %>
+#
+# To use a different locale, set it with `I18n.locale`:
+#
+# I18n.locale = :es
+#
+# This would use the information in config/locales/es.yml.
+#
+# To learn more about the API, please read the Rails Internationalization guide
+# at https://guides.rubyonrails.org/i18n.html.
+#
+# Be aware that YAML interprets the following case-insensitive strings as
+# booleans: `true`, `false`, `on`, `off`, `yes`, `no`. Therefore, these strings
+# must be quoted to be interpreted as strings. For example:
+#
+# en:
+# "yes": yup
+# enabled: "ON"
+
+en:
+ hello: "Hello world"
diff --git a/specs_e2e/rails_7_2/config/master.key b/specs_e2e/rails_7_2/config/master.key
new file mode 100644
index 0000000..a5c4587
--- /dev/null
+++ b/specs_e2e/rails_7_2/config/master.key
@@ -0,0 +1 @@
+5b6ca964fe3f4c95d39f82330b15718d
\ No newline at end of file
diff --git a/specs_e2e/rails_7_2/config/puma.rb b/specs_e2e/rails_7_2/config/puma.rb
new file mode 100644
index 0000000..03c166f
--- /dev/null
+++ b/specs_e2e/rails_7_2/config/puma.rb
@@ -0,0 +1,34 @@
+# This configuration file will be evaluated by Puma. The top-level methods that
+# are invoked here are part of Puma's configuration DSL. For more information
+# about methods provided by the DSL, see https://puma.io/puma/Puma/DSL.html.
+
+# Puma starts a configurable number of processes (workers) and each process
+# serves each request in a thread from an internal thread pool.
+#
+# The ideal number of threads per worker depends both on how much time the
+# application spends waiting for IO operations and on how much you wish to
+# to prioritize throughput over latency.
+#
+# As a rule of thumb, increasing the number of threads will increase how much
+# traffic a given process can handle (throughput), but due to CRuby's
+# Global VM Lock (GVL) it has diminishing returns and will degrade the
+# response time (latency) of the application.
+#
+# The default is set to 3 threads as it's deemed a decent compromise between
+# throughput and latency for the average Rails application.
+#
+# Any libraries that use a connection pool or another resource pool should
+# be configured to provide at least as many connections as the number of
+# threads. This includes Active Record's `pool` parameter in `database.yml`.
+threads_count = ENV.fetch("RAILS_MAX_THREADS", 3)
+threads threads_count, threads_count
+
+# Specifies the `port` that Puma will listen on to receive requests; default is 3000.
+port ENV.fetch("PORT", 3000)
+
+# Allow puma to be restarted by `bin/rails restart` command.
+plugin :tmp_restart
+
+# Specify the PID file. Defaults to tmp/pids/server.pid in development.
+# In other environments, only set the PID file if requested.
+pidfile ENV["PIDFILE"] if ENV["PIDFILE"]
diff --git a/specs_e2e/rails_7_2/config/routes.rb b/specs_e2e/rails_7_2/config/routes.rb
new file mode 100644
index 0000000..a5cbafd
--- /dev/null
+++ b/specs_e2e/rails_7_2/config/routes.rb
@@ -0,0 +1,5 @@
+Rails.application.routes.draw do
+ resources :posts
+ root 'posts#index'
+ # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
+end
diff --git a/specs_e2e/rails_7_2/config/storage.yml b/specs_e2e/rails_7_2/config/storage.yml
new file mode 100644
index 0000000..4942ab6
--- /dev/null
+++ b/specs_e2e/rails_7_2/config/storage.yml
@@ -0,0 +1,34 @@
+test:
+ service: Disk
+ root: <%= Rails.root.join("tmp/storage") %>
+
+local:
+ service: Disk
+ root: <%= Rails.root.join("storage") %>
+
+# Use bin/rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key)
+# amazon:
+# service: S3
+# access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
+# secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>
+# region: us-east-1
+# bucket: your_own_bucket-<%= Rails.env %>
+
+# Remember not to checkin your GCS keyfile to a repository
+# google:
+# service: GCS
+# project: your_project
+# credentials: <%= Rails.root.join("path/to/gcs.keyfile") %>
+# bucket: your_own_bucket-<%= Rails.env %>
+
+# Use bin/rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key)
+# microsoft:
+# service: AzureStorage
+# storage_account_name: your_account_name
+# storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %>
+# container: your_container_name-<%= Rails.env %>
+
+# mirror:
+# service: Mirror
+# primary: local
+# mirrors: [ amazon, google, microsoft ]
diff --git a/specs_e2e/rails_7_2/db/migrate/20180621085832_create_posts.rb b/specs_e2e/rails_7_2/db/migrate/20180621085832_create_posts.rb
new file mode 100644
index 0000000..eca677b
--- /dev/null
+++ b/specs_e2e/rails_7_2/db/migrate/20180621085832_create_posts.rb
@@ -0,0 +1,11 @@
+class CreatePosts < ActiveRecord::Migration[7.2]
+ def change
+ create_table :posts do |t|
+ t.string :title
+ t.text :body
+ t.boolean :published
+
+ t.timestamps
+ end
+ end
+end
diff --git a/specs_e2e/rails_7_2/db/seeds.rb b/specs_e2e/rails_7_2/db/seeds.rb
new file mode 100644
index 0000000..4fbd6ed
--- /dev/null
+++ b/specs_e2e/rails_7_2/db/seeds.rb
@@ -0,0 +1,9 @@
+# This file should ensure the existence of records required to run the application in every environment (production,
+# development, test). The code here should be idempotent so that it can be executed at any point in every environment.
+# The data can then be loaded with the bin/rails db:seed command (or created alongside the database with db:setup).
+#
+# Example:
+#
+# ["Action", "Comedy", "Drama", "Horror"].each do |genre_name|
+# MovieGenre.find_or_create_by!(name: genre_name)
+# end
diff --git a/specs_e2e/rails_7_2/db/test.sqlite3-shm b/specs_e2e/rails_7_2/db/test.sqlite3-shm
new file mode 100644
index 0000000..0b3cb70
Binary files /dev/null and b/specs_e2e/rails_7_2/db/test.sqlite3-shm differ
diff --git a/specs_e2e/rails_7_2/db/test.sqlite3-wal b/specs_e2e/rails_7_2/db/test.sqlite3-wal
new file mode 100644
index 0000000..ad02ee7
Binary files /dev/null and b/specs_e2e/rails_7_2/db/test.sqlite3-wal differ
diff --git a/specs_e2e/rails_7_2/package.json b/specs_e2e/rails_7_2/package.json
new file mode 100644
index 0000000..7ef5344
--- /dev/null
+++ b/specs_e2e/rails_7_2/package.json
@@ -0,0 +1,8 @@
+{
+ "devDependencies": {
+ "@playwright/test": "^1.50.0",
+ "cypress": "^14.0.0",
+ "cypress-on-rails": "^0.1.0",
+ "playwright": "^1.50.0"
+ }
+}
diff --git a/specs_e2e/rails_7_2/playwright-report/index.html b/specs_e2e/rails_7_2/playwright-report/index.html
new file mode 100644
index 0000000..c5db1d7
--- /dev/null
+++ b/specs_e2e/rails_7_2/playwright-report/index.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+ Playwright Test Report
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/specs_e2e/rails_4_2/public/404.html b/specs_e2e/rails_7_2/public/404.html
similarity index 86%
rename from specs_e2e/rails_4_2/public/404.html
rename to specs_e2e/rails_7_2/public/404.html
index b612547..2be3af2 100644
--- a/specs_e2e/rails_4_2/public/404.html
+++ b/specs_e2e/rails_7_2/public/404.html
@@ -4,7 +4,7 @@
The page you were looking for doesn't exist (404)
-
+
diff --git a/specs_e2e/rails_7_2/public/406-unsupported-browser.html b/specs_e2e/rails_7_2/public/406-unsupported-browser.html
new file mode 100644
index 0000000..7cf1e16
--- /dev/null
+++ b/specs_e2e/rails_7_2/public/406-unsupported-browser.html
@@ -0,0 +1,66 @@
+
+
+
+ Your browser is not supported (406)
+
+
+
+
+
+
+
+
+
Your browser is not supported.
+
Please upgrade your browser to continue.
+
+
+
+
diff --git a/specs_e2e/rails_4_2/public/422.html b/specs_e2e/rails_7_2/public/422.html
similarity index 86%
rename from specs_e2e/rails_4_2/public/422.html
rename to specs_e2e/rails_7_2/public/422.html
index a21f82b..c08eac0 100644
--- a/specs_e2e/rails_4_2/public/422.html
+++ b/specs_e2e/rails_7_2/public/422.html
@@ -4,7 +4,7 @@
The change you wanted was rejected (422)
-
+
diff --git a/specs_e2e/rails_4_2/public/500.html b/specs_e2e/rails_7_2/public/500.html
similarity index 85%
rename from specs_e2e/rails_4_2/public/500.html
rename to specs_e2e/rails_7_2/public/500.html
index 061abc5..78a030a 100644
--- a/specs_e2e/rails_4_2/public/500.html
+++ b/specs_e2e/rails_7_2/public/500.html
@@ -4,7 +4,7 @@
We're sorry, but something went wrong (500)
-
+
diff --git a/specs_e2e/rails_7_2/public/icon.png b/specs_e2e/rails_7_2/public/icon.png
new file mode 100644
index 0000000..f3b5abc
Binary files /dev/null and b/specs_e2e/rails_7_2/public/icon.png differ
diff --git a/specs_e2e/rails_7_2/public/icon.svg b/specs_e2e/rails_7_2/public/icon.svg
new file mode 100644
index 0000000..78307cc
--- /dev/null
+++ b/specs_e2e/rails_7_2/public/icon.svg
@@ -0,0 +1,3 @@
+
diff --git a/specs_e2e/rails_7_2/public/robots.txt b/specs_e2e/rails_7_2/public/robots.txt
new file mode 100644
index 0000000..c19f78a
--- /dev/null
+++ b/specs_e2e/rails_7_2/public/robots.txt
@@ -0,0 +1 @@
+# See https://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
diff --git a/specs_e2e/rails_7_2/storage/test.sqlite3 b/specs_e2e/rails_7_2/storage/test.sqlite3
new file mode 100644
index 0000000..52ed443
Binary files /dev/null and b/specs_e2e/rails_7_2/storage/test.sqlite3 differ
diff --git a/specs_e2e/rails_7_2/test-results/.last-run.json b/specs_e2e/rails_7_2/test-results/.last-run.json
new file mode 100644
index 0000000..cbcc1fb
--- /dev/null
+++ b/specs_e2e/rails_7_2/test-results/.last-run.json
@@ -0,0 +1,4 @@
+{
+ "status": "passed",
+ "failedTests": []
+}
\ No newline at end of file
diff --git a/specs_e2e/rails_4_2/test.sh b/specs_e2e/rails_7_2/test.sh
similarity index 52%
rename from specs_e2e/rails_4_2/test.sh
rename to specs_e2e/rails_7_2/test.sh
index 24cfba2..ce1b8e2 100755
--- a/specs_e2e/rails_4_2/test.sh
+++ b/specs_e2e/rails_7_2/test.sh
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
set -eo pipefail
-echo '--- testing rails 4.2'
+echo '--- testing rails 7.2.2'
echo '-- setting environment'
export DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
@@ -10,41 +10,48 @@ export BUNDLE_GEMFILE="$DIR/Gemfile"
cd $DIR
echo '-- bundle install'
-gem install bundler -v "~> 1.0" --conservative
bundle --version
-bundle install --quiet --gemfile="$DIR/Gemfile" --retry 2 --path vendor/bundle
+bundle config set --local path 'vendor/bundle'
+bundle install --quiet --gemfile="$DIR/Gemfile" --retry 2
+
+echo '-- migration'
+bundle exec ./bin/rails db:drop || true
+bundle exec ./bin/rails db:create db:migrate
echo '-- cypress install'
-bundle exec ./bin/rails g cypress_on_rails:install --install_folder=spec --framework cypress --experimental --install_with=npm --force
-rm -vf spec/cypress/e2e/rails_examples/advance_factory_bot.cy.js
+bundle exec ./bin/rails g cypress_on_rails:install --install_folder=test --framework cypress --install_with=npm --force
+rm -vf test/cypress/e2e/rails_examples/using_vcr.cy.js
echo '-- start rails server'
# make sure the server is not running
(kill -9 `cat ../server.pid` || true )
bundle exec ./bin/rails server -p 5017 -e test -P ../server.pid &
-sleep 5 # give rails a chance to start up correctly
+sleep 2 # give rails a chance to start up correctly
echo '-- cypress run'
-cp -fv ../cypress.config.js spec/
+cp -fv ../cypress.config.js test/
+cd test
+npx cypress install
# if [ -z $CYPRESS_RECORD_KEY ]
# then
-# npx cypress run -P ./spec
+# npx cypress run
# else
- npx cypress install
- npx cypress run -P ./spec # --record
+ npx cypress run # --record
# fi
echo '-- playwright install'
-bundle exec ./bin/rails g cypress_on_rails:install --install_folder=spec --framework playwright --experimental --install_with=npm --force
-rm -vf spec/playwright/e2e/rails_examples/advance_factory_bot.cy.js
+cd ..
+bundle exec ./bin/rails g cypress_on_rails:install --install_folder=test --framework playwright --install_with=npm --force
+rm -vf test/playwright/e2e/rails_examples/using_vcr.cy.js
echo '-- playwright run'
-cp -fv ../playwright.config.js spec/
-cd spec
+cd test
+cp -fv ../../playwright.config.js .
npx playwright install-deps
npx playwright install
-npx playwright test spec/playwright/e2e
+npx playwright test test/playwright
+# npx playwright show-report
echo '-- stop rails server'
kill -9 `cat ../../server.pid` || true
diff --git a/specs_e2e/rails_7_2/test/controllers/posts_controller_test.rb b/specs_e2e/rails_7_2/test/controllers/posts_controller_test.rb
new file mode 100644
index 0000000..14af994
--- /dev/null
+++ b/specs_e2e/rails_7_2/test/controllers/posts_controller_test.rb
@@ -0,0 +1,48 @@
+require 'test_helper'
+
+class PostsControllerTest < ActionDispatch::IntegrationTest
+ setup do
+ @post = posts(:one)
+ end
+
+ test "should get index" do
+ get posts_url
+ assert_response :success
+ end
+
+ test "should get new" do
+ get new_post_url
+ assert_response :success
+ end
+
+ test "should create post" do
+ assert_difference('Post.count') do
+ post posts_url, params: { post: { body: @post.body, published: @post.published, title: @post.title } }
+ end
+
+ assert_redirected_to post_url(Post.last)
+ end
+
+ test "should show post" do
+ get post_url(@post)
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get edit_post_url(@post)
+ assert_response :success
+ end
+
+ test "should update post" do
+ patch post_url(@post), params: { post: { body: @post.body, published: @post.published, title: @post.title } }
+ assert_redirected_to post_url(@post)
+ end
+
+ test "should destroy post" do
+ assert_difference('Post.count', -1) do
+ delete post_url(@post)
+ end
+
+ assert_redirected_to posts_url
+ end
+end
diff --git a/specs_e2e/rails_7_2/test/cypress_fixtures/posts.yml b/specs_e2e/rails_7_2/test/cypress_fixtures/posts.yml
new file mode 100644
index 0000000..7058020
--- /dev/null
+++ b/specs_e2e/rails_7_2/test/cypress_fixtures/posts.yml
@@ -0,0 +1,11 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
+
+one:
+ title: MyCypressFixtures
+ body: MyText
+ published: true
+
+two:
+ title: MyCypressFixtures2
+ body: MyText
+ published: true
diff --git a/specs_e2e/rails_7_2/test/fixtures/posts.yml b/specs_e2e/rails_7_2/test/fixtures/posts.yml
new file mode 100644
index 0000000..9fa2b74
--- /dev/null
+++ b/specs_e2e/rails_7_2/test/fixtures/posts.yml
@@ -0,0 +1,11 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
+
+one:
+ title: MyRailsFixtures
+ body: MyText
+ published: false
+
+two:
+ title: MyRailsFixtures2
+ body: MyText
+ published: false
diff --git a/specs_e2e/rails_7_2/test/models/post_test.rb b/specs_e2e/rails_7_2/test/models/post_test.rb
new file mode 100644
index 0000000..6d9d463
--- /dev/null
+++ b/specs_e2e/rails_7_2/test/models/post_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class PostTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/specs_e2e/rails_4_2/spec/.keep b/specs_e2e/rails_7_2/vendor/.keep
similarity index 100%
rename from specs_e2e/rails_4_2/spec/.keep
rename to specs_e2e/rails_7_2/vendor/.keep
diff --git a/specs_e2e/rails_4_2/vendor/.keep b/specs_e2e/rails_7_2/vendor/javascript/.keep
similarity index 100%
rename from specs_e2e/rails_4_2/vendor/.keep
rename to specs_e2e/rails_7_2/vendor/javascript/.keep