capybara-lockstep 0.6.0 → 0.7.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/.github/workflows/test.yml +36 -0
- data/.gitignore +1 -0
- data/CHANGELOG.md +33 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +32 -7
- data/README.md +1 -2
- data/Rakefile +8 -0
- data/capybara-lockstep.gemspec +1 -0
- data/lib/capybara-lockstep/capybara_ext.rb +6 -2
- data/lib/capybara-lockstep/helper.js +18 -5
- data/lib/capybara-lockstep/version.rb +1 -1
- metadata +19 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8335399770451283be7443be41f3f1e5c2b0401f16a64a7722fb6b39ec2f3143
|
4
|
+
data.tar.gz: 601249c76c50789b44199e734a64fb039cd3b77c1db3e9f9068b1e7dea188216
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 638b0671d9f919c85b972cb2af4df763932a8c00ab21cd8387e3b483fda43448bb3c28b434aa821c0c6e75d4c67d82acb1dad0788128a5b1761bae0ae45400d6
|
7
|
+
data.tar.gz: eed68edd632b78dea169e208162e4a041cfc1ed2a78c6593eebf55d27d2fe54d9161e1c65f21771cb66de2ef4e2e2ce92573569118e30e8a3148368ffaaafe53
|
@@ -0,0 +1,36 @@
|
|
1
|
+
---
|
2
|
+
name: Tests
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- master
|
7
|
+
pull_request:
|
8
|
+
branches:
|
9
|
+
- master
|
10
|
+
jobs:
|
11
|
+
test:
|
12
|
+
runs-on: ubuntu-20.04
|
13
|
+
strategy:
|
14
|
+
fail-fast: false
|
15
|
+
matrix:
|
16
|
+
include:
|
17
|
+
- ruby: 2.6.6
|
18
|
+
gemfile: Gemfile
|
19
|
+
- ruby: 2.7.2
|
20
|
+
gemfile: Gemfile
|
21
|
+
- ruby: 3.0.1
|
22
|
+
gemfile: Gemfile
|
23
|
+
env:
|
24
|
+
BUNDLE_GEMFILE: "${{ matrix.gemfile }}"
|
25
|
+
steps:
|
26
|
+
- uses: actions/checkout@v2
|
27
|
+
- name: Install ruby
|
28
|
+
uses: ruby/setup-ruby@v1
|
29
|
+
with:
|
30
|
+
ruby-version: "${{ matrix.ruby }}"
|
31
|
+
- name: Bundle
|
32
|
+
run: |
|
33
|
+
gem install bundler:2.2.15
|
34
|
+
bundle install --no-deployment
|
35
|
+
- name: Run tests
|
36
|
+
run: bundle exec rake spec
|
data/.gitignore
CHANGED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
All notable changes to this project will be documented in this file.
|
2
|
+
|
3
|
+
This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
4
|
+
|
5
|
+
|
6
|
+
## Unreleased
|
7
|
+
|
8
|
+
### Breaking changes
|
9
|
+
|
10
|
+
-
|
11
|
+
|
12
|
+
### Compatible changes
|
13
|
+
|
14
|
+
-
|
15
|
+
|
16
|
+
## 0.7.0 - 2021-05-04
|
17
|
+
|
18
|
+
### Compatible changes
|
19
|
+
|
20
|
+
- add changelog
|
21
|
+
- add gemika for tests with github actions
|
22
|
+
- add Ruby 3 support
|
23
|
+
|
24
|
+
## 0.6.0 - 2021-03-10
|
25
|
+
## 0.5.0 - 2021-03-09
|
26
|
+
## 0.4.0 - 2021-03-05
|
27
|
+
## 0.3.3 - 2021-03-05
|
28
|
+
## 0.3.2 - 2021-03-04
|
29
|
+
## 0.3.1 - 2021-03-04
|
30
|
+
## 0.3.0 - 2021-03-04
|
31
|
+
## 0.2.3 - 2021-03-03
|
32
|
+
## 0.2.2 - 2021-03-03
|
33
|
+
## 0.2.1 - 2021-03-03
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
capybara-lockstep (0.
|
4
|
+
capybara-lockstep (0.7.0)
|
5
5
|
activesupport (>= 3.2)
|
6
6
|
capybara (>= 2.0)
|
7
|
+
ruby2_keywords
|
7
8
|
selenium-webdriver (>= 3)
|
8
9
|
|
9
10
|
GEM
|
10
11
|
remote: https://rubygems.org/
|
11
12
|
specs:
|
12
|
-
activesupport (6.1.3)
|
13
|
+
activesupport (6.1.3.1)
|
13
14
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
14
15
|
i18n (>= 1.6, < 2)
|
15
16
|
minitest (>= 5.1)
|
@@ -27,16 +28,28 @@ GEM
|
|
27
28
|
regexp_parser (>= 1.5, < 3.0)
|
28
29
|
xpath (~> 3.2)
|
29
30
|
childprocess (3.0.0)
|
31
|
+
chrome_remote (0.3.0)
|
32
|
+
websocket-driver (~> 0.6)
|
30
33
|
concurrent-ruby (1.1.8)
|
34
|
+
daemons (1.3.1)
|
31
35
|
diff-lcs (1.3)
|
32
|
-
|
36
|
+
eventmachine (1.2.7)
|
37
|
+
gemika (0.6.0)
|
38
|
+
i18n (1.8.10)
|
33
39
|
concurrent-ruby (~> 1.0)
|
34
|
-
|
35
|
-
|
40
|
+
jasmine (3.6.0)
|
41
|
+
jasmine-core (~> 3.6.0)
|
42
|
+
phantomjs
|
43
|
+
rack (>= 1.2.1)
|
44
|
+
rake
|
45
|
+
jasmine-core (3.6.0)
|
46
|
+
mini_mime (1.1.0)
|
47
|
+
mini_portile2 (2.5.1)
|
36
48
|
minitest (5.14.4)
|
37
|
-
nokogiri (1.11.
|
49
|
+
nokogiri (1.11.3)
|
38
50
|
mini_portile2 (~> 2.5.0)
|
39
51
|
racc (~> 1.4)
|
52
|
+
phantomjs (2.1.1.0)
|
40
53
|
public_suffix (4.0.6)
|
41
54
|
racc (1.5.2)
|
42
55
|
rack (2.2.3)
|
@@ -57,12 +70,20 @@ GEM
|
|
57
70
|
diff-lcs (>= 1.2.0, < 2.0)
|
58
71
|
rspec-support (~> 3.7.0)
|
59
72
|
rspec-support (3.7.0)
|
73
|
+
ruby2_keywords (0.0.4)
|
60
74
|
rubyzip (2.3.0)
|
61
75
|
selenium-webdriver (3.142.7)
|
62
76
|
childprocess (>= 0.5, < 4.0)
|
63
77
|
rubyzip (>= 1.2.2)
|
78
|
+
thin (1.8.0)
|
79
|
+
daemons (~> 1.0, >= 1.0.9)
|
80
|
+
eventmachine (~> 1.0, >= 1.0.4)
|
81
|
+
rack (>= 1, < 3)
|
64
82
|
tzinfo (2.0.4)
|
65
83
|
concurrent-ruby (~> 1.0)
|
84
|
+
websocket-driver (0.7.3)
|
85
|
+
websocket-extensions (>= 0.1.0)
|
86
|
+
websocket-extensions (0.1.5)
|
66
87
|
xpath (3.2.0)
|
67
88
|
nokogiri (~> 1.8)
|
68
89
|
zeitwerk (2.4.2)
|
@@ -73,8 +94,12 @@ PLATFORMS
|
|
73
94
|
DEPENDENCIES
|
74
95
|
byebug
|
75
96
|
capybara-lockstep!
|
97
|
+
chrome_remote
|
98
|
+
gemika
|
99
|
+
jasmine
|
76
100
|
rake (~> 13.0)
|
77
101
|
rspec (~> 3.0)
|
102
|
+
thin
|
78
103
|
|
79
104
|
BUNDLED WITH
|
80
|
-
2.2.
|
105
|
+
2.2.15
|
data/README.md
CHANGED
@@ -132,9 +132,8 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
132
132
|
Libary.initialize({
|
133
133
|
onFinished: function() {
|
134
134
|
document.body.removeAttribute('data-initializing')
|
135
|
-
}
|
135
|
+
}
|
136
136
|
})
|
137
|
-
setTimeout(function() { document.body.removeAttribute('data-initializing') })
|
138
137
|
})
|
139
138
|
```
|
140
139
|
|
data/Rakefile
CHANGED
@@ -6,3 +6,11 @@ require "rspec/core/rake_task"
|
|
6
6
|
RSpec::Core::RakeTask.new(:spec)
|
7
7
|
|
8
8
|
task default: :spec
|
9
|
+
require 'jasmine'
|
10
|
+
load 'jasmine/tasks/jasmine.rake'
|
11
|
+
|
12
|
+
begin
|
13
|
+
require 'gemika/tasks'
|
14
|
+
rescue LoadError
|
15
|
+
puts 'Run `gem install gemika` for additional tasks'
|
16
|
+
end
|
data/capybara-lockstep.gemspec
CHANGED
@@ -27,6 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_dependency "capybara", ">= 2.0"
|
28
28
|
spec.add_dependency "selenium-webdriver", ">= 3"
|
29
29
|
spec.add_dependency "activesupport", ">= 3.2"
|
30
|
+
spec.add_dependency "ruby2_keywords"
|
30
31
|
|
31
32
|
# For more information and examples about making a new gem, checkout our
|
32
33
|
# guide at: https://bundler.io/guides/creating_gem.html
|
@@ -1,7 +1,9 @@
|
|
1
|
+
require 'ruby2_keywords'
|
2
|
+
|
1
3
|
module Capybara
|
2
4
|
module Lockstep
|
3
5
|
module VisitWithWaiting
|
4
|
-
def visit(*args, &block)
|
6
|
+
ruby2_keywords def visit(*args, &block)
|
5
7
|
url = args[0]
|
6
8
|
# Some of our apps have a Cucumber step that changes drivers mid-scenario.
|
7
9
|
# It works by creating a new Capybara session and re-visits the URL from the
|
@@ -65,6 +67,7 @@ module Capybara
|
|
65
67
|
end
|
66
68
|
end
|
67
69
|
end
|
70
|
+
ruby2_keywords meth
|
68
71
|
end
|
69
72
|
prepend(mod)
|
70
73
|
end
|
@@ -92,6 +95,7 @@ module Capybara
|
|
92
95
|
Lockstep.synchronized = false
|
93
96
|
end
|
94
97
|
end
|
98
|
+
ruby2_keywords meth
|
95
99
|
end
|
96
100
|
prepend(mod)
|
97
101
|
end
|
@@ -138,7 +142,7 @@ end
|
|
138
142
|
module Capybara
|
139
143
|
module Lockstep
|
140
144
|
module SynchronizeWithCatchUp
|
141
|
-
def synchronize(*args, &block)
|
145
|
+
ruby2_keywords def synchronize(*args, &block)
|
142
146
|
# This method is called very frequently by capybara.
|
143
147
|
# We use the { lazy } option to only synchronize when we're out of sync.
|
144
148
|
Capybara::Lockstep.synchronize(lazy: true)
|
@@ -1,8 +1,17 @@
|
|
1
1
|
window.CapybaraLockstep = (function() {
|
2
|
-
|
3
|
-
let
|
4
|
-
let
|
5
|
-
let
|
2
|
+
// State and configuration
|
3
|
+
let debug
|
4
|
+
let jobCount
|
5
|
+
let idleCallbacks
|
6
|
+
let waitTasks
|
7
|
+
reset()
|
8
|
+
|
9
|
+
function reset() {
|
10
|
+
jobCount = 0
|
11
|
+
idleCallbacks = []
|
12
|
+
waitTasks = 0
|
13
|
+
debug = false
|
14
|
+
}
|
6
15
|
|
7
16
|
function isIdle() {
|
8
17
|
// Can't check for document.readyState or body.initializing here,
|
@@ -42,7 +51,8 @@ window.CapybaraLockstep = (function() {
|
|
42
51
|
|
43
52
|
function startWorkUntil(promise, tag) {
|
44
53
|
startWork(tag)
|
45
|
-
|
54
|
+
let taggedStopWork = stopWork.bind(this, tag)
|
55
|
+
promise.then(taggedStopWork, taggedStopWork)
|
46
56
|
}
|
47
57
|
|
48
58
|
function stopWork(tag) {
|
@@ -312,9 +322,12 @@ window.CapybaraLockstep = (function() {
|
|
312
322
|
|
313
323
|
return {
|
314
324
|
track: track,
|
325
|
+
isBusy: isBusy,
|
326
|
+
isIdle: isIdle,
|
315
327
|
startWork: startWork,
|
316
328
|
stopWork: stopWork,
|
317
329
|
synchronize: synchronize,
|
330
|
+
reset: reset,
|
318
331
|
set debug(value) { debug = value },
|
319
332
|
set waitTasks(value) { waitTasks = value }
|
320
333
|
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capybara-lockstep
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henning Koch
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-05-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capybara
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.2'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: ruby2_keywords
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
description:
|
56
70
|
email:
|
57
71
|
- henning.koch@makandra.de
|
@@ -59,9 +73,11 @@ executables: []
|
|
59
73
|
extensions: []
|
60
74
|
extra_rdoc_files: []
|
61
75
|
files:
|
76
|
+
- ".github/workflows/test.yml"
|
62
77
|
- ".gitignore"
|
63
78
|
- ".rspec"
|
64
79
|
- ".ruby-version"
|
80
|
+
- CHANGELOG.md
|
65
81
|
- Gemfile
|
66
82
|
- Gemfile.lock
|
67
83
|
- LICENSE.txt
|
@@ -100,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
100
116
|
- !ruby/object:Gem::Version
|
101
117
|
version: '0'
|
102
118
|
requirements: []
|
103
|
-
rubygems_version: 3.
|
119
|
+
rubygems_version: 3.0.3
|
104
120
|
signing_key:
|
105
121
|
specification_version: 4
|
106
122
|
summary: Synchronize Capybara commands with client-side JavaScript and AJAX requests
|