active_record_api-rest 0.0.7 → 0.1.8
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
|
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
|