lhs 1.2.2 → 1.2.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 79706509847d5e009bdc036cd616b804d88c6dfa
4
- data.tar.gz: 2530ee6f7e347584cba1ec46c51ff13291307950
3
+ metadata.gz: 8d19aca4a6fcb6ae3919253eb5dfc56dd15b9dee
4
+ data.tar.gz: 923b15da62737dd1dd0b1f1fa9b326eba4401da9
5
5
  SHA512:
6
- metadata.gz: dbdb3f1be6fb3412a94f08f1bf55661b660ff7d0587a88b2f8704fce74ccdac57aaca9618d9bff8fd3cf8b34aec1b768b4fa25b6caa8ae30cc778b5912147b7b
7
- data.tar.gz: 63ef7d714318e13a90507512bd7a8be1e2bc4122931e2acc3bfc262142d9fb0b5ea3d9ebdfa414f2c96788a7635e241754e48deb63049da3e9da4f3a0af3ff1e
6
+ metadata.gz: 96cc284a37e9107fbb5eb86ca6baae8fa97cf23cef4db5dea91b78331d5ee145d03d2d27c8da555eb231ecb6b12595630bf9c10884b768f0c6a3a778db4818c2
7
+ data.tar.gz: e99b4c5f0d0f49b99e852e7439515b361c7d566d2bc8a1991d0f96d7fae3aeacd9c5883e180f57e12ad5ac6f6533c8827b56e11f59817502715a00e5debc4d0d
@@ -55,6 +55,7 @@ class LHS::Collection < LHS::Proxy
55
55
  include Enumerable
56
56
 
57
57
  attr_accessor :raw
58
+ delegate :last, :sample, :[], :present?, :blank?, :empty?, to: :raw
58
59
 
59
60
  def initialize(raw, parent, service)
60
61
  self.raw = raw
@@ -71,9 +72,5 @@ class LHS::Collection < LHS::Proxy
71
72
  end
72
73
  end
73
74
  end
74
-
75
- delegate :last, to: :raw
76
- delegate :sample, to: :raw
77
- delegate :[], to: :raw
78
75
  end
79
76
  end
@@ -54,6 +54,7 @@ class LHS::Service
54
54
  end
55
55
 
56
56
  def handle_include(data, key)
57
+ return unless data.present?
57
58
  options = if data._proxy.is_a? LHS::Collection
58
59
  options_for_multiple(data, key)
59
60
  else
data/lib/lhs/item.rb CHANGED
@@ -8,6 +8,8 @@ class LHS::Item < LHS::Proxy
8
8
  include Save
9
9
  include Update
10
10
 
11
+ delegate :present?, :blank?, :empty?, to: :_raw
12
+
11
13
  # prevent clashing with attributes of underlying data
12
14
  attr_accessor :errors
13
15
 
data/lib/lhs/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module LHS
2
- VERSION = "1.2.2"
2
+ VERSION = "1.2.3"
3
3
  end
@@ -0,0 +1,21 @@
1
+ require 'rails_helper'
2
+
3
+ describe LHS::Collection do
4
+
5
+ let(:data) {
6
+ ['ROLE_USER', 'ROLE_LOCALCH_ACCOUNT']
7
+ }
8
+
9
+ let(:collection){
10
+ described_class.new(LHS::Data.new(data))
11
+ }
12
+
13
+ context 'delegates methods to raw' do
14
+
15
+ %w(present? blank? empty?).each do |method|
16
+ it "delegates #{method} to raw" do
17
+ expect(collection.send(method.to_sym)).not_to be_nil
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,32 @@
1
+ require 'rails_helper'
2
+
3
+ describe LHS::Item do
4
+
5
+ before(:each) do
6
+ class SomeService < LHS::Service
7
+ endpoint ':datastore/v2/:campaign_id/feedbacks'
8
+ endpoint ':datastore/v2/feedbacks'
9
+ end
10
+ end
11
+
12
+ let(:json) do
13
+ load_json(:feedbacks)
14
+ end
15
+
16
+ let(:data) do
17
+ LHS::Data.new(json, nil, SomeService)
18
+ end
19
+
20
+ let(:item) do
21
+ data[0]
22
+ end
23
+
24
+ context 'delegates methods to raw' do
25
+
26
+ %w(present? blank? empty?).each do |method|
27
+ it "delegates #{method} to raw" do
28
+ expect(item.send(method.to_sym)).not_to be_nil
29
+ end
30
+ end
31
+ end
32
+ end
@@ -3,12 +3,17 @@ require 'rails_helper'
3
3
  describe LHS::Item do
4
4
 
5
5
  before(:each) do
6
+ LHC.config.placeholder('datastore', datastore)
6
7
  class SomeService < LHS::Service
7
8
  endpoint ':datastore/v2/:campaign_id/feedbacks'
8
9
  endpoint ':datastore/v2/feedbacks'
9
10
  end
10
11
  end
11
12
 
13
+ let(:datastore) do
14
+ 'http://datastore-stg.lb-service.sunrise.intra.local.ch'
15
+ end
16
+
12
17
  let(:json) do
13
18
  load_json(:feedbacks)
14
19
  end
@@ -24,16 +29,36 @@ describe LHS::Item do
24
29
  context 'destroy' do
25
30
 
26
31
  it 'destroys the item on the backend' do
27
- stub_request(:delete, 'http://datastore-stg.lb-service.sunrise.intra.local.ch/v2/feedbacks/0sdaetZ-OWVg4oBiBJ-7IQ')
32
+ stub_request(:delete, "#{datastore}/v2/feedbacks/0sdaetZ-OWVg4oBiBJ-7IQ")
28
33
  .to_return(status: 200)
29
34
  expect(item.destroy._raw).to eq item._raw
30
35
  end
31
36
 
32
37
  it 'updates the request information on the item' do
33
38
  no_content = 204
34
- stub_request(:delete, 'http://datastore-stg.lb-service.sunrise.intra.local.ch/v2/feedbacks/0sdaetZ-OWVg4oBiBJ-7IQ')
35
- .to_return(status: no_content)
39
+ stub_request(:delete, "#{datastore}/v2/feedbacks/0sdaetZ-OWVg4oBiBJ-7IQ")
40
+ .to_return(status: no_content)
36
41
  expect(item.destroy._request.response.code).to eq no_content
37
42
  end
43
+
44
+ context 'includes and empty response' do
45
+ before(:each) do
46
+ class AnotherService < LHS::Service
47
+ endpoint ':datastore/v2/:campaign_id/restaurants'
48
+ end
49
+ end
50
+
51
+ it 'destroys an item even though it includes additonal services and an empty response body' do
52
+ stub_request(:delete, "#{datastore}/v2/feedbacks/1")
53
+ .to_return(status: 204, body: '')
54
+ data = { href: "#{datastore}/v2/feedbacks/1", restaurant: {href: "#{datastore}/v2/restaurants/1"} }
55
+ stub_request(:get, "#{datastore}/v2/feedbacks?id=1")
56
+ .to_return(status: 200, body: data.to_json)
57
+ stub_request(:get, "#{datastore}/v2/restaurants/1")
58
+ .to_return(status: 200, body: {name: 'Casa Ferlin'}.to_json)
59
+ item = SomeService.includes(:restaurant).find(1)
60
+ item.destroy
61
+ end
62
+ end
38
63
  end
39
64
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lhs
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - local.ch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-12 00:00:00.000000000 Z
11
+ date: 2015-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lhc
@@ -156,6 +156,7 @@ files:
156
156
  - lib/lhs/version.rb
157
157
  - script/ci/build.sh
158
158
  - spec/.DS_Store
159
+ - spec/collection/delegate_spec.rb
159
160
  - spec/collection/meta_data_spec.rb
160
161
  - spec/collection/respond_to_spec.rb
161
162
  - spec/collection/without_object_items_spec.rb
@@ -206,6 +207,7 @@ files:
206
207
  - spec/dummy/public/500.html
207
208
  - spec/dummy/public/favicon.ico
208
209
  - spec/endpoint/for_url_spec.rb
210
+ - spec/item/delegate_spec.rb
209
211
  - spec/item/destroy_spec.rb
210
212
  - spec/item/getter_spec.rb
211
213
  - spec/item/respond_to_spec.rb
@@ -265,6 +267,7 @@ signing_key:
265
267
  specification_version: 4
266
268
  summary: LocalHttpServices
267
269
  test_files:
270
+ - spec/collection/delegate_spec.rb
268
271
  - spec/collection/meta_data_spec.rb
269
272
  - spec/collection/respond_to_spec.rb
270
273
  - spec/collection/without_object_items_spec.rb
@@ -315,6 +318,7 @@ test_files:
315
318
  - spec/dummy/public/500.html
316
319
  - spec/dummy/public/favicon.ico
317
320
  - spec/endpoint/for_url_spec.rb
321
+ - spec/item/delegate_spec.rb
318
322
  - spec/item/destroy_spec.rb
319
323
  - spec/item/getter_spec.rb
320
324
  - spec/item/respond_to_spec.rb