lhs 3.0.0 → 3.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.localch.yml +190 -0
  3. data/.rubocop.yml +7 -0
  4. data/cider-ci.yml +2 -1
  5. data/cider-ci/jobs/rspec.yml +48 -0
  6. data/cider-ci/jobs/rubocop.yml +55 -0
  7. data/cider-ci/scripts/bundle.yml +2 -0
  8. data/cider-ci/scripts/github_comment.yml +6 -0
  9. data/cider-ci/scripts/rspec.yml +4 -0
  10. data/cider-ci/scripts/rubocop.yml +5 -0
  11. data/cider-ci/scripts/ruby-version.yml +2 -0
  12. data/cider-ci/scripts/tmp-cache.yml +2 -0
  13. data/lhs.gemspec +1 -0
  14. data/lib/lhs/collection.rb +2 -6
  15. data/lib/lhs/concerns/data/json.rb +1 -1
  16. data/lib/lhs/concerns/item/save.rb +11 -10
  17. data/lib/lhs/concerns/item/update.rb +1 -1
  18. data/lib/lhs/concerns/item/validation.rb +2 -2
  19. data/lib/lhs/concerns/record/all.rb +1 -2
  20. data/lib/lhs/concerns/record/batch.rb +2 -3
  21. data/lib/lhs/concerns/record/create.rb +7 -8
  22. data/lib/lhs/concerns/record/endpoints.rb +2 -3
  23. data/lib/lhs/concerns/record/find.rb +6 -6
  24. data/lib/lhs/concerns/record/find_by.rb +8 -8
  25. data/lib/lhs/concerns/record/first.rb +0 -1
  26. data/lib/lhs/concerns/record/includes.rb +0 -1
  27. data/lib/lhs/concerns/record/mapping.rb +0 -1
  28. data/lib/lhs/concerns/record/model.rb +0 -1
  29. data/lib/lhs/concerns/record/request.rb +18 -14
  30. data/lib/lhs/concerns/record/where.rb +0 -1
  31. data/lib/lhs/data.rb +3 -4
  32. data/lib/lhs/endpoint.rb +1 -2
  33. data/lib/lhs/errors.rb +7 -13
  34. data/lib/lhs/item.rb +5 -9
  35. data/lib/lhs/record.rb +12 -8
  36. data/lib/lhs/version.rb +1 -1
  37. data/spec/collection/delegate_spec.rb +0 -2
  38. data/spec/collection/enumerable_spec.rb +2 -4
  39. data/spec/collection/meta_data_spec.rb +0 -1
  40. data/spec/collection/respond_to_spec.rb +0 -1
  41. data/spec/collection/without_object_items_spec.rb +0 -1
  42. data/spec/data/collection_spec.rb +4 -7
  43. data/spec/data/item_spec.rb +3 -5
  44. data/spec/data/merge_spec.rb +7 -9
  45. data/spec/data/raw_spec.rb +3 -5
  46. data/spec/data/respond_to_spec.rb +3 -5
  47. data/spec/data/root_spec.rb +3 -5
  48. data/spec/data/select_spec.rb +2 -4
  49. data/spec/data/to_json_spec.rb +5 -7
  50. data/spec/dummy/bin/rails +1 -1
  51. data/spec/dummy/config.ru +1 -1
  52. data/spec/dummy/config/initializers/cookies_serializer.rb +1 -1
  53. data/spec/endpoint/for_url_spec.rb +3 -5
  54. data/spec/item/delegate_spec.rb +0 -2
  55. data/spec/item/destroy_spec.rb +3 -5
  56. data/spec/item/errors_spec.rb +20 -23
  57. data/spec/item/getter_spec.rb +1 -3
  58. data/spec/item/internal_data_structure_spec.rb +2 -3
  59. data/spec/item/respond_to_spec.rb +1 -1
  60. data/spec/item/save_spec.rb +7 -10
  61. data/spec/item/setter_spec.rb +2 -4
  62. data/spec/item/update_spec.rb +4 -7
  63. data/spec/item/validation_spec.rb +7 -9
  64. data/spec/proxy/load_spec.rb +0 -2
  65. data/spec/record/all_spec.rb +10 -12
  66. data/spec/record/build_spec.rb +0 -2
  67. data/spec/record/create_spec.rb +8 -10
  68. data/spec/record/creation_failed_spec.rb +4 -6
  69. data/spec/record/definitions_spec.rb +1 -3
  70. data/spec/record/endpoint_misconfiguration_spec.rb +2 -4
  71. data/spec/record/endpoint_options_spec.rb +0 -2
  72. data/spec/record/endpoints_spec.rb +1 -6
  73. data/spec/record/find_each_spec.rb +2 -4
  74. data/spec/record/find_in_batches_spec.rb +4 -6
  75. data/spec/record/find_spec.rb +10 -13
  76. data/spec/record/first_spec.rb +0 -3
  77. data/spec/record/includes_spec.rb +15 -20
  78. data/spec/record/mapping_spec.rb +13 -15
  79. data/spec/record/model_name_spec.rb +0 -2
  80. data/spec/record/new_spec.rb +4 -2
  81. data/spec/record/request_spec.rb +1 -3
  82. data/spec/record/where_spec.rb +1 -3
  83. data/spec/spec_helper.rb +1 -1
  84. data/spec/support/cleanup_configuration.rb +0 -2
  85. data/spec/support/cleanup_endpoints.rb +0 -1
  86. data/spec/support/cleanup_records.rb +0 -2
  87. metadata +26 -4
  88. data/cider-ci/contexts/rspec.yml +0 -16
  89. data/cider-ci/jobs/tests.yml +0 -27
@@ -1,9 +1,7 @@
1
1
  require 'rails_helper'
2
2
 
3
3
  describe LHS::Record do
4
-
5
4
  context 'endpoints' do
6
-
7
5
  let(:datastore) { 'http://local.ch/v2' }
8
6
 
9
7
  before(:each) do
@@ -16,7 +14,7 @@ describe LHS::Record do
16
14
  end
17
15
 
18
16
  it 'stores all the endpoints by url' do
19
- expect(LHS::Record::Endpoints.all[':datastore/entries/:entry_id/content-ads/:campaign_id/feedbacks']).to be
17
+ expect(LHS::Record::Endpoints.all[':datastore/entries/:entry_id/content-ads/:campaign_id/feedbacks']).to be
20
18
  expect(LHS::Record::Endpoints.all[':datastore/:campaign_id/feedbacks']).to be
21
19
  expect(LHS::Record::Endpoints.all[':datastore/feedbacks']).to be
22
20
  end
@@ -44,7 +42,6 @@ describe LHS::Record do
44
42
  end
45
43
 
46
44
  context 'compute url from endpoint' do
47
-
48
45
  before(:each) do
49
46
  class Feedback < LHS::Record
50
47
  endpoint ':datastore/feedbacks'
@@ -59,7 +56,6 @@ describe LHS::Record do
59
56
  end
60
57
 
61
58
  context 'unsorted endpoints' do
62
-
63
59
  before(:each) do
64
60
  class AnotherRecord < LHS::Record
65
61
  endpoint ':datastore/feedbacks'
@@ -72,7 +68,6 @@ describe LHS::Record do
72
68
  stub_request(:get, "#{datastore}/entries/123/content-ads/123/feedbacks").to_return(status: 200)
73
69
  AnotherRecord.where(campaign_id: 123, entry_id: 123)
74
70
  end
75
-
76
71
  end
77
72
  end
78
73
  end
@@ -1,13 +1,12 @@
1
1
  require 'rails_helper'
2
2
 
3
3
  describe LHS::Collection do
4
-
5
4
  let(:total) { 443 }
6
5
 
7
6
  let(:limit) { 100 }
8
7
 
9
8
  def api_response(ids, offset)
10
- records = ids.map{|i| {id: i}}
9
+ records = ids.map { |i| { id: i } }
11
10
  {
12
11
  items: records,
13
12
  total: total,
@@ -27,7 +26,6 @@ describe LHS::Collection do
27
26
  end
28
27
 
29
28
  context 'find_each' do
30
-
31
29
  it 'processes each record by fetching records in batches' do
32
30
  stub_request(:get, "#{datastore}/feedbacks?limit=100&offset=1").to_return(status: 200, body: api_response((1..100).to_a, 1))
33
31
  stub_request(:get, "#{datastore}/feedbacks?limit=100&offset=101").to_return(status: 200, body: api_response((101..200).to_a, 101))
@@ -42,6 +40,6 @@ describe LHS::Collection do
42
40
  expect(record._proxy).to be_kind_of LHS::Item
43
41
  end
44
42
  expect(count).to eq total
45
- end
43
+ end
46
44
  end
47
45
  end
@@ -1,13 +1,12 @@
1
1
  require 'rails_helper'
2
2
 
3
3
  describe LHS::Collection do
4
-
5
4
  let(:total) { 443 }
6
5
 
7
6
  let(:limit) { 100 }
8
7
 
9
8
  def api_response(ids, offset)
10
- records = ids.map{|i| {id: i}}
9
+ records = ids.map { |i| { id: i } }
11
10
  {
12
11
  items: records,
13
12
  total: total,
@@ -27,7 +26,6 @@ describe LHS::Collection do
27
26
  end
28
27
 
29
28
  context 'find_batches' do
30
-
31
29
  it 'processes records in batches' do
32
30
  stub_request(:get, "#{datastore}/feedbacks?limit=100&offset=1").to_return(status: 200, body: api_response((1..100).to_a, 1))
33
31
  stub_request(:get, "#{datastore}/feedbacks?limit=100&offset=101").to_return(status: 200, body: api_response((101..200).to_a, 101))
@@ -38,7 +36,7 @@ describe LHS::Collection do
38
36
  Record.find_in_batches do |records|
39
37
  count += records.count
40
38
  expect(records).to be_kind_of Record
41
- expect(records._proxy).to be_kind_of LHS::Collection
39
+ expect(records._proxy).to be_kind_of described_class
42
40
  end
43
41
  expect(count).to eq total
44
42
  end
@@ -53,7 +51,7 @@ describe LHS::Collection do
53
51
  Record.find_in_batches(batch_size: 230) do |records|
54
52
  count += records.count
55
53
  expect(records).to be_kind_of Record
56
- expect(records._proxy).to be_kind_of LHS::Collection
54
+ expect(records._proxy).to be_kind_of described_class
57
55
  end
58
56
  expect(count).to eq total
59
57
  end
@@ -61,7 +59,7 @@ describe LHS::Collection do
61
59
  it 'forwards offset' do
62
60
  stub_request(:get, "#{datastore}/feedbacks?limit=100&offset=401").to_return(status: 200, body: api_response((401..total).to_a, 401))
63
61
  Record.find_in_batches(start: 401) do |records|
64
- expect(records.count).to eq(total-400)
62
+ expect(records.count).to eq(total - 400)
65
63
  end
66
64
  end
67
65
  end
@@ -1,7 +1,6 @@
1
1
  require 'rails_helper'
2
2
 
3
3
  describe LHS::Record do
4
-
5
4
  let(:datastore) { 'http://local.ch/v2' }
6
5
 
7
6
  before(:each) do
@@ -15,24 +14,23 @@ describe LHS::Record do
15
14
  end
16
15
 
17
16
  context 'find' do
18
-
19
17
  it 'finds a single unique record' do
20
- stub_request(:get, "#{datastore}/feedbacks/z12f-3asm3ngals").
21
- to_return(status: 200, body: load_json(:feedback))
18
+ stub_request(:get, "#{datastore}/feedbacks/z12f-3asm3ngals")
19
+ .to_return(status: 200, body: load_json(:feedback))
22
20
  record = Record.find('z12f-3asm3ngals')
23
21
  expect(record).to be_kind_of Record
24
22
  expect(record.source_id).to be_kind_of String
25
23
  end
26
24
 
27
25
  it 'raises if nothing was found' do
28
- stub_request(:get, "#{datastore}/feedbacks/not-existing").
29
- to_return(status: 404)
26
+ stub_request(:get, "#{datastore}/feedbacks/not-existing")
27
+ .to_return(status: 404)
30
28
  expect { Record.find('not-existing') }.to raise_error LHC::NotFound
31
29
  end
32
30
 
33
31
  it 'finds unique item by providing parameters' do
34
32
  stub_request(:get, "#{datastore}/content-ads/123/feedbacks/123")
35
- .to_return(body: "{}")
33
+ .to_return(body: "{}")
36
34
  data = Record.find(campaign_id: '123', id: '123')
37
35
  expect(data._proxy).to be_kind_of LHS::Item
38
36
  end
@@ -41,15 +39,15 @@ describe LHS::Record do
41
39
  data = JSON.parse(load_json(:feedbacks))
42
40
  data['items'] = [data['items'].first]
43
41
  stub_request(:get, "#{datastore}/content-ads/123/feedbacks/123")
44
- .to_return(body: data.to_json)
42
+ .to_return(body: data.to_json)
45
43
  data = Record.find(campaign_id: '123', id: '123')
46
44
  expect(data._proxy).to be_kind_of LHS::Item
47
45
  end
48
46
 
49
47
  it 'fails when multiple items where found by parameters' do
50
48
  stub_request(:get, "#{datastore}/content-ads/123/feedbacks/123")
51
- .to_return(body: load_json(:feedbacks))
52
- expect(->{
49
+ .to_return(body: load_json(:feedbacks))
50
+ expect(lambda {
53
51
  Record.find(campaign_id: '123', id: '123')
54
52
  }).to raise_error LHC::NotFound
55
53
  end
@@ -58,8 +56,8 @@ describe LHS::Record do
58
56
  data = JSON.parse(load_json(:feedbacks))
59
57
  data['items'] = []
60
58
  stub_request(:get, "#{datastore}/content-ads/123/feedbacks/123")
61
- .to_return(body: data.to_json)
62
- expect(->{
59
+ .to_return(body: data.to_json)
60
+ expect(lambda {
63
61
  Record.find(campaign_id: '123', id: '123')
64
62
  }).to raise_error LHC::NotFound
65
63
  end
@@ -69,6 +67,5 @@ describe LHS::Record do
69
67
  .to_return(status: 404)
70
68
  expect { Record.find(campaign_id: '123', id: '123') }.to raise_error LHC::NotFound
71
69
  end
72
-
73
70
  end
74
71
  end
@@ -1,7 +1,6 @@
1
1
  require 'rails_helper'
2
2
 
3
3
  describe LHS::Record do
4
-
5
4
  let(:datastore) { 'http://local.ch/v2' }
6
5
 
7
6
  before(:each) do
@@ -13,7 +12,6 @@ describe LHS::Record do
13
12
  end
14
13
 
15
14
  context 'first' do
16
-
17
15
  it 'finds a single record' do
18
16
  stub_request(:get, "#{datastore}/feedbacks?limit=1")
19
17
  .to_return(status: 200, body: load_json(:feedback))
@@ -30,7 +28,6 @@ describe LHS::Record do
30
28
  end
31
29
 
32
30
  context 'first!' do
33
-
34
31
  it 'raises if nothing was found with parameters' do
35
32
  stub_request(:get, "#{datastore}/feedbacks?limit=1")
36
33
  .to_return(status: 404)
@@ -1,7 +1,6 @@
1
1
  require 'rails_helper'
2
2
 
3
3
  describe LHS::Record do
4
-
5
4
  let(:datastore) { 'http://local.ch/v2' }
6
5
  before(:each) { LHC.config.placeholder('datastore', datastore) }
7
6
 
@@ -39,14 +38,14 @@ describe LHS::Record do
39
38
  endpoint ':datastore/favorites/:id'
40
39
  end
41
40
  stub_request(:get, "#{datastore}/local-entries/1")
42
- .to_return(body: {company_name: 'local.ch'}.to_json)
41
+ .to_return(body: { company_name: 'local.ch' }.to_json)
43
42
  stub_request(:get, "#{datastore}/users/1")
44
- .to_return(body: {name: 'Mario'}.to_json)
43
+ .to_return(body: { name: 'Mario' }.to_json)
45
44
  stub_request(:get, "#{datastore}/favorites/1")
46
45
  .to_return(body: {
47
- local_entry: {href: "#{datastore}/local-entries/1"},
48
- user: {href: "#{datastore}/users/1"}
49
- }.to_json)
46
+ local_entry: { href: "#{datastore}/local-entries/1" },
47
+ user: { href: "#{datastore}/users/1" }
48
+ }.to_json)
50
49
  end
51
50
 
52
51
  it 'includes a resource' do
@@ -56,6 +55,7 @@ describe LHS::Record do
56
55
 
57
56
  it 'includes a list of resources' do
58
57
  favorite = Favorite.includes(:local_entry, :user).find(1)
58
+ expect(favorite.local_entry).to be_kind_of LocalEntry
59
59
  expect(favorite.local_entry.company_name).to eq 'local.ch'
60
60
  expect(favorite.user.name).to eq 'Mario'
61
61
  end
@@ -68,7 +68,6 @@ describe LHS::Record do
68
68
  end
69
69
 
70
70
  context 'multilevel includes' do
71
-
72
71
  before(:each) do
73
72
  class Feedback < LHS::Record
74
73
  endpoint ':datastore/feedbacks'
@@ -80,7 +79,6 @@ describe LHS::Record do
80
79
  end
81
80
 
82
81
  it 'includes linked resources while fetching multiple resources from one service' do
83
-
84
82
  stub_request(:get, "#{datastore}/feedbacks?has_reviews=true")
85
83
  .to_return(status: 200, body: {
86
84
  items: [
@@ -96,7 +94,6 @@ describe LHS::Record do
96
94
  end
97
95
 
98
96
  it 'includes linked resources while fetching a single resource from one service' do
99
-
100
97
  stub_request(:get, "#{datastore}/feedbacks/123")
101
98
  .to_return(status: 200, body: {
102
99
  'href' => "#{datastore}/feedbacks/-Sc4_pYNpqfsudzhtivfkA",
@@ -108,7 +105,6 @@ describe LHS::Record do
108
105
  end
109
106
 
110
107
  it 'includes linked resources with array while fetching a single resource from one service' do
111
-
112
108
  stub_request(:get, "#{datastore}/feedbacks/123")
113
109
  .to_return(status: 200, body: {
114
110
  'href' => "#{datastore}/feedbacks/-Sc4_pYNpqfsudzhtivfkA",
@@ -121,7 +117,6 @@ describe LHS::Record do
121
117
  end
122
118
 
123
119
  it 'includes list of linked resources while fetching a single resource from one service' do
124
-
125
120
  stub_request(:get, "#{datastore}/feedbacks/123")
126
121
  .to_return(status: 200, body: {
127
122
  'href' => "#{datastore}/feedbacks/-Sc4_pYNpqfsudzhtivfkA",
@@ -136,18 +131,17 @@ describe LHS::Record do
136
131
  end
137
132
 
138
133
  context 'include objects from known services' do
139
-
140
134
  let(:stub_feedback_request) do
141
135
  stub_request(:get, "#{datastore}/feedbacks")
142
136
  .to_return(status: 200, body: {
143
- items: [
144
- {
145
- 'href' => "#{datastore}/feedbacks/-Sc4_pYNpqfsudzhtivfkA",
146
- 'entry' => {
147
- 'href' => "#{datastore}/local-entries/lakj35asdflkj1203va"
148
- }
137
+ items: [
138
+ {
139
+ 'href' => "#{datastore}/feedbacks/-Sc4_pYNpqfsudzhtivfkA",
140
+ 'entry' => {
141
+ 'href' => "#{datastore}/local-entries/lakj35asdflkj1203va"
149
142
  }
150
- ]
143
+ }
144
+ ]
151
145
  }.to_json)
152
146
  end
153
147
 
@@ -160,6 +154,7 @@ describe LHS::Record do
160
154
  end
161
155
 
162
156
  it 'uses interceptors for included links from known services' do
157
+ # rubocop:disable RSpec/InstanceVariable
163
158
  stub_feedback_request
164
159
  stub_entry_request
165
160
 
@@ -168,12 +163,12 @@ describe LHS::Record do
168
163
 
169
164
  expect(Feedback.includes(:entry).where.first.entry.name).to eq 'Casa Ferlin'
170
165
  expect(@called).to eq 2
166
+ # rubocop:enable RSpec/InstanceVariable
171
167
  end
172
168
  end
173
169
  end
174
170
 
175
171
  context 'links pointing to nowhere' do
176
-
177
172
  it 'sets nil for links that cannot be included' do
178
173
  class Feedback < LHS::Record
179
174
  endpoint ':datastore/feedbacks'
@@ -1,9 +1,7 @@
1
1
  require 'rails_helper'
2
2
 
3
3
  describe LHS::Record do
4
-
5
4
  context 'mapping' do
6
-
7
5
  let(:datastore) { 'http://local.ch/v2' }
8
6
 
9
7
  before(:each) do
@@ -21,7 +19,7 @@ describe LHS::Record do
21
19
  end
22
20
  end
23
21
  stub_request(:get, "#{datastore}/local-entries/1")
24
- .to_return(status: 200, body: {addresses: [{business: {identities: [{name: 'Löwenzorn'}]}}]}.to_json)
22
+ .to_return(status: 200, body: { addresses: [{ business: { identities: [{ name: 'Löwenzorn' }] } }] }.to_json)
25
23
  entry = LocalEntry.find(1)
26
24
  expect(entry.name).to eq 'Löwenzorn'
27
25
  end
@@ -33,7 +31,7 @@ describe LHS::Record do
33
31
  end
34
32
  end
35
33
  stub_request(:get, "#{datastore}/local-entries/1?limit=1")
36
- .to_return(status: 200, body: {items: [{addresses: [{business: {identities: [{name: 'Löwenzorn'}]}}]}]}.to_json)
34
+ .to_return(status: 200, body: { items: [{ addresses: [{ business: { identities: [{ name: 'Löwenzorn' }] } }] }] }.to_json)
37
35
  entry = LocalEntry.find_by(id: 1)
38
36
  expect(entry.name).to eq 'Löwenzorn'
39
37
  end
@@ -45,7 +43,7 @@ describe LHS::Record do
45
43
  end
46
44
  end
47
45
  stub_request(:get, "#{datastore}/local-entries/1")
48
- .to_return(status: 200, body: {addresses: [{business: {identities: [{name: 'Löwenzorn'}]}}]}.to_json)
46
+ .to_return(status: 200, body: { addresses: [{ business: { identities: [{ name: 'Löwenzorn' }] } }] }.to_json)
49
47
  entry = LocalEntry.find(1)
50
48
  expect(entry.business).to be_kind_of LHS::Data
51
49
  end
@@ -60,14 +58,14 @@ describe LHS::Record do
60
58
 
61
59
  preceding_agb_url = "#{datastore}/agbs/547f0b461c266c4830ea6cea"
62
60
  # initial request
63
- stub_request(:get, "#{datastore}/agbs/active?agb_type=CC_TOU&limit=1").
64
- to_return(
65
- status: 200,
66
- body: {
67
- 'href' => "#{datastore}/agbs/547f02c61c266c4830ea6ce7",
68
- 'preceding_agb' => { 'href' => preceding_agb_url },
69
- 'binary_url_pdf_de' => 'de'
70
- }.to_json)
61
+ stub_request(:get, "#{datastore}/agbs/active?agb_type=CC_TOU&limit=1")
62
+ .to_return(
63
+ status: 200,
64
+ body: {
65
+ 'href' => "#{datastore}/agbs/547f02c61c266c4830ea6ce7",
66
+ 'preceding_agb' => { 'href' => preceding_agb_url },
67
+ 'binary_url_pdf_de' => 'de'
68
+ }.to_json)
71
69
 
72
70
  # includes request
73
71
  stub_request(:get, preceding_agb_url).to_return(
@@ -89,9 +87,9 @@ describe LHS::Record do
89
87
  endpoint ':datastore/favorites/:id'
90
88
  end
91
89
  stub_request(:get, "#{datastore}/local-entries/1")
92
- .to_return(body: {company_name: 'local.ch'}.to_json)
90
+ .to_return(body: { company_name: 'local.ch' }.to_json)
93
91
  stub_request(:get, "#{datastore}/favorites/1")
94
- .to_return(body: {local_entry: {href: "#{datastore}/local-entries/1"}}.to_json)
92
+ .to_return(body: { local_entry: { href: "#{datastore}/local-entries/1" } }.to_json)
95
93
 
96
94
  favorite = Favorite.includes(:local_entry).find(1)
97
95
  expect(favorite.local_entry).to be_kind_of LocalEntry
@@ -1,9 +1,7 @@
1
1
  require 'rails_helper'
2
2
 
3
3
  describe LHS::Record do
4
-
5
4
  context 'model_name' do
6
-
7
5
  before(:each) do
8
6
  class LocalEntry < LHS::Record
9
7
  endpoint ':datastore/local-entries'
@@ -1,9 +1,7 @@
1
1
  require 'rails_helper'
2
2
 
3
3
  describe LHS::Record do
4
-
5
4
  context 'new' do
6
-
7
5
  let(:datastore) { 'http://local.ch/v2' }
8
6
 
9
7
  before(:each) do
@@ -22,5 +20,9 @@ describe LHS::Record do
22
20
  .with(body: "{\"recommended\":true}")
23
21
  feedback.save
24
22
  end
23
+
24
+ it 'builds new items also with keys containing dashes' do
25
+ Feedback.new('some-key' => [])
26
+ end
25
27
  end
26
28
  end
@@ -1,9 +1,7 @@
1
1
  require 'rails_helper'
2
2
 
3
3
  describe LHS::Record do
4
-
5
4
  context 'url pattern' do
6
-
7
5
  let(:datastore) { 'http://local.ch/v2' }
8
6
 
9
7
  before(:each) do
@@ -16,7 +14,7 @@ describe LHS::Record do
16
14
 
17
15
  it 'is using params as query params explicitly when provided in params namespace' do
18
16
  stub_request(:get, "#{datastore}/content-ads/123/feedbacks?campaign_id=456").to_return(status: 200)
19
- records = Record.where(campaign_id: 123, params: { campaign_id: '456' })
17
+ Record.where(campaign_id: 123, params: { campaign_id: '456' })
20
18
  end
21
19
  end
22
20
  end