e2e 0.4.2 → 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 +4 -4
- data/Appraisals +4 -0
- data/CHANGELOG.md +15 -0
- data/README.md +47 -3
- data/Rakefile +9 -2
- data/gemfiles/rails_7.0.gemfile.lock +16 -14
- data/gemfiles/rails_7.1.gemfile.lock +16 -14
- data/gemfiles/rails_7.2.gemfile.lock +16 -14
- data/gemfiles/rails_8.0.gemfile.lock +16 -14
- data/gemfiles/rails_8.1.gemfile +15 -0
- data/gemfiles/rails_8.1.gemfile.lock +431 -0
- data/lib/e2e/assertions.rb +94 -0
- data/lib/e2e/dsl.rb +129 -0
- data/lib/e2e/minitest.rb +14 -4
- data/lib/e2e/version.rb +1 -1
- data/lib/e2e.rb +8 -1
- data/lib/generators/e2e/templates/minitest_test.rb.erb +2 -2
- metadata +18 -1
data/lib/e2e/minitest.rb
CHANGED
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
require "minitest"
|
|
4
4
|
require "e2e"
|
|
5
|
+
require_relative "assertions"
|
|
5
6
|
|
|
6
7
|
module E2E
|
|
7
8
|
module Minitest
|
|
8
9
|
class TestCase < ::Minitest::Test
|
|
9
10
|
include E2E::DSL
|
|
11
|
+
include E2E::Assertions
|
|
10
12
|
|
|
11
13
|
def teardown
|
|
12
14
|
take_failed_screenshot if !passed? && !skipped?
|
|
@@ -22,16 +24,24 @@ module E2E
|
|
|
22
24
|
screenshots_dir = File.expand_path("tmp/screenshots", Dir.pwd)
|
|
23
25
|
FileUtils.mkdir_p(screenshots_dir)
|
|
24
26
|
|
|
25
|
-
name = "#{self.class.name}_#{name}".gsub(/[^0-9A-Za-z]/, "_")
|
|
27
|
+
name = "#{self.class.name}_#{self.name}".gsub(/[^0-9A-Za-z]/, "_")
|
|
26
28
|
path = File.join(screenshots_dir, "#{name}.png")
|
|
27
29
|
|
|
28
30
|
begin
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
# rubocop:disable Lint/Debugger
|
|
32
|
+
save_screenshot(path)
|
|
33
|
+
# rubocop:enable Lint/Debugger
|
|
34
|
+
puts "
|
|
35
|
+
[E2E] Screenshot saved to #{path}"
|
|
31
36
|
rescue => e
|
|
32
|
-
puts "
|
|
37
|
+
puts "
|
|
38
|
+
[E2E] Failed to save screenshot: #{e.message}"
|
|
33
39
|
end
|
|
34
40
|
end
|
|
35
41
|
end
|
|
36
42
|
end
|
|
37
43
|
end
|
|
44
|
+
|
|
45
|
+
Minitest.after_run do
|
|
46
|
+
E2E.session.quit if E2E.instance_variable_get(:@session)
|
|
47
|
+
end
|
data/lib/e2e/version.rb
CHANGED
data/lib/e2e.rb
CHANGED
|
@@ -55,7 +55,13 @@ module E2E
|
|
|
55
55
|
end
|
|
56
56
|
|
|
57
57
|
class Config
|
|
58
|
-
|
|
58
|
+
DEFAULT_FLASH_SELECTORS = {
|
|
59
|
+
any: "[role='alert'], [role='status'], [data-flash], [data-testid*='flash'], .flash, .notice, .alert, .toast",
|
|
60
|
+
notice: "[role='status'], [data-flash-type='notice'], [data-flash='notice'], .flash.notice, .flash-success, .notice",
|
|
61
|
+
alert: "[role='alert'], [data-flash-type='alert'], [data-flash='alert'], .flash.alert, .flash-error, .alert"
|
|
62
|
+
}.freeze
|
|
63
|
+
|
|
64
|
+
attr_accessor :driver, :headless, :app, :browser_type, :wait_timeout, :flash_selectors
|
|
59
65
|
|
|
60
66
|
def initialize
|
|
61
67
|
@driver = :playwright
|
|
@@ -63,6 +69,7 @@ module E2E
|
|
|
63
69
|
@headless = ENV.fetch("HEADLESS", "true") == "true"
|
|
64
70
|
@app = nil
|
|
65
71
|
@wait_timeout = 5
|
|
72
|
+
@flash_selectors = DEFAULT_FLASH_SELECTORS.dup
|
|
66
73
|
end
|
|
67
74
|
end
|
|
68
75
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: e2e
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.6.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alexey Poimtsev
|
|
@@ -93,6 +93,20 @@ dependencies:
|
|
|
93
93
|
- - ">="
|
|
94
94
|
- !ruby/object:Gem::Version
|
|
95
95
|
version: '0'
|
|
96
|
+
- !ruby/object:Gem::Dependency
|
|
97
|
+
name: minitest
|
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - ">="
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: '0'
|
|
103
|
+
type: :development
|
|
104
|
+
prerelease: false
|
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
106
|
+
requirements:
|
|
107
|
+
- - ">="
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: '0'
|
|
96
110
|
- !ruby/object:Gem::Dependency
|
|
97
111
|
name: rake
|
|
98
112
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -199,8 +213,11 @@ files:
|
|
|
199
213
|
- gemfiles/rails_7.2.gemfile.lock
|
|
200
214
|
- gemfiles/rails_8.0.gemfile
|
|
201
215
|
- gemfiles/rails_8.0.gemfile.lock
|
|
216
|
+
- gemfiles/rails_8.1.gemfile
|
|
217
|
+
- gemfiles/rails_8.1.gemfile.lock
|
|
202
218
|
- lefthook.yml
|
|
203
219
|
- lib/e2e.rb
|
|
220
|
+
- lib/e2e/assertions.rb
|
|
204
221
|
- lib/e2e/driver.rb
|
|
205
222
|
- lib/e2e/drivers/playwright.rb
|
|
206
223
|
- lib/e2e/dsl.rb
|