flexirest 1.9.16 → 1.9.17
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 +6 -0
- data/docs/faking-calls.md +11 -0
- data/lib/flexirest/request.rb +10 -1
- data/lib/flexirest/version.rb +1 -1
- data/spec/lib/request_spec.rb +10 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 50fe9393bbb548c2052ca5f971b7c406a9daf742d398fcd0681a917e03dd6247
|
4
|
+
data.tar.gz: b1dc3e1b1c97626ed7956f7a7ba31f4bd424d9a1a539645de8bbd456348eb814
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 23ca59d17ad6df1bf15f8dc40bf4fd826132016d82de50a40824ac9d7d98858e92ab621bc8d0681bb61db950ae50853b3017bae86b8ae96ecccc1270a757c018
|
7
|
+
data.tar.gz: 60bae684f60df01e8419f97d870bb3412192c6e7c85ecff1abf578d6210bc8d336781e1f1bd1d4f05753b1cccd3a44923049dd43a76f55f5b3ee233807b75fbb
|
data/CHANGELOG.md
CHANGED
data/docs/faking-calls.md
CHANGED
@@ -16,6 +16,17 @@ class Person < Flexirest::Base
|
|
16
16
|
end
|
17
17
|
```
|
18
18
|
|
19
|
+
Alternatively, you can specify a symbol as the `fake` parameter, and Flexirest will call that method to get a string JSON as if it was the request body:
|
20
|
+
|
21
|
+
```ruby
|
22
|
+
class Person < Flexirest::Base
|
23
|
+
get :all, '/people', fake: :get_data
|
24
|
+
|
25
|
+
def get_data
|
26
|
+
{result: true}.to_json
|
27
|
+
end
|
28
|
+
end
|
29
|
+
```
|
19
30
|
|
20
31
|
-----
|
21
32
|
|
data/lib/flexirest/request.rb
CHANGED
@@ -191,9 +191,18 @@ module Flexirest
|
|
191
191
|
@body = nil
|
192
192
|
prepare_params
|
193
193
|
prepare_url
|
194
|
-
|
194
|
+
fake = @method[:options][:fake]
|
195
|
+
if fake.present?
|
195
196
|
if fake.respond_to?(:call)
|
196
197
|
fake = fake.call(self)
|
198
|
+
elsif @object.respond_to?(fake)
|
199
|
+
fake = @object.send(fake)
|
200
|
+
elsif @object.class.respond_to?(fake)
|
201
|
+
fake = @object.class.send(fake)
|
202
|
+
elsif @object.new.respond_to?(fake)
|
203
|
+
fake = @object.new.send(fake)
|
204
|
+
elsif @object.class.new.respond_to?(fake)
|
205
|
+
fake = @object.class.new.send(fake)
|
197
206
|
end
|
198
207
|
Flexirest::Logger.debug " \033[1;4;32m#{Flexirest.name}\033[0m #{@instrumentation_name} - Faked response found"
|
199
208
|
content_type = @method[:options][:fake_content_type] || "application/json"
|
data/lib/flexirest/version.rb
CHANGED
data/spec/lib/request_spec.rb
CHANGED
@@ -55,6 +55,7 @@ describe Flexirest::Request do
|
|
55
55
|
get :hal, "/hal", fake:"{\"_links\":{\"child\": {\"href\": \"/child/1\"}, \"other\": {\"href\": \"/other/1\"}, \"cars\":[{\"href\": \"/car/1\", \"name\":\"car1\"}, {\"href\": \"/car/2\", \"name\":\"car2\"}, {\"href\": \"/car/not-embed\", \"name\":\"car_not_embed\"} ], \"lazy\": {\"href\": \"/lazy/load\"}, \"invalid\": [{\"href\": \"/invalid/1\"}]}, \"_embedded\":{\"other\":{\"name\":\"Jane\"},\"child\":{\"name\":\"Billy\"}, \"cars\":[{\"_links\": {\"self\": {\"href\": \"/car/1\"} }, \"make\": \"Bugatti\", \"model\": \"Veyron\"}, {\"_links\": {\"self\": {\"href\": \"/car/2\"} }, \"make\": \"Ferrari\", \"model\": \"F458 Italia\"} ], \"invalid\": [{\"present\":true, \"_links\": {} } ] } }", has_many:{other:ExampleOtherClient}
|
56
56
|
get :fake_object, "/fake", fake:"{\"result\":true, \"list\":[1,2,3,{\"test\":true}], \"child\":{\"grandchild\":{\"test\":true}}}"
|
57
57
|
get :fake_proc_object, "/fake", fake:->(request) { "{\"result\":#{request.get_params[:id]}}" }
|
58
|
+
get :fake_method, "/fake", fake: :generate_fake_data
|
58
59
|
get :fake_array, "/fake", fake:"[1,2,3,{\"test\":true},null]"
|
59
60
|
get :fake_proc_array, "/fake", fake:->(request) { "[{\"result\":#{request.get_params[:id]}},null]" }
|
60
61
|
get :defaults, "/defaults", defaults:{overwrite:"no", persist:"yes"}
|
@@ -62,6 +63,10 @@ describe Flexirest::Request do
|
|
62
63
|
patch :only_changed_1, "/changed1", only_changed: true
|
63
64
|
patch :only_changed_2, "/changed2", only_changed: [:debug1, :debug2]
|
64
65
|
patch :only_changed_3, "/changed3", only_changed: { debug1: false, debug2: true }
|
66
|
+
|
67
|
+
def generate_fake_data
|
68
|
+
"{\"result\":true, \"list\":[1,2,3,{\"test\":true}], \"child\":{\"grandchild\":{\"test\":true}}}"
|
69
|
+
end
|
65
70
|
end
|
66
71
|
|
67
72
|
class ExampleLoadBalancedClient < Flexirest::Base
|
@@ -576,6 +581,11 @@ describe Flexirest::Request do
|
|
576
581
|
expect(object.result).to eq(1234)
|
577
582
|
end
|
578
583
|
|
584
|
+
it "should parse JSON object from a fake response generated by method defined as a symbol" do
|
585
|
+
object = ExampleClient.fake_method id:1234
|
586
|
+
expect(object.result).to eq(true)
|
587
|
+
end
|
588
|
+
|
579
589
|
it "should parse JSON array and return a nice result iterator for faked responses" do
|
580
590
|
object = ExampleClient.fake_array debug:true
|
581
591
|
expect(object).to be_instance_of(Flexirest::ResultIterator)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flexirest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.9.
|
4
|
+
version: 1.9.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Jeffries
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-08-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|