apipie-rails 0.3.5 → 0.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 +5 -13
- data/.travis.yml +4 -1
- data/CHANGELOG.md +19 -0
- data/Gemfile.rails32 +1 -0
- data/Gemfile.rails41 +1 -1
- data/Gemfile.rails42 +5 -0
- data/README.rst +21 -4
- data/apipie-rails.gemspec +3 -3
- data/app/controllers/apipie/apipies_controller.rb +22 -1
- data/app/public/apipie/javascripts/bundled/jquery.js +5 -0
- data/app/views/apipie/apipies/_disqus.html.erb +3 -3
- data/app/views/apipie/apipies/_errors.html.erb +23 -0
- data/app/views/apipie/apipies/_method_detail.erb +1 -9
- data/app/views/apipie/apipies/_params.html.erb +11 -5
- data/app/views/apipie/apipies/apipie_404.html.erb +4 -4
- data/app/views/apipie/apipies/static.html.erb +1 -6
- data/app/views/layouts/apipie/apipie.html.erb +4 -3
- data/config/locales/de.yml +28 -0
- data/config/locales/en.yml +30 -28
- data/config/locales/es.yml +27 -27
- data/config/locales/pl.yml +27 -28
- data/config/locales/pt-BR.yml +1 -1
- data/config/locales/ru.yml +27 -28
- data/config/locales/tr.yml +28 -0
- data/config/locales/zh-CN.yml +2 -2
- data/config/locales/zh-TW.yml +2 -2
- data/lib/apipie/configuration.rb +1 -1
- data/lib/apipie/dsl_definition.rb +1 -1
- data/lib/apipie/errors.rb +9 -1
- data/lib/apipie/extractor/collector.rb +2 -2
- data/lib/apipie/extractor/writer.rb +6 -0
- data/lib/apipie/helpers.rb +22 -1
- data/lib/apipie/param_description.rb +5 -2
- data/lib/apipie/validator.rb +7 -6
- data/lib/apipie/version.rb +1 -1
- data/lib/tasks/apipie.rake +3 -2
- data/spec/controllers/api/v1/architectures_controller_spec.rb +7 -8
- data/spec/controllers/api/v2/architectures_controller_spec.rb +1 -1
- data/spec/controllers/api/v2/nested/resources_controller_spec.rb +1 -1
- data/spec/controllers/apipies_controller_spec.rb +71 -27
- data/spec/controllers/concerns_controller_spec.rb +9 -9
- data/spec/controllers/users_controller_spec.rb +122 -123
- data/spec/dummy/app/controllers/users_controller.rb +2 -1
- data/spec/dummy/config/initializers/secret_token.rb +1 -0
- data/spec/lib/application_spec.rb +3 -3
- data/spec/lib/extractor/writer_spec.rb +4 -4
- data/spec/lib/method_description_spec.rb +7 -7
- data/spec/lib/param_description_spec.rb +61 -46
- data/spec/lib/param_group_spec.rb +11 -11
- data/spec/lib/rake_spec.rb +10 -10
- data/spec/lib/resource_description_spec.rb +6 -6
- data/spec/lib/validator_spec.rb +7 -7
- data/spec/spec_helper.rb +11 -1
- metadata +36 -33
- data/app/public/apipie/javascripts/bundled/jquery-1.7.2.js +0 -9404
@@ -174,8 +174,9 @@ class UsersController < ApplicationController
|
|
174
174
|
error 401, "Unauthorized"
|
175
175
|
error :code => 404, :description => "Not Found"
|
176
176
|
param :id, Integer, :desc => "user id", :required => true
|
177
|
-
param :session, String, :desc => "user is logged in", :required => true
|
177
|
+
param :session, String, :desc => "user is logged in", :required => true, :missing_message => lambda { "session_parameter_is_required" }
|
178
178
|
param :regexp_param, /^[0-9]* years/, :desc => "regexp param"
|
179
|
+
param :regexp2, /\b[A-Z0-9._%+-=]+@[A-Z0-9.-]+.[A-Z]{2,}\b/i, :desc => "email regexp"
|
179
180
|
param :array_param, ["100", "one", "two", "1", "2"], :desc => "array validator"
|
180
181
|
param :boolean_param, [true, false], :desc => "array validator with boolean"
|
181
182
|
param :proc_param, lambda { |val|
|
@@ -5,3 +5,4 @@
|
|
5
5
|
# Make sure the secret is at least 30 characters and all random,
|
6
6
|
# no regular words or you'll be exposed to dictionary attacks.
|
7
7
|
Dummy::Application.config.secret_token = '431a859f504c40942b0caa3a740492b8bfd87c7898db4b1c39557f440f1cdda99c54810ad81f6ba7e1cece75bc079caa52a5cb54dbd085effd038ba283b837ce'
|
8
|
+
Dummy::Application.config.secret_key_base = '431a859f504c40942b0caa3a740492b8bfd87c7898db4b1c39557f440f1cdda99c54810ad81f6ba7e1cece75bc079caa52a5cb54dbd085effd038ba283b837ce'
|
@@ -21,13 +21,13 @@ describe Apipie::Application do
|
|
21
21
|
context "with a defined base url" do
|
22
22
|
|
23
23
|
it "should not overwrite the parent resource" do
|
24
|
-
|
24
|
+
is_expected.not_to eq(Apipie.get_resource_name(Api::V2::ArchitecturesController))
|
25
25
|
end
|
26
26
|
|
27
27
|
end
|
28
28
|
|
29
29
|
context "with an undefined base url" do
|
30
|
-
before {Apipie.app.
|
30
|
+
before {allow(Apipie.app).to receive(:get_base_url) { nil }}
|
31
31
|
|
32
32
|
it "should not raise an error" do
|
33
33
|
expect { Apipie.get_resource_name(Api::V2::ArchitecturesController) }.
|
@@ -42,7 +42,7 @@ describe Apipie::Application do
|
|
42
42
|
before { Apipie.configuration.namespaced_resources = false }
|
43
43
|
|
44
44
|
it "should overwrite the the parent" do
|
45
|
-
|
45
|
+
is_expected.to eq(Apipie.get_resource_name(Api::V2::ArchitecturesController))
|
46
46
|
end
|
47
47
|
end
|
48
48
|
end
|
@@ -60,19 +60,19 @@ describe Apipie::Extractor::Writer do
|
|
60
60
|
describe "with doc_path overriden in configuration" do
|
61
61
|
it "should use the doc_path specified in configuration" do
|
62
62
|
Apipie.configuration.doc_path = "user_specified_doc_path"
|
63
|
-
writer_class.examples_file.
|
63
|
+
expect(writer_class.examples_file).to eql(File.join(Rails.root, "user_specified_doc_path", "apipie_examples.json"))
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
67
67
|
describe "storing of examples" do
|
68
68
|
before do
|
69
|
-
writer_class.
|
70
|
-
collector.
|
69
|
+
allow(writer_class).to receive(:examples_file) { test_examples_file }
|
70
|
+
expect(collector).to receive(:records).and_return(records)
|
71
71
|
end
|
72
72
|
|
73
73
|
it "should read and write examples" do
|
74
74
|
writer.write_examples
|
75
|
-
writer.send(:load_recorded_examples).
|
75
|
+
expect(writer.send(:load_recorded_examples)).to eql(loaded_records)
|
76
76
|
end
|
77
77
|
|
78
78
|
after do
|
@@ -12,7 +12,7 @@ describe Apipie::MethodDescription do
|
|
12
12
|
|
13
13
|
it "should return nil when no metadata is provided" do
|
14
14
|
method = Apipie::MethodDescription.new(:a, @resource, dsl_data)
|
15
|
-
method.to_json[:metadata].
|
15
|
+
expect(method.to_json[:metadata]).to eq(nil)
|
16
16
|
end
|
17
17
|
|
18
18
|
it "should return the metadata" do
|
@@ -21,7 +21,7 @@ describe Apipie::MethodDescription do
|
|
21
21
|
:weight => '830g'
|
22
22
|
}
|
23
23
|
method = Apipie::MethodDescription.new(:a, @resource, dsl_data.update(:meta => meta))
|
24
|
-
method.to_json[:metadata].
|
24
|
+
expect(method.to_json[:metadata]).to eq(meta)
|
25
25
|
end
|
26
26
|
|
27
27
|
end
|
@@ -34,7 +34,7 @@ describe Apipie::MethodDescription do
|
|
34
34
|
it "should return the deprecated flag when provided" do
|
35
35
|
dsl_data[:api_args] = [[:GET, "/foo/bar", "description", {:deprecated => true}]]
|
36
36
|
method = Apipie::MethodDescription.new(:a, @resource, dsl_data)
|
37
|
-
method.method_apis_to_json.first[:deprecated].
|
37
|
+
expect(method.method_apis_to_json.first[:deprecated]).to eq(true)
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
@@ -50,13 +50,13 @@ describe Apipie::MethodDescription do
|
|
50
50
|
end
|
51
51
|
|
52
52
|
it "should be ordered" do
|
53
|
-
@method.params.keys.
|
54
|
-
@method.to_json[:params].map{|h| h[:name]}.
|
53
|
+
expect(@method.params.keys).to eq([:a, :b, :c])
|
54
|
+
expect(@method.to_json[:params].map{|h| h[:name]}).to eq(['a', 'b', 'c'])
|
55
55
|
end
|
56
56
|
|
57
57
|
it "should be still ordered" do
|
58
|
-
@method.params.keys.
|
59
|
-
@method.to_json[:params].map{|h| h[:name]}.
|
58
|
+
expect(@method.params.keys).to eq([:a, :b, :c])
|
59
|
+
expect(@method.to_json[:params].map{|h| h[:name]}).to eq(['a', 'b', 'c'])
|
60
60
|
end
|
61
61
|
|
62
62
|
end
|
@@ -16,7 +16,7 @@ describe Apipie::ParamDescription do
|
|
16
16
|
|
17
17
|
it "should return nil when no metadata is provided" do
|
18
18
|
param = Apipie::ParamDescription.new(method_desc, :some_param, String)
|
19
|
-
param.to_json[:metadata].
|
19
|
+
expect(param.to_json[:metadata]).to eq(nil)
|
20
20
|
end
|
21
21
|
|
22
22
|
it "should return the metadata" do
|
@@ -25,7 +25,7 @@ describe Apipie::ParamDescription do
|
|
25
25
|
:weight => '830g'
|
26
26
|
}
|
27
27
|
param = Apipie::ParamDescription.new(method_desc, :some_param, String, :meta => meta)
|
28
|
-
param.to_json[:metadata].
|
28
|
+
expect(param.to_json[:metadata]).to eq(meta)
|
29
29
|
end
|
30
30
|
|
31
31
|
end
|
@@ -34,15 +34,15 @@ describe Apipie::ParamDescription do
|
|
34
34
|
|
35
35
|
it "should return true when show option is not provided" do
|
36
36
|
param = Apipie::ParamDescription.new(method_desc, :some_param, String)
|
37
|
-
param.to_json[:show].
|
37
|
+
expect(param.to_json[:show]).to eq(true)
|
38
38
|
end
|
39
39
|
|
40
40
|
it "should return the show option" do
|
41
41
|
param = Apipie::ParamDescription.new(method_desc, :some_param, String, :show => true)
|
42
|
-
param.to_json[:show].
|
42
|
+
expect(param.to_json[:show]).to eq(true)
|
43
43
|
|
44
44
|
param = Apipie::ParamDescription.new(method_desc, :some_param, String, :show => false)
|
45
|
-
param.to_json[:show].
|
45
|
+
expect(param.to_json[:show]).to eq(false)
|
46
46
|
end
|
47
47
|
|
48
48
|
end
|
@@ -52,7 +52,7 @@ describe Apipie::ParamDescription do
|
|
52
52
|
|
53
53
|
it "should return name" do
|
54
54
|
param = Apipie::ParamDescription.new(method_desc, :some_param, String)
|
55
|
-
param.to_json[:full_name].
|
55
|
+
expect(param.to_json[:full_name]).to eq('some_param')
|
56
56
|
end
|
57
57
|
|
58
58
|
end
|
@@ -63,7 +63,7 @@ describe Apipie::ParamDescription do
|
|
63
63
|
parent_param = Apipie::ParamDescription.new(method_desc, :parent, String)
|
64
64
|
nested_param = Apipie::ParamDescription.new(method_desc, :nested, String, :parent => parent_param)
|
65
65
|
|
66
|
-
nested_param.to_json[:full_name].
|
66
|
+
expect(nested_param.to_json[:full_name]).to eq('parent[nested]')
|
67
67
|
end
|
68
68
|
|
69
69
|
context "with the parent parameter set to not show" do
|
@@ -72,28 +72,43 @@ describe Apipie::ParamDescription do
|
|
72
72
|
parent_param = Apipie::ParamDescription.new(method_desc, :parent, String, :show => false)
|
73
73
|
nested_param = Apipie::ParamDescription.new(method_desc, :nested, String, :parent => parent_param)
|
74
74
|
|
75
|
-
nested_param.to_json[:full_name].
|
75
|
+
expect(nested_param.to_json[:full_name]).to eq('nested')
|
76
76
|
end
|
77
77
|
|
78
78
|
end
|
79
79
|
end
|
80
80
|
end
|
81
81
|
|
82
|
+
describe "manual validation text" do
|
83
|
+
it "should allow manual text" do
|
84
|
+
param = Apipie::ParamDescription.new(method_desc, :hidden_param, nil, :validations => "must be foo")
|
85
|
+
|
86
|
+
expect(param.validations).to include("\n<p>must be foo</p>\n")
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should allow multiple items" do
|
90
|
+
param = Apipie::ParamDescription.new(method_desc, :hidden_param, nil, :validations => ["> 0", "< 5"])
|
91
|
+
|
92
|
+
expect(param.validations).to include("\n<p>> 0</p>\n")
|
93
|
+
expect(param.validations).to include("\n<p>< 5</p>\n")
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
82
97
|
describe "validator selection" do
|
83
98
|
|
84
99
|
it "should allow nil validator" do
|
85
100
|
param = Apipie::ParamDescription.new(method_desc, :hidden_param, nil)
|
86
|
-
param.validator.
|
101
|
+
expect(param.validator).to be_nil
|
87
102
|
end
|
88
103
|
|
89
104
|
it "should throw exception on unknown validator" do
|
90
|
-
|
105
|
+
expect { Apipie::ParamDescription.new(method_desc, :param, :unknown) }.to raise_error(RuntimeError, /Validator.*not found/)
|
91
106
|
end
|
92
107
|
|
93
108
|
it "should pick type validator" do
|
94
|
-
Apipie::Validator::BaseValidator.
|
109
|
+
expect(Apipie::Validator::BaseValidator).to receive(:find).and_return(:validator_instance)
|
95
110
|
param = Apipie::ParamDescription.new(method_desc, :param, String)
|
96
|
-
param.validator.
|
111
|
+
expect(param.validator).to eq(:validator_instance)
|
97
112
|
end
|
98
113
|
|
99
114
|
end
|
@@ -112,27 +127,27 @@ describe Apipie::ParamDescription do
|
|
112
127
|
|
113
128
|
it "should replace string parameter name with colon prefix" do
|
114
129
|
param = Apipie::ParamDescription.new(concern_method_desc, ":string_subst", String)
|
115
|
-
param.name.
|
130
|
+
expect(param.name).to eq("string")
|
116
131
|
end
|
117
132
|
|
118
133
|
it "should replace symbol parameter name" do
|
119
134
|
param = Apipie::ParamDescription.new(concern_method_desc, :concern, String)
|
120
|
-
param.name.
|
135
|
+
expect(param.name).to eq(:user)
|
121
136
|
end
|
122
137
|
|
123
138
|
it "should keep original value for strings without colon prefixes" do
|
124
139
|
param = Apipie::ParamDescription.new(concern_method_desc, "string_subst", String)
|
125
|
-
param.name.
|
140
|
+
expect(param.name).to eq("string_subst")
|
126
141
|
end
|
127
142
|
|
128
143
|
it "should keep the original value when a string can't be replaced" do
|
129
144
|
param = Apipie::ParamDescription.new(concern_method_desc, ":param", String)
|
130
|
-
param.name.
|
145
|
+
expect(param.name).to eq(":param")
|
131
146
|
end
|
132
147
|
|
133
148
|
it "should keep the original value when a symbol can't be replaced" do
|
134
149
|
param = Apipie::ParamDescription.new(concern_method_desc, :param, String)
|
135
|
-
param.name.
|
150
|
+
expect(param.name).to eq(:param)
|
136
151
|
end
|
137
152
|
end
|
138
153
|
|
@@ -144,12 +159,12 @@ describe Apipie::ParamDescription do
|
|
144
159
|
|
145
160
|
it "should set param as required by default" do
|
146
161
|
param = Apipie::ParamDescription.new(method_desc, :required_by_default, String)
|
147
|
-
param.required.
|
162
|
+
expect(param.required).to be true
|
148
163
|
end
|
149
164
|
|
150
165
|
it "should be possible to set param as optional" do
|
151
166
|
param = Apipie::ParamDescription.new(method_desc, :optional, String, :required => false)
|
152
|
-
param.required.
|
167
|
+
expect(param.required).to be false
|
153
168
|
end
|
154
169
|
|
155
170
|
end
|
@@ -160,12 +175,12 @@ describe Apipie::ParamDescription do
|
|
160
175
|
|
161
176
|
it "should set param as optional by default" do
|
162
177
|
param = Apipie::ParamDescription.new(method_desc, :optional_by_default, String)
|
163
|
-
param.required.
|
178
|
+
expect(param.required).to be false
|
164
179
|
end
|
165
180
|
|
166
181
|
it "should be possible to set param as required" do
|
167
182
|
param = Apipie::ParamDescription.new(method_desc, :required, String, 'description','required' => true)
|
168
|
-
param.required.
|
183
|
+
expect(param.required).to be true
|
169
184
|
end
|
170
185
|
|
171
186
|
end
|
@@ -180,21 +195,21 @@ describe Apipie::ParamDescription do
|
|
180
195
|
context "when the param is required for current action" do
|
181
196
|
it "should set param as required" do
|
182
197
|
param = Apipie::ParamDescription.new(method_desc, :required, String, 'description','required' => :create)
|
183
|
-
param.required.
|
198
|
+
expect(param.required).to be true
|
184
199
|
end
|
185
200
|
end
|
186
201
|
|
187
202
|
context "when the param is required for multiple actions" do
|
188
203
|
it "should set param as required if it match current action" do
|
189
204
|
param = Apipie::ParamDescription.new(method_desc, :required, String, 'description','required' => [:update, :create])
|
190
|
-
param.required.
|
205
|
+
expect(param.required).to be true
|
191
206
|
end
|
192
207
|
end
|
193
208
|
|
194
209
|
context "when the param is not required for current action" do
|
195
210
|
it "should set param as not required" do
|
196
211
|
param = Apipie::ParamDescription.new(method_desc, :required, String, 'description','required' => :update)
|
197
|
-
param.required.
|
212
|
+
expect(param.required).to be false
|
198
213
|
end
|
199
214
|
end
|
200
215
|
end
|
@@ -218,13 +233,13 @@ describe Apipie::ParamDescription do
|
|
218
233
|
end
|
219
234
|
|
220
235
|
it "makes the param required" do
|
221
|
-
required.
|
222
|
-
required.
|
236
|
+
expect(required).to include :name
|
237
|
+
expect(required).to include :pass
|
223
238
|
end
|
224
239
|
|
225
240
|
it "doesn't allow nil" do
|
226
|
-
allowed_nil.
|
227
|
-
allowed_nil.
|
241
|
+
expect(allowed_nil).not_to include :name
|
242
|
+
expect(allowed_nil).not_to include :pass
|
228
243
|
end
|
229
244
|
end
|
230
245
|
|
@@ -235,17 +250,17 @@ describe Apipie::ParamDescription do
|
|
235
250
|
end
|
236
251
|
|
237
252
|
it "doesn't make the param required" do
|
238
|
-
required.
|
239
|
-
required.
|
253
|
+
expect(required).not_to include :name
|
254
|
+
expect(required).not_to include :pass
|
240
255
|
end
|
241
256
|
|
242
257
|
it "doesn't allow nil" do
|
243
|
-
allowed_nil.
|
244
|
-
allowed_nil.
|
258
|
+
expect(allowed_nil).not_to include :name
|
259
|
+
expect(allowed_nil).not_to include :pass
|
245
260
|
end
|
246
261
|
|
247
262
|
it "doesn't touch params with explicitly set allow_nil" do
|
248
|
-
allowed_nil.
|
263
|
+
expect(allowed_nil).not_to include :membership
|
249
264
|
end
|
250
265
|
end
|
251
266
|
|
@@ -255,13 +270,13 @@ describe Apipie::ParamDescription do
|
|
255
270
|
end
|
256
271
|
|
257
272
|
it "makes the param required" do
|
258
|
-
required.
|
259
|
-
required.
|
273
|
+
expect(required).to include :name
|
274
|
+
expect(required).to include :pass
|
260
275
|
end
|
261
276
|
|
262
277
|
it "doesn't allow nil" do
|
263
|
-
allowed_nil.
|
264
|
-
allowed_nil.
|
278
|
+
expect(allowed_nil).not_to include :name
|
279
|
+
expect(allowed_nil).not_to include :pass
|
265
280
|
end
|
266
281
|
end
|
267
282
|
end
|
@@ -279,10 +294,10 @@ describe Apipie::ParamDescription do
|
|
279
294
|
|
280
295
|
it "should include the nested params in the json" do
|
281
296
|
sub_params = subject.to_json[:params]
|
282
|
-
sub_params.size.
|
297
|
+
expect(sub_params.size).to eq(1)
|
283
298
|
sub_param = sub_params.first
|
284
|
-
sub_param[:name].
|
285
|
-
sub_param[:full_name].
|
299
|
+
expect(sub_param[:name]).to eq("answer")
|
300
|
+
expect(sub_param[:full_name]).to eq("param[answer]")
|
286
301
|
end
|
287
302
|
|
288
303
|
end
|
@@ -297,10 +312,10 @@ describe Apipie::ParamDescription do
|
|
297
312
|
|
298
313
|
it "should include the nested params in the json" do
|
299
314
|
sub_params = subject.to_json[:params]
|
300
|
-
sub_params.size.
|
315
|
+
expect(sub_params.size).to eq(1)
|
301
316
|
sub_param = sub_params.first
|
302
|
-
sub_param[:name].
|
303
|
-
sub_param[:full_name].
|
317
|
+
expect(sub_param[:name]).to eq("answer")
|
318
|
+
expect(sub_param[:full_name]).to eq("param[answer]")
|
304
319
|
end
|
305
320
|
|
306
321
|
end
|
@@ -312,7 +327,7 @@ describe Apipie::ParamDescription do
|
|
312
327
|
end
|
313
328
|
|
314
329
|
it "should include the nested params in the json" do
|
315
|
-
subject.to_json[:params].
|
330
|
+
expect(subject.to_json[:params]).to be_nil
|
316
331
|
end
|
317
332
|
|
318
333
|
end
|
@@ -322,8 +337,8 @@ describe Apipie::ParamDescription do
|
|
322
337
|
describe "Array with classes" do
|
323
338
|
it "should be valid for objects included in class array" do
|
324
339
|
param = Apipie::ParamDescription.new(method_desc, :param, [Fixnum, String])
|
325
|
-
expect { param.validate("1") }.
|
326
|
-
expect { param.validate(Fixnum) }.
|
340
|
+
expect { param.validate("1") }.not_to raise_error
|
341
|
+
expect { param.validate(Fixnum) }.to raise_error(Apipie::ParamInvalid)
|
327
342
|
end
|
328
343
|
end
|
329
344
|
|
@@ -10,25 +10,25 @@ describe "param groups" do
|
|
10
10
|
user_update_params = user_update_desc.validator.params_ordered.map(&:name)
|
11
11
|
|
12
12
|
common = user_update_params & user_create_params
|
13
|
-
common.sort_by(&:to_s).
|
13
|
+
expect(common.sort_by(&:to_s)).to eq(user_update_params.sort_by(&:to_s))
|
14
14
|
end
|
15
15
|
|
16
16
|
it "allows using groups is nested param descriptions" do
|
17
17
|
user_create_desc = Apipie["users#update"].params[:user]
|
18
18
|
user_create_params = user_create_desc.validator.params_ordered.map(&:name)
|
19
|
-
user_create_params.map(&:to_s).sort.
|
19
|
+
expect(user_create_params.map(&:to_s).sort).to eq(%w[membership name pass])
|
20
20
|
end
|
21
21
|
|
22
22
|
it "should allow adding additional params to group" do
|
23
23
|
user_create_desc = Apipie["users#create"].params[:user]
|
24
24
|
user_create_params = user_create_desc.validator.params_ordered.map(&:name)
|
25
|
-
user_create_params.map(&:to_s).sort.
|
25
|
+
expect(user_create_params.map(&:to_s).sort).to eq(%w[membership name pass permalink])
|
26
26
|
end
|
27
27
|
|
28
28
|
context "hash param" do
|
29
29
|
it "influences only its childs" do
|
30
|
-
Apipie["users#create"].params[:user].required.
|
31
|
-
Apipie["users#update"].params[:user].required.
|
30
|
+
expect(Apipie["users#create"].params[:user].required).to be true
|
31
|
+
expect(Apipie["users#update"].params[:user].required).to be true
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
@@ -39,21 +39,21 @@ describe "param groups" do
|
|
39
39
|
arch_v2_desc = Apipie["2.0#architectures#create"].params[:architecture]
|
40
40
|
arch_v2_params = arch_v2_desc.validator.params_ordered.map(&:name)
|
41
41
|
|
42
|
-
arch_v1_params.sort_by(&:to_s).
|
42
|
+
expect(arch_v1_params.sort_by(&:to_s)).to eq(arch_v2_params.sort_by(&:to_s))
|
43
43
|
end
|
44
44
|
|
45
45
|
it "should replace parameter name in a group when it comes from concern" do
|
46
|
-
Apipie["overridden_concern_resources#update"].params.has_key?(:user).
|
46
|
+
expect(Apipie["overridden_concern_resources#update"].params.has_key?(:user)).to eq(true)
|
47
47
|
end
|
48
48
|
|
49
49
|
it "shouldn't replace parameter name in a group redefined in the controller" do
|
50
|
-
Apipie["overridden_concern_resources#create"].params.has_key?(:concern).
|
51
|
-
Apipie["overridden_concern_resources#create"].params.has_key?(:user).
|
50
|
+
expect(Apipie["overridden_concern_resources#create"].params.has_key?(:concern)).to eq(true)
|
51
|
+
expect(Apipie["overridden_concern_resources#create"].params.has_key?(:user)).to eq(false)
|
52
52
|
end
|
53
53
|
|
54
54
|
it "shouldn't replace name of a parameter defined in the controller" do
|
55
|
-
Apipie["overridden_concern_resources#custom"].params.has_key?(:concern).
|
56
|
-
Apipie["overridden_concern_resources#custom"].params.has_key?(:user).
|
55
|
+
expect(Apipie["overridden_concern_resources#custom"].params.has_key?(:concern)).to eq(true)
|
56
|
+
expect(Apipie["overridden_concern_resources#custom"].params.has_key?(:user)).to eq(false)
|
57
57
|
end
|
58
58
|
|
59
59
|
end
|