govuk_test 1.0.2 → 2.1.2
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/.ruby-version +1 -1
- data/CHANGELOG.md +28 -0
- data/README.md +43 -12
- data/govuk_test.gemspec +6 -3
- data/lib/govuk_test.rb +12 -5
- data/lib/govuk_test/railtie.rb +9 -0
- data/lib/govuk_test/version.rb +1 -1
- data/lib/tasks/pact.rake +19 -0
- metadata +58 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f378d699ec748a453ddd32bb832380ade5ea79443f1b7c924e87a7b222d1df59
|
4
|
+
data.tar.gz: b2a57cd8d08cfd92b7b04d898c1cafbbabddce770658f6fdf45387d80fb311fa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 65d78123feab40eaecfc759d6e1902984bb786c1cfa6cfa3a3c248c1f9063557f4c8dd8046faa183f974ad1619959ad0d64055d3c3ebad3dfd76e46eae747d85
|
7
|
+
data.tar.gz: 1a9b61be599ddc06ff86ad9197591c13bdb25af331da073b424a0f225dc40875d5e5bdea62de5e05214706eeddb37bb06841c3582390e2c65bdcad0114596d30
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.6.
|
1
|
+
2.6.6
|
data/CHANGELOG.md
CHANGED
@@ -7,6 +7,34 @@
|
|
7
7
|
useful summary for people upgrading their application, not a replication
|
8
8
|
of the commit log.
|
9
9
|
|
10
|
+
## 2.1.2
|
11
|
+
|
12
|
+
* Mark `climate_control` as a dependency (rather than dev dependency)
|
13
|
+
|
14
|
+
## 2.1.1
|
15
|
+
|
16
|
+
* Add `pact` as a dependency
|
17
|
+
|
18
|
+
## 2.1.0
|
19
|
+
|
20
|
+
* Add pact test branch verify rake task
|
21
|
+
* Add Railtie to load rake tasks
|
22
|
+
|
23
|
+
## 2.0.0
|
24
|
+
|
25
|
+
* BREAKING: `.configure` no longer accepts options. If you need to modify the
|
26
|
+
headless_chrome selenium driver you can re-register the driver with
|
27
|
+
`Capybara.register_driver`.
|
28
|
+
* `GovukTest.headless_chrome_selenium_options` added to allow accessing the
|
29
|
+
headless Chrome selenium options for other contexts (such as configuring
|
30
|
+
Jasmine).
|
31
|
+
* `GOVUK_TEST_CHROME_NO_SANDBOX` can be set to default Chrome to be running
|
32
|
+
with the `--no-sandbox` argument.
|
33
|
+
|
34
|
+
## 1.0.3
|
35
|
+
|
36
|
+
* Add Brakeman as a dependency.
|
37
|
+
|
10
38
|
## 1.0.2
|
11
39
|
|
12
40
|
* Allow new versions of 'webdrivers' above 4
|
data/README.md
CHANGED
@@ -5,36 +5,67 @@ Gem to package test dependencies and config for GOV.UK applications. Cousin of [
|
|
5
5
|
## Installation
|
6
6
|
|
7
7
|
```ruby
|
8
|
-
gem
|
8
|
+
gem "govuk_test"
|
9
9
|
```
|
10
10
|
|
11
11
|
And then execute:
|
12
12
|
|
13
|
-
|
13
|
+
```
|
14
|
+
$ bundle
|
15
|
+
```
|
14
16
|
|
15
17
|
## Usage
|
16
18
|
|
17
|
-
Somewhere in your `spec_helper`, `rails_helper`, or
|
19
|
+
Somewhere in your `spec_helper.rb`, `rails_helper.rb`, or
|
20
|
+
`spec/support/govuk_test.rb` put:
|
18
21
|
|
19
|
-
```
|
22
|
+
```ruby
|
20
23
|
GovukTest.configure
|
21
24
|
```
|
22
25
|
|
23
|
-
|
24
|
-
|
26
|
+
This will configure [Capybara][] to run any JavaScript enabled tests
|
27
|
+
against a [Selenium][] driven instance of
|
28
|
+
[headless Google Chrome][headless-chrome].
|
25
29
|
|
26
|
-
|
27
|
-
|
30
|
+
If you need to use this as a root user (such as within some docker containers)
|
31
|
+
you will need to set a `GOVUK_TEST_CHROME_NO_SANDBOX` environment variable.
|
28
32
|
|
29
|
-
|
33
|
+
You can reuse the Selenium options for headless Google Chrome for configuring
|
34
|
+
other Selenium driven tests, such as [Jasmine][]:
|
30
35
|
|
31
|
-
|
36
|
+
```ruby
|
37
|
+
class ChromeHeadlessJasmineConfigurer < JasmineSeleniumRunner::ConfigureJasmine
|
38
|
+
def selenium_options
|
39
|
+
{ options: GovukTest.headless_chrome_selenium_options }
|
40
|
+
end
|
41
|
+
end
|
42
|
+
```
|
32
43
|
|
33
|
-
|
44
|
+
Should you need to configure the options for your application the recommended
|
45
|
+
approach is to re-register the headless Google Chrome driver:
|
34
46
|
|
35
|
-
|
47
|
+
```ruby
|
48
|
+
GovukTest.configure
|
49
|
+
|
50
|
+
Capybara.register_driver :headless_chrome do |app|
|
51
|
+
chrome_options = GovukTest.headless_chrome_selenium_options
|
52
|
+
chrome_options.add_argument("--disable-web-security")
|
53
|
+
chrome_options.add_argument("--window-size=1400,1400")
|
54
|
+
|
55
|
+
Capybara::Selenium::Driver.new(
|
56
|
+
app,
|
57
|
+
browser: :chrome,
|
58
|
+
desired_capabilities: { acceptInsecureCerts: true },
|
59
|
+
options: chrome_options,
|
60
|
+
)
|
61
|
+
end
|
36
62
|
```
|
37
63
|
|
64
|
+
[Capybara]: https://github.com/teamcapybara/capybara
|
65
|
+
[Selenium]: https://selenium.dev
|
66
|
+
[headless-chrome]: https://developers.google.com/web/updates/2017/04/headless-chrome
|
67
|
+
[Jasmine]: https://github.com/jasmine/jasmine_selenium_runner
|
68
|
+
|
38
69
|
## License
|
39
70
|
|
40
71
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
data/govuk_test.gemspec
CHANGED
@@ -22,12 +22,15 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
23
|
spec.require_paths = ["lib"]
|
24
24
|
|
25
|
+
spec.add_dependency "brakeman", "~> 4.6"
|
25
26
|
spec.add_dependency "capybara"
|
26
|
-
spec.add_dependency "
|
27
|
+
spec.add_dependency "climate_control"
|
28
|
+
spec.add_dependency "pact"
|
27
29
|
spec.add_dependency "puma"
|
28
30
|
spec.add_dependency "selenium-webdriver", ">= 3.142"
|
31
|
+
spec.add_dependency "webdrivers", ">= 4"
|
29
32
|
|
30
|
-
spec.add_development_dependency "bundler"
|
31
|
-
spec.add_development_dependency "rake"
|
33
|
+
spec.add_development_dependency "bundler"
|
34
|
+
spec.add_development_dependency "rake"
|
32
35
|
spec.add_development_dependency "rspec"
|
33
36
|
end
|
data/lib/govuk_test.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require "govuk_test/railtie" if defined?(Rails)
|
1
2
|
require "govuk_test/version"
|
2
3
|
|
3
4
|
require "capybara"
|
@@ -13,15 +14,21 @@ unless ENV["GOVUK_TEST_USE_SYSTEM_CHROMEDRIVER"]
|
|
13
14
|
end
|
14
15
|
|
15
16
|
module GovukTest
|
16
|
-
def self.configure
|
17
|
-
chrome_options ||= Selenium::WebDriver::Chrome::Options.new
|
18
|
-
chrome_options.headless!
|
19
|
-
|
17
|
+
def self.configure
|
20
18
|
Capybara.register_driver :headless_chrome do |app|
|
21
|
-
Capybara::Selenium::Driver.new(app,
|
19
|
+
Capybara::Selenium::Driver.new(app,
|
20
|
+
browser: :chrome,
|
21
|
+
options: headless_chrome_selenium_options)
|
22
22
|
end
|
23
23
|
|
24
24
|
Capybara.javascript_driver = :headless_chrome
|
25
25
|
Capybara.server = :puma, { Silent: true }
|
26
26
|
end
|
27
|
+
|
28
|
+
def self.headless_chrome_selenium_options
|
29
|
+
Selenium::WebDriver::Chrome::Options.new.tap do |options|
|
30
|
+
options.headless!
|
31
|
+
options.add_argument("--no-sandbox") if ENV["GOVUK_TEST_CHROME_NO_SANDBOX"]
|
32
|
+
end
|
33
|
+
end
|
27
34
|
end
|
data/lib/govuk_test/version.rb
CHANGED
data/lib/tasks/pact.rake
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
require "govuk_test"
|
2
|
+
|
3
|
+
require "pact/tasks"
|
4
|
+
require "pact/tasks/task_helper"
|
5
|
+
|
6
|
+
namespace :pact do
|
7
|
+
desc "Verify the API contract for a specific branch"
|
8
|
+
task "verify:branch", [:branch_name] => :environment do |t, args|
|
9
|
+
abort "Please provide a branch name. eg rake #{t.name}[my_feature_branch]" unless args[:branch_name]
|
10
|
+
|
11
|
+
pact_version = args[:branch_name] == "master" ? args[:branch_name] : "branch-#{args[:branch_name]}"
|
12
|
+
|
13
|
+
ClimateControl.modify(GDS_API_ADAPTERS_PACT_VERSION: pact_version) do
|
14
|
+
Pact::TaskHelper.handle_verification_failure do
|
15
|
+
Pact::TaskHelper.execute_pact_verify
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: govuk_test
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 2.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GOV.UK Dev
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: brakeman
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.6'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.6'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: capybara
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -25,19 +39,33 @@ dependencies:
|
|
25
39
|
- !ruby/object:Gem::Version
|
26
40
|
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
42
|
+
name: climate_control
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
45
|
- - ">="
|
32
46
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
47
|
+
version: '0'
|
34
48
|
type: :runtime
|
35
49
|
prerelease: false
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
38
52
|
- - ">="
|
39
53
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pact
|
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'
|
41
69
|
- !ruby/object:Gem::Dependency
|
42
70
|
name: puma
|
43
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,34 +94,48 @@ dependencies:
|
|
66
94
|
- - ">="
|
67
95
|
- !ruby/object:Gem::Version
|
68
96
|
version: '3.142'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: webdrivers
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '4'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '4'
|
69
111
|
- !ruby/object:Gem::Dependency
|
70
112
|
name: bundler
|
71
113
|
requirement: !ruby/object:Gem::Requirement
|
72
114
|
requirements:
|
73
|
-
- - "
|
115
|
+
- - ">="
|
74
116
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
117
|
+
version: '0'
|
76
118
|
type: :development
|
77
119
|
prerelease: false
|
78
120
|
version_requirements: !ruby/object:Gem::Requirement
|
79
121
|
requirements:
|
80
|
-
- - "
|
122
|
+
- - ">="
|
81
123
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
124
|
+
version: '0'
|
83
125
|
- !ruby/object:Gem::Dependency
|
84
126
|
name: rake
|
85
127
|
requirement: !ruby/object:Gem::Requirement
|
86
128
|
requirements:
|
87
|
-
- - "
|
129
|
+
- - ">="
|
88
130
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
131
|
+
version: '0'
|
90
132
|
type: :development
|
91
133
|
prerelease: false
|
92
134
|
version_requirements: !ruby/object:Gem::Requirement
|
93
135
|
requirements:
|
94
|
-
- - "
|
136
|
+
- - ">="
|
95
137
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
138
|
+
version: '0'
|
97
139
|
- !ruby/object:Gem::Dependency
|
98
140
|
name: rspec
|
99
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,7 +170,9 @@ files:
|
|
128
170
|
- bin/setup
|
129
171
|
- govuk_test.gemspec
|
130
172
|
- lib/govuk_test.rb
|
173
|
+
- lib/govuk_test/railtie.rb
|
131
174
|
- lib/govuk_test/version.rb
|
175
|
+
- lib/tasks/pact.rake
|
132
176
|
homepage: https://github.com/alphagov/govuk_test
|
133
177
|
licenses:
|
134
178
|
- MIT
|
@@ -148,7 +192,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
148
192
|
- !ruby/object:Gem::Version
|
149
193
|
version: '0'
|
150
194
|
requirements: []
|
151
|
-
rubygems_version: 3.
|
195
|
+
rubygems_version: 3.1.4
|
152
196
|
signing_key:
|
153
197
|
specification_version: 4
|
154
198
|
summary: Test setup for GOV.UK
|