active_record_api-rest 0.0.7 → 0.1.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dc6be5e661d2f86fc54c4f57906334b1edbfa98af328899dec021c6fba7473cf
4
- data.tar.gz: 0afed262417beb1773c94857e633962908b24f3574027f141a6d1d9dfb199dc9
3
+ metadata.gz: 6fa1955af8c25e2210994802eb09bdbfbdb5a38c76092ee6bcbf202b5e5ef997
4
+ data.tar.gz: be2e65c8efcf3e9abf1d651f4cbd9c14dcdfca0745ff13ff8847bcc79de4e686
5
5
  SHA512:
6
- metadata.gz: 1c15892f0cdcd3ece55399598704c8305f7c1f0b34a651089f505bcc82d81a043289b9d5cb96e05e4716a06773c02bd1df374de997cc4c4e2dad6463d6954949
7
- data.tar.gz: fb1e43340815ee738411b7be1577d8f8f97e3e74e24a2f0311c983bbaa59b790e6947e7ea5fc6ad188b12c37c558200a3443d5b7c03bc949ab974c908d721696
6
+ metadata.gz: 4092ee83c28deb1f1356124a19767539782e12ef9d9e7e734c81661d39fcef30a23e046500be7465db37ce310cd4651bd3cdcdcaf5fa207d7d6a3b9ce9e3c3e2
7
+ data.tar.gz: aeb9066036e98a4fcba8ceb0d61da2d717ab030c6580ddc97457e6e9523d294e1359809ad3a17e25d88b9ff63fd2a702281088cd56bb0429bb34f6bf783d719b
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- active_record_api-rest (0.0.6)
4
+ active_record_api-rest (0.1.7)
5
5
  active_attr
6
6
  active_model_serializers
7
7
  cancancan
@@ -18,15 +18,23 @@ shared_examples 'all::rest::actions' do
18
18
  end
19
19
  end
20
20
  let(:host) { ActiveRecordApi::Rest::RequestUrlGenerator.new(request: request).micro_service_url }
21
+ let(:create_new_attributes) { serializer.new(model).as_json.except(:id) }
22
+ let(:update_new_attributes) { serializer.new(model).as_json }
23
+ let(:update_invalid_attributes) { serializer.new(update_invalid_model).as_json.merge(id: model.id) }
21
24
  describe 'All rest actions' do
22
25
  let(:serializer) { ActiveModelSerializers::SerializableResource }
23
26
  let(:model_klass) { described_class.controller_name.classify.constantize }
24
27
  let(:model) { create factory_symbol }
25
- include_examples 'get::show'
26
- include_examples 'get::index'
27
- include_examples 'put::update'
28
- include_examples 'post::create'
29
- include_examples 'delete::delete'
28
+ it_behaves_like 'get::show'
29
+ it_behaves_like 'get::index'
30
+ it_behaves_like 'put::update' do
31
+ let(:new_attributes) { update_new_attributes }
32
+ let(:invalid_attributes) { update_invalid_attributes }
33
+ end
34
+ it_behaves_like 'post::create' do
35
+ let(:new_attributes) { create_new_attributes }
36
+ end
37
+ it_behaves_like 'delete::delete'
30
38
  end
31
39
  end
32
40
 
@@ -115,7 +123,8 @@ shared_examples 'get::index' do
115
123
  end
116
124
 
117
125
  shared_examples 'put::update' do
118
- let(:payload) { serializer.new(model).as_json }
126
+ let(:new_attributes) { serializer.new(model).as_json }
127
+ let(:invalid_attributes) { serializer.new(update_invalid_model).as_json.merge(id: model.id) }
119
128
  let(:relative_url) { Rails.application.routes.url_helpers.url_for(controller: base_model_klass.to_s.underscore.pluralize, action: 'show', id: model.id, only_path: true) }
120
129
  describe 'PUT update' do
121
130
  context 'when authorized' do
@@ -124,14 +133,14 @@ shared_examples 'put::update' do
124
133
  end
125
134
  context 'valid' do
126
135
  before(:each) do
127
- put :update, params: payload
136
+ put :update, params: new_attributes
128
137
  end
129
138
  it { expect(response.status).to eq 303 }
130
139
  it { expect(response).to redirect_to "#{host}#{relative_url}" }
131
140
  end
132
141
  context 'when invalid param values provided' do
133
142
  before(:each) do
134
- put :update, params: serializer.new(update_invalid_model).as_json.merge(id: model.id)
143
+ put :update, params: invalid_attributes
135
144
  expect(update_invalid_model.valid?).to be false
136
145
  end
137
146
  it { expect(response.status).to eq(422) }
@@ -139,7 +148,7 @@ shared_examples 'put::update' do
139
148
  end
140
149
  context 'when invalid param keys provided' do
141
150
  before(:each) do
142
- put :update, params: payload.merge('foobars' => 'stuff')
151
+ put :update, params: new_attributes.merge('foobars' => 'stuff')
143
152
  end
144
153
  it { expect(response.status).to eq(422) }
145
154
  it { expect(response.body).to be_json_eql({ base: 'Extra parameters are not allow: foobars' }.to_json) }
@@ -148,7 +157,7 @@ shared_examples 'put::update' do
148
157
  context 'when not authorized' do
149
158
  before(:each) do
150
159
  unauthorize_update
151
- get :show, params: payload
160
+ get :show, params: new_attributes
152
161
  end
153
162
  it { expect(response.status).to eq 403 }
154
163
  it { expect(JSON.parse(response.body)['base']).to include 'Access denied on show' }
@@ -2,6 +2,6 @@
2
2
 
3
3
  module ActiveRecordApi
4
4
  module Rest
5
- VERSION = '0.0.7'.freeze
5
+ VERSION = '0.1.8'.freeze
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_record_api-rest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Full Measure Education
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-07-18 00:00:00.000000000 Z
11
+ date: 2018-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler