lurker 0.6.8 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|