lurker 0.6.8 → 1.0.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 +5 -5
- data/.hound.yml +4 -78
- data/.jshintrc +33 -0
- data/.rspec +1 -2
- data/.rubocop.yml +0 -1
- data/.travis.yml +30 -19
- data/Gemfile +0 -33
- data/README.md +32 -53
- data/Rakefile +3 -3
- data/cucumber.yml +1 -2
- data/features/atom_persistent_within_the_same_type.feature +4 -4
- data/features/controller_nested_schema_scaffolding.feature +7 -10
- data/features/controller_schema_scaffolding.feature +1 -3
- data/features/dereferencing_through_inlining.feature +1 -3
- data/features/html_generation.feature +26 -4
- data/features/minitest.feature +3 -8
- data/features/multidomain_support.feature +6 -10
- data/features/multitype_request_support.feature +1 -3
- data/features/partials.feature +3 -8
- data/features/request_nested_schema_scaffolding.feature +0 -2
- data/features/request_schema_scaffolding.feature +0 -2
- data/features/schema_suffixes.feature +2 -18
- data/features/schema_updating_within_test_suite.feature +2 -6
- data/features/step_definitions/additional_cli_steps.rb +16 -12
- data/features/support/env.rb +50 -10
- data/features/test_endpoint.feature +2 -9
- data/gemfiles/rails_4.gemfile +14 -0
- data/gemfiles/rails_5.gemfile +10 -0
- data/gemfiles/rails_6.gemfile +10 -0
- data/lib/lurker.rb +9 -2
- data/lib/lurker/cli.rb +148 -128
- data/lib/lurker/endpoint.rb +11 -7
- data/lib/lurker/form_builder.rb +22 -31
- data/lib/lurker/json/concerns/validatable.rb +5 -1
- data/lib/lurker/json/parser.rb +1 -1
- data/lib/lurker/json/schema.rb +19 -6
- data/lib/lurker/json/{writter.rb → writer.rb} +2 -2
- data/lib/lurker/presenters/base_presenter.rb +10 -34
- data/lib/lurker/presenters/endpoint_presenter.rb +19 -8
- data/lib/lurker/presenters/schema_presenter.rb +6 -5
- data/lib/lurker/presenters/service_presenter.rb +41 -7
- data/lib/lurker/rendering_controller.rb +14 -7
- data/lib/lurker/service.rb +27 -11
- data/lib/lurker/spec_helper/rspec.rb +0 -4
- data/lib/lurker/spy.rb +3 -1
- data/lib/lurker/templates/documentation.md.tt +1 -0
- data/lib/lurker/templates/javascripts/lurker.js +133 -91
- data/lib/lurker/templates/layouts/_sidemenu.html.erb +2 -2
- data/lib/lurker/templates/layouts/application.html.erb +54 -57
- data/lib/lurker/templates/layouts/print.html.erb +31 -0
- data/lib/lurker/templates/lurker/rendering/_endpoint.html.erb +37 -0
- data/lib/lurker/templates/lurker/rendering/_param_form_element.html.erb +1 -1
- data/lib/lurker/templates/lurker/rendering/_service.html.erb +7 -0
- data/lib/lurker/templates/lurker/rendering/_submit_form.html.erb +77 -73
- data/lib/lurker/templates/lurker/rendering/all.html.erb +5 -0
- data/lib/lurker/templates/lurker/rendering/index.html.erb +1 -10
- data/lib/lurker/templates/lurker/rendering/show.html.erb +1 -37
- data/lib/lurker/templates/public/application.css +6 -2
- data/lib/lurker/templates/public/application.js +13 -13
- data/lib/lurker/templates/stylesheets/application.scss +3 -0
- data/lib/lurker/version.rb +1 -1
- data/lurker.gemspec +31 -33
- data/spec/spec_helper.rb +0 -1
- data/tasks/build.rake +12 -8
- data/tasks/generate.rake +44 -17
- data/templates/Dockerfile +26 -0
- data/templates/generate_stuff.rb +59 -26
- data/templates/lurker_app.rb +27 -48
- data/templates/rails4_ruby26_thread_error_fix.rb +20 -0
- metadata +149 -106
- checksums.yaml.gz.sig +0 -2
- data.tar.gz.sig +0 -3
- data/Appraisals +0 -20
- data/gemfiles/rails_32.gemfile +0 -27
- data/gemfiles/rails_40.gemfile +0 -27
- data/gemfiles/rails_41.gemfile +0 -27
- data/gemfiles/rails_42.gemfile +0 -27
- data/lib/lurker/templates/lurker/rendering/_param_form_legend.html.erb +0 -1
- data/lib/lurker/templates/meta_service.md.erb +0 -20
- data/lib/lurker/validation_error.rb +0 -4
- data/templates/rails32_http_patch_support.rb +0 -125
- metadata.gz.sig +0 -0
@@ -5,8 +5,6 @@ Feature: controller nested schema scaffolding
|
|
5
5
|
Scenario: scaffold a json schema for a "repos/index" in a nested controller spec
|
6
6
|
Given a file named "spec/controllers/api/v1/repos_controller_spec.rb" with:
|
7
7
|
"""ruby
|
8
|
-
require "spec_helper"
|
9
|
-
|
10
8
|
describe Api::V1::ReposController, :lurker do
|
11
9
|
render_views
|
12
10
|
|
@@ -18,7 +16,9 @@ Feature: controller nested schema scaffolding
|
|
18
16
|
end
|
19
17
|
|
20
18
|
it "lists all the repos of the user" do
|
21
|
-
|
19
|
+
# rails 4 doesn't stringify values and schema has integers
|
20
|
+
# rails >= 5 have limit as string & proper query_params extension
|
21
|
+
get :index, params: { user_id: user.id, limit: 1, format: 'json' }
|
22
22
|
expect(response).to be_success
|
23
23
|
expect(JSON.parse(response.body).size).to eq 1
|
24
24
|
end
|
@@ -28,7 +28,7 @@ Feature: controller nested schema scaffolding
|
|
28
28
|
When I run `bin/rspec spec/controllers/api/v1/repos_controller_spec.rb`
|
29
29
|
Then the example should pass
|
30
30
|
Then a file named "lurker/api/v1/users/__user_id/repos-GET.json.yml" should exist
|
31
|
-
Then the file "lurker/api/v1/users/__user_id/repos-GET.json.yml" should contain
|
31
|
+
Then the file "lurker/api/v1/users/__user_id/repos-GET.json.yml" should contain:
|
32
32
|
"""yml
|
33
33
|
---
|
34
34
|
description: repo listing
|
@@ -40,9 +40,9 @@ Feature: controller nested schema scaffolding
|
|
40
40
|
required: []
|
41
41
|
properties:
|
42
42
|
limit:
|
43
|
-
|
44
|
-
|
45
|
-
|
43
|
+
"""
|
44
|
+
Then the file "lurker/api/v1/users/__user_id/repos-GET.json.yml" should contain:
|
45
|
+
"""yml
|
46
46
|
responseCodes:
|
47
47
|
- status: 200
|
48
48
|
successful: true
|
@@ -74,8 +74,5 @@ Feature: controller nested schema scaffolding
|
|
74
74
|
controller: api/v1/repos
|
75
75
|
action: index
|
76
76
|
user_id: '1'
|
77
|
-
query_params:
|
78
|
-
limit: 1
|
79
|
-
|
80
77
|
"""
|
81
78
|
|
@@ -7,8 +7,6 @@ Feature: controller schema scaffolding
|
|
7
7
|
Scenario: scaffold a json schema for a "users/show" in controller spec
|
8
8
|
Given a file named "spec/controllers/api/v1/users_controller_spec.rb" with:
|
9
9
|
"""ruby
|
10
|
-
require "spec_helper"
|
11
|
-
|
12
10
|
describe Api::V1::UsersController, :lurker do
|
13
11
|
render_views
|
14
12
|
|
@@ -17,7 +15,7 @@ Feature: controller schema scaffolding
|
|
17
15
|
end
|
18
16
|
|
19
17
|
it "shows user" do
|
20
|
-
get :show, id: user.id, format: 'json'
|
18
|
+
get :show, params: { id: user.id, format: 'json' }
|
21
19
|
expect(response).to be_success
|
22
20
|
end
|
23
21
|
end
|
@@ -55,8 +55,6 @@ Feature: $ref defererencing through inlining
|
|
55
55
|
"""
|
56
56
|
And a file named "spec/controllers/api/v3/users_controller_spec.rb" with:
|
57
57
|
"""ruby
|
58
|
-
require "spec_helper"
|
59
|
-
|
60
58
|
describe Api::V3::UsersController, :lurker do
|
61
59
|
render_views
|
62
60
|
|
@@ -65,7 +63,7 @@ Feature: $ref defererencing through inlining
|
|
65
63
|
end
|
66
64
|
|
67
65
|
it "updates a user surname as string" do
|
68
|
-
patch :update, id: user.id, user: { surname: 'Marley' }
|
66
|
+
patch :update, params: { id: user.id, user: { surname: 'Marley' } }
|
69
67
|
expect(response).to be_success
|
70
68
|
end
|
71
69
|
end
|
@@ -2,12 +2,24 @@ Feature: html generation
|
|
2
2
|
|
3
3
|
Lurker generates pretty info pages based on schema information
|
4
4
|
and form which allow you to test live api.
|
5
|
-
When testing your api ensure that CSRF protection is handled
|
5
|
+
When testing your api ensure that CSRF protection is handled properly
|
6
6
|
with `protect_from_forgery :null_session`
|
7
7
|
|
8
8
|
@javascript
|
9
9
|
Scenario: json schema gets generated into html preview using "users/create"
|
10
10
|
Given an empty directory named "public/lurker"
|
11
|
+
And a service file with:
|
12
|
+
"""yml
|
13
|
+
---
|
14
|
+
name: Lurker Demo Application
|
15
|
+
basePath: ''
|
16
|
+
description: ''
|
17
|
+
domains:
|
18
|
+
'razum2um.me': 'https://lurker.razum2um.me'
|
19
|
+
consumes:
|
20
|
+
- application/x-www-form-urlencoded
|
21
|
+
- application/json
|
22
|
+
"""
|
11
23
|
And a file named "lurker/api/v1/users-POST.json.yml" with:
|
12
24
|
"""yml
|
13
25
|
---
|
@@ -48,8 +60,8 @@ Feature: html generation
|
|
48
60
|
Converting lurker to html
|
49
61
|
using lurker
|
50
62
|
|
51
|
-
|
52
|
-
|
63
|
+
public/lurker/index.html
|
64
|
+
public/lurker/api/v1/users-POST.html
|
53
65
|
"""
|
54
66
|
|
55
67
|
When I go to "/lurker"
|
@@ -62,7 +74,7 @@ Feature: html generation
|
|
62
74
|
And I fill in the submit form field "name" with "Jim"
|
63
75
|
Then I should see:
|
64
76
|
"""
|
65
|
-
curl -X POST -d
|
77
|
+
curl -X POST -d 'user%5Bname%5D=Jim'
|
66
78
|
"""
|
67
79
|
|
68
80
|
And I submit lurk form
|
@@ -74,3 +86,13 @@ Feature: html generation
|
|
74
86
|
|
75
87
|
Then I should see JSON response with "can't be blank"
|
76
88
|
|
89
|
+
When I select "application/json" request media type
|
90
|
+
And I fill in the submit form field "name" with "Jim"
|
91
|
+
Then I should see:
|
92
|
+
"""
|
93
|
+
curl -X POST -H 'Content-Type: application/json' -d '{"user":{"name":"Jim"}}'
|
94
|
+
"""
|
95
|
+
|
96
|
+
And I submit lurk form
|
97
|
+
|
98
|
+
Then I should see JSON response with "Jim"
|
data/features/minitest.feature
CHANGED
@@ -49,10 +49,8 @@ Feature: minitest
|
|
49
49
|
description: ''
|
50
50
|
responseParameters:
|
51
51
|
description: ''
|
52
|
-
type:
|
53
|
-
|
54
|
-
required: []
|
55
|
-
properties: {}
|
52
|
+
type: boolean
|
53
|
+
example: true
|
56
54
|
extensions:
|
57
55
|
method: DELETE
|
58
56
|
path_info: "/api/v1/users/1/repos/1.json"
|
@@ -72,9 +70,6 @@ Feature: minitest
|
|
72
70
|
description: 'user updating'
|
73
71
|
requestParameters:
|
74
72
|
properties:
|
75
|
-
id:
|
76
|
-
type: integer
|
77
|
-
example: 1
|
78
73
|
user:
|
79
74
|
type: object
|
80
75
|
properties:
|
@@ -115,7 +110,7 @@ Feature: minitest
|
|
115
110
|
assert_equal 1, User.count
|
116
111
|
|
117
112
|
Lurker::Spy.on do
|
118
|
-
patch "/api/v1/users/#{user.id}.json", user: { name: '' }
|
113
|
+
patch "/api/v1/users/#{user.id}.json", params: { user: { name: '' } }
|
119
114
|
end
|
120
115
|
|
121
116
|
assert_equal 200, status
|
@@ -22,8 +22,7 @@ Feature: mutidomain support
|
|
22
22
|
basePath: ''
|
23
23
|
description: ''
|
24
24
|
domains:
|
25
|
-
'
|
26
|
-
'[Real] razum2um.me': 'http://lurker.razum2um.me'
|
25
|
+
'razum2um.me': 'https://lurker.razum2um.me'
|
27
26
|
name: Lurker Demo Application
|
28
27
|
extensions: {}
|
29
28
|
"""
|
@@ -33,10 +32,7 @@ Feature: mutidomain support
|
|
33
32
|
prefix: users management
|
34
33
|
description: user deletion
|
35
34
|
requestParameters:
|
36
|
-
properties:
|
37
|
-
id:
|
38
|
-
type: integer
|
39
|
-
example: 1
|
35
|
+
properties: {}
|
40
36
|
responseCodes:
|
41
37
|
- status: 200
|
42
38
|
successful: true
|
@@ -58,14 +54,14 @@ Feature: mutidomain support
|
|
58
54
|
Converting lurker to html
|
59
55
|
using lurker
|
60
56
|
|
61
|
-
|
62
|
-
|
57
|
+
public/lurker/index.html
|
58
|
+
public/lurker/api/v1/users/__id-DELETE.html
|
63
59
|
"""
|
64
60
|
|
65
61
|
When I go to "/lurker/api/v1/users/__id-DELETE.html"
|
66
|
-
When I select "
|
62
|
+
When I select "razum2um.me" hostname
|
67
63
|
Then I should see:
|
68
64
|
"""
|
69
|
-
curl -X DELETE
|
65
|
+
curl -X DELETE 'https://lurker.razum2um.me/api/v1/users/1'
|
70
66
|
"""
|
71
67
|
|
@@ -60,8 +60,6 @@ Feature: multitype request support
|
|
60
60
|
Scenario: json schema tests response parameters and update request parameters using "users/update"
|
61
61
|
Given a file named "spec/controllers/api/v2/users_controller_spec.rb" with:
|
62
62
|
"""ruby
|
63
|
-
require "spec_helper"
|
64
|
-
|
65
63
|
describe Api::V2::UsersController, :lurker do
|
66
64
|
render_views
|
67
65
|
|
@@ -70,7 +68,7 @@ Feature: multitype request support
|
|
70
68
|
end
|
71
69
|
|
72
70
|
it "updates a user surname as string" do
|
73
|
-
patch :update, id: user.id, user: { surname: 'Marley' }
|
71
|
+
patch :update, params: { id: user.id, user: { surname: 'Marley' } }
|
74
72
|
expect(response).to be_success
|
75
73
|
end
|
76
74
|
end
|
data/features/partials.feature
CHANGED
@@ -44,9 +44,6 @@ Feature: partials
|
|
44
44
|
prefix: repos management
|
45
45
|
requestParameters:
|
46
46
|
properties:
|
47
|
-
user_id:
|
48
|
-
type: string
|
49
|
-
example: 1
|
50
47
|
repo:
|
51
48
|
properties:
|
52
49
|
name:
|
@@ -68,8 +65,6 @@ Feature: partials
|
|
68
65
|
|
69
66
|
Given a file named "spec/requests/repo_creation_spec.rb" with:
|
70
67
|
"""ruby
|
71
|
-
require "spec_helper"
|
72
|
-
|
73
68
|
describe Api::V1::ReposController, :lurker do
|
74
69
|
let!(:user) do
|
75
70
|
User.where(name: 'razum2um').first_or_create!
|
@@ -77,7 +72,7 @@ Feature: partials
|
|
77
72
|
|
78
73
|
it "creates a new repo" do
|
79
74
|
expect {
|
80
|
-
post "/api/v1/users/#{user.id}/repos.json", repo: { name: 'new-gem' }
|
75
|
+
post "/api/v1/users/#{user.id}/repos.json", params: { repo: { name: 'new-gem' } }
|
81
76
|
expect(response).to be_success
|
82
77
|
expect(JSON.parse(response.body)['user']).to eq JSON.parse(user.to_json)
|
83
78
|
}.to change { Repo.count } .by(1)
|
@@ -94,7 +89,7 @@ Feature: partials
|
|
94
89
|
Converting lurker to html
|
95
90
|
using lurker
|
96
91
|
|
97
|
-
|
98
|
-
|
92
|
+
public/lurker/index.html
|
93
|
+
public/lurker/api/v1/users/__user_id/repos-POST.html
|
99
94
|
"""
|
100
95
|
|
@@ -5,8 +5,6 @@ Feature: request nested schema scaffolding
|
|
5
5
|
Scenario: scaffold a json schema for a "repos/show" in a nested controller spec
|
6
6
|
Given a file named "spec/requests/repos_spec.rb" with:
|
7
7
|
"""ruby
|
8
|
-
require "spec_helper"
|
9
|
-
|
10
8
|
describe Api::V1::ReposController, :lurker do
|
11
9
|
let!(:user) do
|
12
10
|
User.where(name: 'razum2um').first_or_create!.tap do |u|
|
@@ -7,8 +7,6 @@ Feature: request schema scaffolding
|
|
7
7
|
Scenario: scaffold a json schema for a "users/index" in request spec
|
8
8
|
Given a file named "spec/requests/users_spec.rb" with:
|
9
9
|
"""ruby
|
10
|
-
require "spec_helper"
|
11
|
-
|
12
10
|
describe Api::V1::UsersController, :lurker do
|
13
11
|
let!(:user) do
|
14
12
|
User.where(name: 'razum2um', surname: 'Marley').first_or_create!
|
@@ -17,12 +17,6 @@ Feature: schema suffixes
|
|
17
17
|
description: 'repo updating'
|
18
18
|
requestParameters:
|
19
19
|
properties:
|
20
|
-
id:
|
21
|
-
type: string
|
22
|
-
example: 1
|
23
|
-
user_id:
|
24
|
-
type: string
|
25
|
-
example: razum2um
|
26
20
|
repo:
|
27
21
|
type: object
|
28
22
|
properties:
|
@@ -56,8 +50,6 @@ Feature: schema suffixes
|
|
56
50
|
"""
|
57
51
|
And a file named "spec/requests/updating_repos_spec.rb" with:
|
58
52
|
"""ruby
|
59
|
-
require "spec_helper"
|
60
|
-
|
61
53
|
describe Api::V1::ReposController, :lurker, type: :request do
|
62
54
|
|
63
55
|
let(:user) do
|
@@ -70,7 +62,7 @@ Feature: schema suffixes
|
|
70
62
|
|
71
63
|
it "updates a repo name" do
|
72
64
|
expect {
|
73
|
-
patch "/api/v1/users/#{user.name}/repos/#{repo.name}.json", repo: { name: 'updated-name' }
|
65
|
+
patch "/api/v1/users/#{user.name}/repos/#{repo.name}.json", params: { repo: { name: 'updated-name' } }
|
74
66
|
expect(response).to be_success
|
75
67
|
}.to change { repo.reload.name } .from('lurker').to('updated-name')
|
76
68
|
end
|
@@ -88,12 +80,6 @@ Feature: schema suffixes
|
|
88
80
|
description: 'failed repo updating'
|
89
81
|
requestParameters:
|
90
82
|
properties:
|
91
|
-
id:
|
92
|
-
type: string
|
93
|
-
example: 1
|
94
|
-
user_id:
|
95
|
-
type: string
|
96
|
-
example: razum2um
|
97
83
|
repo:
|
98
84
|
type: object
|
99
85
|
properties:
|
@@ -127,8 +113,6 @@ Feature: schema suffixes
|
|
127
113
|
"""
|
128
114
|
And a file named "spec/requests/failed_updating_repos_spec.rb" with:
|
129
115
|
"""ruby
|
130
|
-
require "spec_helper"
|
131
|
-
|
132
116
|
describe Api::V1::ReposController, type: :request do
|
133
117
|
|
134
118
|
let(:user) do
|
@@ -141,7 +125,7 @@ Feature: schema suffixes
|
|
141
125
|
|
142
126
|
it "fails to update a repo with a blank name", lurker: 'failed' do
|
143
127
|
expect {
|
144
|
-
patch "/api/v1/users/#{user.name}/repos/#{repo.name}.json", repo: { name: '' }
|
128
|
+
patch "/api/v1/users/#{user.name}/repos/#{repo.name}.json", params: { repo: { name: '' } }
|
145
129
|
expect(response).not_to be_success
|
146
130
|
}.not_to change { repo.reload.name }
|
147
131
|
end
|
@@ -62,8 +62,6 @@ Feature: schema updating within test suite
|
|
62
62
|
Scenario: json schema tests response parameters and request parameters and show errors from both using "users/update"
|
63
63
|
Given a file named "spec/controllers/api/v2/users_controller_blank_spec.rb" with:
|
64
64
|
"""ruby
|
65
|
-
require "spec_helper"
|
66
|
-
|
67
65
|
describe Api::V2::UsersController, :lurker do
|
68
66
|
render_views
|
69
67
|
|
@@ -72,7 +70,7 @@ Feature: schema updating within test suite
|
|
72
70
|
end
|
73
71
|
|
74
72
|
it "updates a user surname as string" do
|
75
|
-
patch :update, id: user.id, user: { name: '', surname: 'Marley' }
|
73
|
+
patch :update, params: { id: user.id, user: { name: '', surname: 'Marley' } }
|
76
74
|
expect(response).not_to be_success
|
77
75
|
end
|
78
76
|
end
|
@@ -93,8 +91,6 @@ Feature: schema updating within test suite
|
|
93
91
|
Scenario: json schema tests response parameters and update request parameters using "users/update"
|
94
92
|
Given a file named "spec/controllers/api/v2/users_controller_spec.rb" with:
|
95
93
|
"""ruby
|
96
|
-
require "spec_helper"
|
97
|
-
|
98
94
|
describe Api::V2::UsersController, :lurker do
|
99
95
|
render_views
|
100
96
|
|
@@ -103,7 +99,7 @@ Feature: schema updating within test suite
|
|
103
99
|
end
|
104
100
|
|
105
101
|
it "updates a user surname as string" do
|
106
|
-
patch :update, id: user.id, user: { surname: 'Marley' }
|
102
|
+
patch :update, params: { id: user.id, user: { surname: 'Marley' } }
|
107
103
|
expect(response).to be_success
|
108
104
|
end
|
109
105
|
end
|
@@ -2,17 +2,14 @@ Given /^a checked file "([^"]*)" with:$/ do |file_name, file_content|
|
|
2
2
|
write_file(file_name, file_content)
|
3
3
|
|
4
4
|
@files ||= {}
|
5
|
-
|
6
|
-
end
|
7
|
-
|
8
|
-
Given /^an empty directory named "([^"]*)"$/ do |dir_name|
|
9
|
-
in_current_dir { _rm_rf(dir_name) }
|
10
|
-
create_dir(dir_name)
|
5
|
+
in_current_directory { @files[md5(file_name)] = checksum(file_name) }
|
11
6
|
end
|
12
7
|
|
13
8
|
Given /^a service file with:$/ do |file_content|
|
14
|
-
|
15
|
-
|
9
|
+
in_current_directory do
|
10
|
+
rails_app_class = Rails.application.class
|
11
|
+
rails_app_name = rails_app_class.respond_to?(:module_parent_name) ? rails_app_class.module_parent_name : rails_app_class.parent_name
|
12
|
+
write_file("#{Lurker::DEFAULT_SERVICE_PATH}/#{rails_app_name}#{Lurker::Service::SUFFIX}", file_content)
|
16
13
|
end
|
17
14
|
end
|
18
15
|
|
@@ -30,7 +27,14 @@ When /^I select "([^"]*)" hostname$/ do |host|
|
|
30
27
|
end
|
31
28
|
# FIXME: see multidomain feature - cannot select node in phantomjs
|
32
29
|
page.execute_script("window.submitForm.setState({host: jQuery('#hostname').val()});")
|
33
|
-
|
30
|
+
end
|
31
|
+
|
32
|
+
When /^I select "([^"]*)" request media type$/ do |type|
|
33
|
+
within(:xpath, "//*[@id='requestMediaType']") do
|
34
|
+
select(type)
|
35
|
+
end
|
36
|
+
# FIXME: cannot select node in phantomjs
|
37
|
+
page.execute_script("window.submitForm.setState({requestMediaType: jQuery('#requestMediaType').val()});")
|
34
38
|
end
|
35
39
|
|
36
40
|
When(/^I fill in the submit form field "([^"]*)" with "([^"]*)"$/) do |field, name|
|
@@ -76,7 +80,7 @@ end
|
|
76
80
|
Then /^the output should contain (failures|these lines):$/ do |_, lines|
|
77
81
|
out = all_output.dup
|
78
82
|
lines.split(/\n/).map(&:strip).each do |line|
|
79
|
-
next if line.blank?
|
83
|
+
next if line.strip!.blank?
|
80
84
|
expect(out).to match /#{Regexp.escape(line)}/
|
81
85
|
out.gsub!(/.*?#{Regexp.escape(line)}/m, '')
|
82
86
|
end
|
@@ -98,13 +102,13 @@ Then(/^I should see JSON response with "([^"]*)"$/) do |name|
|
|
98
102
|
end
|
99
103
|
|
100
104
|
Then /(?:a|the) checked file "([^"]*)" should not change$/ do |file_name|
|
101
|
-
|
105
|
+
in_current_directory do
|
102
106
|
expect(@files.try(:[], md5(file_name))).to eq checksum(file_name)
|
103
107
|
end
|
104
108
|
end
|
105
109
|
|
106
110
|
Then /(?:a|the) checked file "([^"]*)" should change$/ do |file_name|
|
107
|
-
|
111
|
+
in_current_directory do
|
108
112
|
expect(@files.try(:[], md5(file_name))).not_to eq checksum(file_name)
|
109
113
|
end
|
110
114
|
end
|