spreewald 4.3.3 → 4.3.6
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/CHANGELOG.md +19 -1
- data/README.md +20 -21
- data/lib/spreewald/web_steps.rb +8 -5
- data/lib/spreewald.rb +0 -1
- data/lib/spreewald_support/version.rb +1 -1
- data/spreewald.gemspec +1 -0
- data/tests/rails-6_capybara-3/Gemfile.lock +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 319d2bf7ea1d7a001c53922c7142a1ccad262f3f7da34d48882c2fd9d825c3d6
|
|
4
|
+
data.tar.gz: cbd10a35c3a70400453854840e4fa0b2fe5c0646e9fec8efa9dc7a057eb109e1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dc7159b50dde000619bbcf67e7fcc8b3623b3e4a8a3924917368475baf8e1a07c0ab81e412b66ca9b38bf8b4e2a344aa008f8c82a4e6a6726a758d46bd765ab6
|
|
7
|
+
data.tar.gz: aab557914fbde6a4b6affbea66cde6c3a2e325176dd544afc603204cf7800a50a126651ab4aadf48738931cacc1fdd075b3f7c63f43f085f2f923fb77b195ec7
|
data/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file.
|
|
|
3
3
|
|
|
4
4
|
This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
5
5
|
|
|
6
|
+
## 4.3.6
|
|
7
|
+
- Use capybara's `make_visible` [option](https://github.com/teamcapybara/capybara/blob/0468de5a810aae75ab9de20447e246c5c35473f0/lib/capybara/node/actions.rb#L279) in step `I attach the file "..." to "..."`
|
|
8
|
+
- This will make CSS-Hacks like setting the opacity in tests obsolete
|
|
9
|
+
|
|
10
|
+
## 4.3.5
|
|
11
|
+
- Fix deprecation warning for using keyword arguments as last argument when running with ruby 2.7
|
|
12
|
+
|
|
13
|
+
## 4.3.4
|
|
14
|
+
- Fix "undefined method `build_rb_world_factory` for nil:NilClass" error when running tests on a real project'
|
|
15
|
+
- The field error class couldn't be required in certain circumstances and so the specs failed
|
|
16
|
+
|
|
6
17
|
## 4.3.3
|
|
7
18
|
- Fixes that the `Spreewald.field_error_class` configuration
|
|
8
19
|
did not find the correct elements
|
|
@@ -12,7 +23,14 @@ did not find the correct elements
|
|
|
12
23
|
- `The ... field should have the error ...`
|
|
13
24
|
- `The ... field should have an error`
|
|
14
25
|
- Added the possibility to specify custom error classes and message selectors for these steps
|
|
15
|
-
using `Spreewald.field_error_class` and `Spreewald.error_message_xpath_selector` in your configuration.
|
|
26
|
+
using `Spreewald.field_error_class` and `Spreewald.error_message_xpath_selector` in your configuration.
|
|
27
|
+
|
|
28
|
+
- We had separate steps for e.g. `I should see ...` and `I should not see ...`. These were merged now:
|
|
29
|
+
- `I should see "..."` + `I should not see "..."` => `I should( not)? see "..."`
|
|
30
|
+
- `I should see /.../` + `I should not see /.../` => `I should( not)? see /.../`
|
|
31
|
+
- `I should see '...'` + `I should not see '...'` => `I should( not)? see '...'`
|
|
32
|
+
- Optional negation was made more consistent. The steps use `"( not)? "` now.
|
|
33
|
+
- The search via `spreewald some query here` includes steps with optional negation now.
|
|
16
34
|
|
|
17
35
|
## 4.2.2
|
|
18
36
|
- Fixes the "Show me the email" step (#171)
|
data/README.md
CHANGED
|
@@ -4,6 +4,10 @@ Spreewald is a collection of useful steps for cucumber. Feel free to fork.
|
|
|
4
4
|
|
|
5
5
|
You can find a list of all contained steps at the end of this README.
|
|
6
6
|
|
|
7
|
+
## Supported versions
|
|
8
|
+
|
|
9
|
+
Spreewald is currently tested against and Ruby 2.6.6 and 3.0.0 with Rails 6 and Capybara 3.
|
|
10
|
+
|
|
7
11
|
## Installation
|
|
8
12
|
|
|
9
13
|
Add this line to your application's Gemfile:
|
|
@@ -12,18 +16,7 @@ Add this line to your application's Gemfile:
|
|
|
12
16
|
|
|
13
17
|
And then execute:
|
|
14
18
|
|
|
15
|
-
$ bundle
|
|
16
|
-
|
|
17
|
-
Or install it yourself as:
|
|
18
|
-
|
|
19
|
-
$ gem install spreewald
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
## Supported versions
|
|
23
|
-
|
|
24
|
-
Spreewald is currently tested against and Ruby 2.6.6 with Rails 6 and Capybara 3.
|
|
25
|
-
|
|
26
|
-
## Usage
|
|
19
|
+
$ bundle install
|
|
27
20
|
|
|
28
21
|
Require all Spreewald steps by putting
|
|
29
22
|
|
|
@@ -32,19 +25,28 @@ Require all Spreewald steps by putting
|
|
|
32
25
|
into either your `support/env.rb` or `step_definitions/spreewald_steps.rb`.
|
|
33
26
|
|
|
34
27
|
Steps are grouped into a number of categories. If you only want to use a subset
|
|
35
|
-
of Spreewald's steps,
|
|
36
|
-
single files like this:
|
|
28
|
+
of Spreewald's steps, insead of `require 'spreewald/all_steps'`, you can pick
|
|
29
|
+
and choose single categories by requiring [single files](https://github.com/makandra/spreewald/tree/master/lib/spreewald) like this:
|
|
37
30
|
|
|
38
31
|
require 'spreewald/email_steps'
|
|
39
32
|
require 'spreewald/web_steps'
|
|
40
33
|
|
|
41
|
-
|
|
34
|
+
After that you are good to go and use the steps [described below](#steps).
|
|
35
|
+
|
|
36
|
+
### Recommended additional setup
|
|
37
|
+
|
|
38
|
+
We recommend using a `features/support/paths.rb` file in your project to define mappings between verbal phrases and your project's routes. You can then use these phrases in steps like `Then I should be on ...` or `When I go to ...`.
|
|
39
|
+
You can find [an example in this repository](https://github.com/makandra/spreewald/blob/master/examples/paths.rb). Please note that you may have to adapt it depending on the namespaces and other setup of your application's routes.
|
|
40
|
+
|
|
41
|
+
Similarly, you may define a `features/support/paths.rb` file in your project to define mappings of verbal phrases to CSS selectors. You can also find [an example for that in this repository](https://github.com/makandra/spreewald/blob/master/examples/selectors.rb). These mappings can be used with steps like `Then I should( not)? see (an|the) element for ...` or `When I click on the element for ...`.
|
|
42
|
+
|
|
43
|
+
We also suggest to look at our [recommended Capybara defaults](#recommended-capybara-defaults) as they impact the behavior of many Spreewald steps.
|
|
42
44
|
|
|
43
45
|
## Spreewald binary
|
|
44
46
|
|
|
45
47
|
Spreewald comes with a binary that prints a list of all Cucumber steps from
|
|
46
48
|
Spreewald _and your project_. It will filter the list by any string you
|
|
47
|
-
pass it. Example usage:
|
|
49
|
+
pass it. Example usage (e.g. on a linux shell in the root folder of the project which uses Spreewald):
|
|
48
50
|
|
|
49
51
|
```bash
|
|
50
52
|
spreewald # lists all steps
|
|
@@ -94,7 +96,7 @@ Capybara.default_normalize_ws = true
|
|
|
94
96
|
|
|
95
97
|
This will affect all Spreewald steps that are using Capybara's `:text` option.
|
|
96
98
|
|
|
97
|
-
Furthermore, we recommend setting [Capybara's matching strategy](https://github.com/teamcapybara/capybara/blob/master/README.md#strategy) to `:prefer_exact`. This will positively affect Spreewald steps as it prevents the `Capybara::Ambiguous` error in the edge case when two fields are matching the given name, but one of the matches includes the name only as a substring
|
|
99
|
+
Furthermore, we recommend setting [Capybara's matching strategy](https://github.com/teamcapybara/capybara/blob/master/README.md#strategy) to `:prefer_exact`. This will positively affect Spreewald steps as it prevents the `Capybara::Ambiguous` error in the edge case when two fields are matching the given name, but one of the matches includes the name only as a substring.
|
|
98
100
|
|
|
99
101
|
```ruby
|
|
100
102
|
Capybara.match = :prefer_exact
|
|
@@ -119,14 +121,11 @@ Spreewald has different kind of tests:
|
|
|
119
121
|
|
|
120
122
|
Run all tests for your current ruby version with `rake` or `rake matrix:tests`. To bundle use `rake matrix:install` first.
|
|
121
123
|
|
|
122
|
-
Please note that you need [geordi](https://github.com/makandra/geordi) to run the integration tests.
|
|
123
|
-
|
|
124
|
-
|
|
125
124
|
### If you would like to contribute:
|
|
126
125
|
|
|
127
126
|
- Fork the repository
|
|
128
127
|
- Push your changes with specs
|
|
129
|
-
- Make sure `rake` passes
|
|
128
|
+
- Make sure `rake matrix:tests` passes
|
|
130
129
|
- Regenerate the "Steps" section of this Readme with `rake update_readme`, if needed
|
|
131
130
|
- Make a pull request
|
|
132
131
|
|
data/lib/spreewald/web_steps.rb
CHANGED
|
@@ -160,8 +160,11 @@ end.overridable
|
|
|
160
160
|
|
|
161
161
|
# Attach a file to a file upload form field
|
|
162
162
|
When /^(?:|I )attach the file "([^"]*)" to "([^"]*)"$/ do |path, field|
|
|
163
|
+
options = {}
|
|
164
|
+
options[:make_visible] = true if javascript_capable?
|
|
165
|
+
|
|
163
166
|
patiently do
|
|
164
|
-
attach_file(field, File.expand_path(path))
|
|
167
|
+
attach_file(field, File.expand_path(path), options)
|
|
165
168
|
end
|
|
166
169
|
end.overridable
|
|
167
170
|
|
|
@@ -486,18 +489,18 @@ end.overridable
|
|
|
486
489
|
# Checks for the presence of an option in a select
|
|
487
490
|
Then /^"([^"]*)" should( not)? be an option for "([^"]*)"$/ do |value, negate, field|
|
|
488
491
|
finder_arguments = if Spreewald::Comparison.compare_versions(Capybara::VERSION, :<, "2.12")
|
|
489
|
-
|
|
492
|
+
{ text: value }
|
|
490
493
|
else
|
|
491
|
-
|
|
494
|
+
{ exact_text: value }
|
|
492
495
|
end
|
|
493
496
|
patiently do
|
|
494
497
|
if negate
|
|
495
498
|
begin
|
|
496
|
-
expect(find_with_disabled(:field, field)).to have_no_css(
|
|
499
|
+
expect(find_with_disabled(:field, field)).to have_no_css('option', **finder_arguments)
|
|
497
500
|
rescue Capybara::ElementNotFound
|
|
498
501
|
end
|
|
499
502
|
else
|
|
500
|
-
expect(find_with_disabled(:field, field)).to have_css(
|
|
503
|
+
expect(find_with_disabled(:field, field)).to have_css('option', **finder_arguments)
|
|
501
504
|
end
|
|
502
505
|
end
|
|
503
506
|
end.overridable
|
data/lib/spreewald.rb
CHANGED
data/spreewald.gemspec
CHANGED
|
@@ -9,6 +9,7 @@ Gem::Specification.new do |gem|
|
|
|
9
9
|
gem.summary = %q{Collection of useful cucumber steps.}
|
|
10
10
|
gem.homepage = "https://github.com/makandra/spreewald"
|
|
11
11
|
gem.license = 'MIT'
|
|
12
|
+
gem.metadata = { 'rubygems_mfa_required' => 'true' }
|
|
12
13
|
|
|
13
14
|
gem.files = `git ls-files`.split($\)
|
|
14
15
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: spreewald
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.3.
|
|
4
|
+
version: 4.3.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tobias Kraze
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-02-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: cucumber
|
|
@@ -334,7 +334,8 @@ files:
|
|
|
334
334
|
homepage: https://github.com/makandra/spreewald
|
|
335
335
|
licenses:
|
|
336
336
|
- MIT
|
|
337
|
-
metadata:
|
|
337
|
+
metadata:
|
|
338
|
+
rubygems_mfa_required: 'true'
|
|
338
339
|
post_install_message:
|
|
339
340
|
rdoc_options: []
|
|
340
341
|
require_paths:
|