wcc-data 0.3.3 → 0.3.7
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/lib/wcc/data/nucleus/campus.rb +25 -3
- data/lib/wcc/data/version.rb +1 -1
- data/wcc-data.gemspec +2 -3
- metadata +9 -49
- data/.env.example +0 -3
- data/.gitignore +0 -18
- data/.rspec +0 -2
- data/Gemfile +0 -6
- data/Rakefile +0 -36
- data/bin/rspec +0 -17
- data/circle.yml +0 -6
- data/spec/spec_helper.rb +0 -24
- data/spec/support/inheritable_class_attribute_examples.rb +0 -16
- data/spec/wcc/data/config_spec.rb +0 -113
- data/spec/wcc/data/enumerated_type_spec.rb +0 -176
- data/spec/wcc/data/faraday_client_app_token_auth_spec.rb +0 -237
- data/spec/wcc/data/mapper/attributes_spec.rb +0 -94
- data/spec/wcc/data/mapper/json_response_spec.rb +0 -57
- data/spec/wcc/data/mapper/rest_configuration_spec.rb +0 -43
- data/spec/wcc/data/mapper/rest_query_spec.rb +0 -50
- data/spec/wcc/data/model_spec.rb +0 -33
- data/spec/wcc/data/nucleus/campus_spec.rb +0 -34
- data/spec/wcc/data/rack_client_app_token_auth_spec.rb +0 -219
- data/spec/wcc/data/response_spec.rb +0 -57
- data/spec/wcc/data/rest_endpoint_spec.rb +0 -71
- data/spec/wcc/data/service_spec.rb +0 -128
- data/spec/wcc/data_spec.rb +0 -25
data/spec/wcc/data/model_spec.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe WCC::Data::Model do
|
4
|
-
|
5
|
-
describe "inherited behavior" do
|
6
|
-
subject { described_class }
|
7
|
-
|
8
|
-
includes = [
|
9
|
-
WCC::Data::Mapper::Attributes,
|
10
|
-
]
|
11
|
-
|
12
|
-
extensions = [
|
13
|
-
WCC::Data::Mapper::JSONResponse,
|
14
|
-
WCC::Data::Mapper::RESTConfiguration,
|
15
|
-
WCC::Data::Mapper::RESTQuery,
|
16
|
-
]
|
17
|
-
|
18
|
-
includes.each do |mod|
|
19
|
-
it "includes #{mod}" do
|
20
|
-
expect(subject.ancestors).to include(mod)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
extensions.each do |mod|
|
25
|
-
it "extends #{mod}" do
|
26
|
-
extended_modules = (class << subject; self; end).included_modules
|
27
|
-
expect(extended_modules).to include(mod)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
end
|
32
|
-
|
33
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe WCC::Data::Nucleus::Campus do
|
4
|
-
it 'inherits EnumeratedType functionality' do
|
5
|
-
expect(described_class.ancestors).to include(WCC::Data::EnumeratedType)
|
6
|
-
end
|
7
|
-
|
8
|
-
context 'with defined data' do
|
9
|
-
it 'defines Dallas campus' do
|
10
|
-
campus = described_class[:dallas]
|
11
|
-
expect(campus).to be_a(described_class)
|
12
|
-
expect(campus.name).to eq('Dallas')
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'defines Fort Worth campus' do
|
16
|
-
campus = described_class[:ft_worth]
|
17
|
-
expect(campus).to be_a(described_class)
|
18
|
-
expect(campus.name).to eq('Fort Worth')
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'defines Plano campus' do
|
22
|
-
campus = described_class[:plano]
|
23
|
-
expect(campus).to be_a(described_class)
|
24
|
-
expect(campus.name).to eq('Plano')
|
25
|
-
end
|
26
|
-
|
27
|
-
it 'defines Frisco campus' do
|
28
|
-
campus = described_class[:frisco]
|
29
|
-
expect(campus).to be_a(described_class)
|
30
|
-
expect(campus.name).to eq('Frisco')
|
31
|
-
expect(campus.code).to eq('FRS')
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,219 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
RSpec.describe WCC::Data::RackClientAppTokenAuth do
|
4
|
-
|
5
|
-
describe WCC::Data::RackClientAppTokenAuth::RedisCache do
|
6
|
-
let(:connection) { instance_spy(Redis) }
|
7
|
-
let(:connection_lambda) { -> (&blk) { blk.call(connection) } }
|
8
|
-
|
9
|
-
describe "#initialize" do
|
10
|
-
it "requires a callable for Redis connection" do
|
11
|
-
expect { described_class.new }.to raise_error(ArgumentError)
|
12
|
-
obj = described_class.new(connection_lambda)
|
13
|
-
expect(obj.connection).to eq(connection_lambda)
|
14
|
-
end
|
15
|
-
|
16
|
-
it "allows setting a :cache_key option to change the token store" do
|
17
|
-
obj = described_class.new(connection_lambda, cache_key: "store")
|
18
|
-
expect(obj.cache_key).to eq("store")
|
19
|
-
end
|
20
|
-
|
21
|
-
it "allows setting the :cache_length" do
|
22
|
-
obj = described_class.new(connection_lambda, cache_length: 5)
|
23
|
-
expect(obj.cache_length).to eq(5)
|
24
|
-
end
|
25
|
-
|
26
|
-
it "defaults :cache_key to the value of the DEFAULT_CACHE_KEY constant" do
|
27
|
-
obj = described_class.new(connection_lambda)
|
28
|
-
expect(obj.cache_key).to eq(described_class::DEFAULT_CACHE_KEY)
|
29
|
-
end
|
30
|
-
|
31
|
-
it "defaults :cache_length to the value of DEFAULT_CACHE_LENGTH constant" do
|
32
|
-
obj = described_class.new(connection_lambda)
|
33
|
-
expect(obj.cache_length).to eq(described_class::DEFAULT_CACHE_LENGTH)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
describe "#<<" do
|
38
|
-
subject(:auth) { described_class.new(connection_lambda, cache_key: "test", cache_length: 123) }
|
39
|
-
|
40
|
-
it "calls SET with @cache_key joined to token by a dot and set to '1'" do
|
41
|
-
auth << "token"
|
42
|
-
expect(connection).to have_received(:set).with("test.token", "1")
|
43
|
-
end
|
44
|
-
|
45
|
-
it "calls EXPIRE with the configured cache length" do
|
46
|
-
auth << "token"
|
47
|
-
expect(connection).to have_received(:expire).with("test.token", 123)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
describe "#find" do
|
52
|
-
subject(:auth) { described_class.new(connection_lambda, cache_key: "test") }
|
53
|
-
|
54
|
-
it "returns the value from GET on the joined token key" do
|
55
|
-
expect(connection).to receive(:get).with("test.token").and_return("1")
|
56
|
-
expect(auth.find("token")).to eq("1")
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
describe "#initialize" do
|
62
|
-
it "takes an app argument and sets to @app" do
|
63
|
-
obj = described_class.new(:app)
|
64
|
-
expect(obj.app).to eq(:app)
|
65
|
-
end
|
66
|
-
|
67
|
-
it "takes a :cache option and sets to @cache" do
|
68
|
-
obj = described_class.new(:app, cache: :cache)
|
69
|
-
expect(obj.cache).to eq(:cache)
|
70
|
-
end
|
71
|
-
|
72
|
-
it "takes a :lookup_token and sets to @lookup_token" do
|
73
|
-
obj = described_class.new(:app, lookup_token: :lookup)
|
74
|
-
expect(obj.lookup_token).to eq(:lookup)
|
75
|
-
end
|
76
|
-
|
77
|
-
it "defaults :cache option to an instance of RedisCache" do
|
78
|
-
obj = described_class.new(:app)
|
79
|
-
expect(obj.cache).to be_a(described_class::RedisCache)
|
80
|
-
expect(obj.cache.connection).to eq(Sidekiq.method(:redis))
|
81
|
-
end
|
82
|
-
|
83
|
-
describe "default :lookup_token value" do
|
84
|
-
it "tries to fetch a token with the given value" do
|
85
|
-
expect(WCC::Data::Nucleus::ClientAppToken)
|
86
|
-
.to receive(:find).with("abc123").and_return(:val)
|
87
|
-
expect(described_class.new(:app).lookup_token.("abc123"))
|
88
|
-
.to eq(:val)
|
89
|
-
end
|
90
|
-
|
91
|
-
it "returns nil when InvalidResponse raised" do
|
92
|
-
allow(WCC::Data::Nucleus::ClientAppToken)
|
93
|
-
.to receive(:find).and_raise(WCC::Data::Mapper::InvalidResponse)
|
94
|
-
expect(described_class.new(:app).lookup_token.("abc123"))
|
95
|
-
.to be_nil
|
96
|
-
end
|
97
|
-
|
98
|
-
it "returns nil when RecordNotFound raised" do
|
99
|
-
allow(WCC::Data::Nucleus::ClientAppToken)
|
100
|
-
.to receive(:find).and_raise(WCC::Data::Mapper::RecordNotFound)
|
101
|
-
expect(described_class.new(:app).lookup_token.("abc123"))
|
102
|
-
.to be_nil
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
end
|
107
|
-
|
108
|
-
describe "#find" do
|
109
|
-
let(:cache) { instance_spy(described_class::RedisCache) }
|
110
|
-
subject(:auth) { described_class.new(:app, cache: cache) }
|
111
|
-
|
112
|
-
context "with token in the cache" do
|
113
|
-
before do
|
114
|
-
allow(auth.cache).to receive(:find).with("abc123").and_return("1")
|
115
|
-
end
|
116
|
-
|
117
|
-
it "calls find with token on the cache and then returns cached value" do
|
118
|
-
expect(auth.find("abc123"))
|
119
|
-
.to eq("1")
|
120
|
-
end
|
121
|
-
|
122
|
-
it "does not call lookup_token" do
|
123
|
-
expect(auth.lookup_token).to_not receive(:call)
|
124
|
-
auth.find("abc123")
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
|
-
context "with an empty cache" do
|
129
|
-
before do
|
130
|
-
allow(cache).to receive(:find).and_return(nil)
|
131
|
-
end
|
132
|
-
|
133
|
-
it "calls lookup_token with the token" do
|
134
|
-
expect(auth.lookup_token)
|
135
|
-
.to receive(:call).with("abc123").and_return(true)
|
136
|
-
expect(auth.find("abc123")).to eq(true)
|
137
|
-
end
|
138
|
-
|
139
|
-
context "with a valid token" do
|
140
|
-
before do
|
141
|
-
allow(auth.lookup_token).to receive(:call).and_return(true)
|
142
|
-
end
|
143
|
-
|
144
|
-
it "shovels the value into the cache" do
|
145
|
-
expect(cache).to receive(:<<).with("abc123")
|
146
|
-
auth.find("abc123")
|
147
|
-
end
|
148
|
-
|
149
|
-
it "returns a truthy value" do
|
150
|
-
expect(auth.find("abc123")).to be_truthy
|
151
|
-
end
|
152
|
-
end
|
153
|
-
|
154
|
-
context "with an invalid token" do
|
155
|
-
before do
|
156
|
-
allow(auth.lookup_token).to receive(:call).and_return(false)
|
157
|
-
end
|
158
|
-
|
159
|
-
it "does not shovel value into the cache" do
|
160
|
-
expect(auth.cache).to_not receive(:<<)
|
161
|
-
auth.find("abc123")
|
162
|
-
end
|
163
|
-
|
164
|
-
it "returns a falsey value" do
|
165
|
-
expect(auth.find("abc123")).to be_falsey
|
166
|
-
end
|
167
|
-
end
|
168
|
-
end
|
169
|
-
end
|
170
|
-
|
171
|
-
describe "#call" do
|
172
|
-
subject(:auth) { described_class.new(-> (env) {}, cache: cache) }
|
173
|
-
let(:cache) { instance_spy(described_class::RedisCache) }
|
174
|
-
let(:env) {
|
175
|
-
{
|
176
|
-
"HTTP_AUTHORIZATION" => "Bearer abc123",
|
177
|
-
}
|
178
|
-
}
|
179
|
-
|
180
|
-
|
181
|
-
it "passes the bearer token onto the find method" do
|
182
|
-
expect(auth).to receive(:find).with("abc123")
|
183
|
-
auth.call(env)
|
184
|
-
end
|
185
|
-
|
186
|
-
context "truthy find result" do
|
187
|
-
before do
|
188
|
-
allow(auth).to receive(:find).and_return(true)
|
189
|
-
end
|
190
|
-
|
191
|
-
it "passes the request on to the app" do
|
192
|
-
expect(auth.app).to receive(:call).with(env)
|
193
|
-
auth.call(env)
|
194
|
-
end
|
195
|
-
|
196
|
-
it "returns the value of app" do
|
197
|
-
allow(auth.app).to receive(:call).and_return(:value)
|
198
|
-
expect(auth.call(env)).to eq(:value)
|
199
|
-
end
|
200
|
-
end
|
201
|
-
|
202
|
-
context "falsey find result" do
|
203
|
-
before do
|
204
|
-
allow(auth).to receive(:find).and_return(false)
|
205
|
-
end
|
206
|
-
|
207
|
-
it "does not call app" do
|
208
|
-
expect(auth.app).to_not receive(:call)
|
209
|
-
auth.call(env)
|
210
|
-
end
|
211
|
-
|
212
|
-
it "returns a 403 response" do
|
213
|
-
response = auth.call(env)
|
214
|
-
|
215
|
-
expect(response).to eq([403, {}, ['{"error":"Invalid Bearer Token"}']])
|
216
|
-
end
|
217
|
-
end
|
218
|
-
end
|
219
|
-
end
|
@@ -1,57 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe WCC::Data::Response do
|
4
|
-
let(:unit) { WCC::Data::Response }
|
5
|
-
let(:raw) { double(:faraday_response) }
|
6
|
-
subject { unit.new(raw) }
|
7
|
-
|
8
|
-
describe "#initialize" do
|
9
|
-
it "takes a Faraday response object and sets it to @raw" do
|
10
|
-
expect(subject.raw).to eq(raw)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
describe "method delegation" do
|
15
|
-
it "delegates `body` to @raw" do
|
16
|
-
expect(raw).to receive(:body).and_return(:value)
|
17
|
-
expect(subject.body).to eq(:value)
|
18
|
-
expect(subject.respond_to?(:body)).to be_truthy
|
19
|
-
end
|
20
|
-
|
21
|
-
it "delegates `headers` to @raw" do
|
22
|
-
expect(raw).to receive(:headers).and_return(:value)
|
23
|
-
expect(subject.headers).to eq(:value)
|
24
|
-
expect(subject.respond_to?(:headers)).to be_truthy
|
25
|
-
end
|
26
|
-
|
27
|
-
it "delegates `status` to @raw" do
|
28
|
-
expect(raw).to receive(:status).and_return(:value)
|
29
|
-
expect(subject.status).to eq(:value)
|
30
|
-
expect(subject.respond_to?(:status)).to be_truthy
|
31
|
-
end
|
32
|
-
|
33
|
-
it "delegates `success?` to @raw" do
|
34
|
-
expect(raw).to receive(:success?).and_return(:value)
|
35
|
-
expect(subject.success?).to eq(:value)
|
36
|
-
expect(subject.respond_to?(:success?)).to be_truthy
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
describe "#json" do
|
41
|
-
it "returns JSON deserialized body" do
|
42
|
-
expect(raw).to receive(:body) {
|
43
|
-
%[{"name":"Bob","interests":["Fishing","Rowing","Golfing"]}]
|
44
|
-
}
|
45
|
-
expect(subject.json).to eq({
|
46
|
-
"name" => "Bob",
|
47
|
-
"interests" => ["Fishing", "Rowing", "Golfing"],
|
48
|
-
})
|
49
|
-
end
|
50
|
-
|
51
|
-
it "returns nil if body is not valid JSON" do
|
52
|
-
expect(raw).to receive(:body) { "" }
|
53
|
-
expect(subject.json).to be_nil
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
end
|
@@ -1,71 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe WCC::Data::RESTEndpoint do
|
4
|
-
let(:service) { WCC::Data::Service.new }
|
5
|
-
subject { described_class.new(service: service) }
|
6
|
-
|
7
|
-
describe "#initialize" do
|
8
|
-
subject { described_class }
|
9
|
-
it "sets @service from :service option" do
|
10
|
-
obj = subject.new(service: service)
|
11
|
-
expect(obj.service).to eq(service)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
shared_examples_for :rest_method_general_options do |method, verb, args|
|
16
|
-
let(:test_args) {
|
17
|
-
{ foo: "bar", baz: "bing" }
|
18
|
-
}
|
19
|
-
it "takes a hash as last argument and passes to underlying service" do
|
20
|
-
args = Array(args)
|
21
|
-
expect(service).to receive(verb).with(hash_including(test_args))
|
22
|
-
subject.public_send(method, *args, test_args)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
describe "#index" do
|
27
|
-
it_behaves_like :rest_method_general_options, :index, :get
|
28
|
-
|
29
|
-
it "calls #get directly on service" do
|
30
|
-
expect(service).to receive(:get).and_return("hi there")
|
31
|
-
expect(subject.index).to eq("hi there")
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
describe "#show" do
|
36
|
-
it_behaves_like :rest_method_general_options, :show, :get, 1
|
37
|
-
|
38
|
-
it "calls #get on service adding the id param to the URI" do
|
39
|
-
expect(service).to receive(:get).with(uri: "123").and_return("yo")
|
40
|
-
expect(subject.show(123)).to eq("yo")
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
describe "#create" do
|
45
|
-
it_behaves_like :rest_method_general_options, :create, :post, { test: 1 }
|
46
|
-
|
47
|
-
it "calls #post on service with attrs hash as body" do
|
48
|
-
expect(service).to receive(:post).with(body: { foo: "bar" }).and_return("hey bra")
|
49
|
-
expect(subject.create(foo: "bar")).to eq("hey bra")
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
describe "#update" do
|
54
|
-
it_behaves_like :rest_method_general_options, :update, :patch, [1, { test: 1 }]
|
55
|
-
|
56
|
-
it "calls #patch on service with id as URI and attrs as body" do
|
57
|
-
expect(service).to receive(:patch).with(uri: "123", body: {}).and_return("sup")
|
58
|
-
expect(subject.update(123, {})).to eq("sup")
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
describe "#destroy" do
|
63
|
-
it_behaves_like :rest_method_general_options, :destroy, :delete, 1
|
64
|
-
|
65
|
-
it "calls #delete on service with id as URI" do
|
66
|
-
expect(service).to receive(:delete).with(uri: "123").and_return("oh noes!")
|
67
|
-
expect(subject.destroy(123)).to eq("oh noes!")
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
end
|
@@ -1,128 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe WCC::Data::Service do
|
4
|
-
let(:unit) { WCC::Data::Service }
|
5
|
-
let(:connection) { double() }
|
6
|
-
let(:default_args) {
|
7
|
-
{
|
8
|
-
uri: "http://test.com/foo/",
|
9
|
-
connection: connection,
|
10
|
-
}
|
11
|
-
}
|
12
|
-
subject { unit.new(default_args) }
|
13
|
-
|
14
|
-
describe "#initialize" do
|
15
|
-
it "sets :uri to @uri" do
|
16
|
-
expect(subject.uri).to eq(URI(default_args[:uri]))
|
17
|
-
end
|
18
|
-
|
19
|
-
it "sets :connection to @connection" do
|
20
|
-
expect(subject.connection).to eq(default_args[:connection])
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
describe "#merge" do
|
25
|
-
it "returns a new instance" do
|
26
|
-
merged = subject.merge
|
27
|
-
expect(merged).to be_a(unit)
|
28
|
-
expect(merged.object_id).to_not eq(subject.object_id)
|
29
|
-
end
|
30
|
-
|
31
|
-
it "merges the URI params" do
|
32
|
-
merged = subject.merge(uri: "bar/baz?query")
|
33
|
-
expect(merged.uri.path).to eq("/foo/bar/baz")
|
34
|
-
expect(merged.uri.query).to eq("query")
|
35
|
-
end
|
36
|
-
|
37
|
-
it "sets to the right instance's @connection" do
|
38
|
-
connection = :bar
|
39
|
-
merged = subject.merge(connection: connection)
|
40
|
-
expect(merged.connection).to eq(connection)
|
41
|
-
end
|
42
|
-
|
43
|
-
it "accepts a hash of arguments as well as an instance" do
|
44
|
-
right = unit.new(uri: "bar", connection: double())
|
45
|
-
merged = subject.merge(right)
|
46
|
-
expect(merged.uri).to eq(URI("http://test.com/foo/bar"))
|
47
|
-
expect(merged.connection).to eq(right.connection)
|
48
|
-
end
|
49
|
-
|
50
|
-
end
|
51
|
-
|
52
|
-
shared_examples_for :http_verb_methods do
|
53
|
-
it "request verb matches the method name" do
|
54
|
-
expect(connection).to receive(:run_request) do |verb, _, _, _|
|
55
|
-
expect(verb).to eq(method)
|
56
|
-
end
|
57
|
-
subject.send(method, {})
|
58
|
-
end
|
59
|
-
|
60
|
-
it "returns a WCC::Data::Response instance" do
|
61
|
-
expect(connection).to receive(:run_request) {}
|
62
|
-
expect(subject.send(method, {})).to be_a(WCC::Data::Response)
|
63
|
-
end
|
64
|
-
|
65
|
-
it "merges :uri arg onto @uri" do
|
66
|
-
expect(connection).to receive(:run_request) do |_, url, _, _|
|
67
|
-
expect(url).to eq(URI("http://test.com/foo/bar"))
|
68
|
-
end
|
69
|
-
subject.send(method, uri: "bar")
|
70
|
-
end
|
71
|
-
|
72
|
-
it "sets the request body with :body arg" do
|
73
|
-
expect(connection).to receive(:run_request) do |_, _, body, _|
|
74
|
-
expect(body).to eq("a string")
|
75
|
-
end
|
76
|
-
subject.send(method, body: "a string")
|
77
|
-
end
|
78
|
-
|
79
|
-
it "provides request headers with :headers arg" do
|
80
|
-
expect(connection).to receive(:run_request) do |_, _, _, headers|
|
81
|
-
expect(headers).to eq(:foo)
|
82
|
-
end
|
83
|
-
subject.send(method, headers: :foo)
|
84
|
-
end
|
85
|
-
|
86
|
-
it "updates the params on the request if :params argument provided" do
|
87
|
-
params = { foo: "bar" }
|
88
|
-
request = double(params: double(:params))
|
89
|
-
expect(connection).to receive(:run_request).and_yield(request)
|
90
|
-
|
91
|
-
expect(request.params).to receive(:update).with(params)
|
92
|
-
subject.send(method, params: params)
|
93
|
-
end
|
94
|
-
|
95
|
-
it "does not update the params on the request if :params is nil" do
|
96
|
-
request = double(params: double(:params))
|
97
|
-
expect(connection).to receive(:run_request).and_yield(request)
|
98
|
-
expect(request.params).to_not receive(:update)
|
99
|
-
subject.send(method, {})
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
describe "#get" do
|
104
|
-
let(:method) { :get }
|
105
|
-
it_behaves_like :http_verb_methods
|
106
|
-
end
|
107
|
-
|
108
|
-
describe "#post" do
|
109
|
-
let(:method) { :post }
|
110
|
-
it_behaves_like :http_verb_methods
|
111
|
-
end
|
112
|
-
|
113
|
-
describe "#put" do
|
114
|
-
let(:method) { :put }
|
115
|
-
it_behaves_like :http_verb_methods
|
116
|
-
end
|
117
|
-
|
118
|
-
describe "#patch" do
|
119
|
-
let(:method) { :patch }
|
120
|
-
it_behaves_like :http_verb_methods
|
121
|
-
end
|
122
|
-
|
123
|
-
describe "#delete" do
|
124
|
-
let(:method) { :delete }
|
125
|
-
it_behaves_like :http_verb_methods
|
126
|
-
end
|
127
|
-
|
128
|
-
end
|