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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6fa1955af8c25e2210994802eb09bdbfbdb5a38c76092ee6bcbf202b5e5ef997
|
4
|
+
data.tar.gz: be2e65c8efcf3e9abf1d651f4cbd9c14dcdfca0745ff13ff8847bcc79de4e686
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4092ee83c28deb1f1356124a19767539782e12ef9d9e7e734c81661d39fcef30a23e046500be7465db37ce310cd4651bd3cdcdcaf5fa207d7d6a3b9ce9e3c3e2
|
7
|
+
data.tar.gz: aeb9066036e98a4fcba8ceb0d61da2d717ab030c6580ddc97457e6e9523d294e1359809ad3a17e25d88b9ff63fd2a702281088cd56bb0429bb34f6bf783d719b
|
data/Gemfile.lock
CHANGED
@@ -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
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
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(:
|
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:
|
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:
|
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:
|
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:
|
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' }
|
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.
|
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-
|
11
|
+
date: 2018-08-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|