lhs 2.1.0 → 2.1.1

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: df827d2008392c40865a0c82e9a515b4bc541ee2
4
- data.tar.gz: 5b589ba038ded4cb9407c24091ed7c0b08f96a63
3
+ metadata.gz: 0136ac0223418ddf3f141de5fb9a469a7fe24374
4
+ data.tar.gz: 448e6a48140f37728dfe40083edb15638649de74
5
5
  SHA512:
6
- metadata.gz: 3648b5f1e76c703a6f56cfc78b9b8d4bc2a983947f42dfd819e087aca2d5100b8846ca3a8c4059a86b54cf033a18e648f9881d8cf5a40fbfe337268d3d53472f
7
- data.tar.gz: 8f797d35de13f0e3f1e8171c15730137834029a95aae831a2d174e78e377779b5fd3d0227e578bb00469bbfc17528388279147c2f2944ef0758d0e1d14960fd4
6
+ metadata.gz: b4833493e3121a9177210180f96b1b5df0b496b9c8f6945c7e73c00ea8117bb6dd65cb3bc63fef3f60e1a357b3ccfcf1d958c86177e67d5490f705edbcbfd65e
7
+ data.tar.gz: 5724f5743af929cc146863a897161d2625748ef6fff40ae36e8b48446c8772d7c88138ebae10ca256862504c047d6129a7afcb31f9334d4b477edc9438dc8875
@@ -9,7 +9,8 @@ class LHS::Item < LHS::Proxy
9
9
  self.errors = nil
10
10
  fail 'No validation endpoint found!' unless validation_endpoint
11
11
  service = LHS::Service.for_url(validation_endpoint.url)
12
- params = validation_endpoint.options.fetch(:params, {}).merge(persist: false)
12
+ validation_params = validation_endpoint.options[:validates] == true ? { persist: false } : { validation_endpoint.options[:validates] => false }
13
+ params = validation_endpoint.options.fetch(:params, {}).merge(validation_params)
13
14
  begin
14
15
  service.request(
15
16
  url: validation_endpoint.url,
@@ -1,3 +1,3 @@
1
1
  module LHS
2
- VERSION = "2.1.0"
2
+ VERSION = "2.1.1"
3
3
  end
@@ -4,84 +4,112 @@ describe LHS::Item do
4
4
 
5
5
  let(:datastore) { 'http://local.ch' }
6
6
 
7
- before(:each) do
8
- LHC.config.placeholder('datastore', datastore)
9
- class User < LHS::Service
10
- endpoint ':datastore/v2/users', validates: true
11
- end
12
- mock_validation
13
- end
7
+ let(:validation_parameter) { 'persist' }
14
8
 
15
9
  let(:mock_validation) do
16
10
  successful_validation
17
11
  end
18
12
 
19
13
  let(:successful_validation) do
20
- stub_request(:post, "#{datastore}/v2/users?persist=false").to_return(body: '{}')
14
+ stub_request(:post, "#{datastore}/v2/users?#{validation_parameter}=false").to_return(body: '{}')
21
15
  end
22
16
 
23
- let(:failing_validation) do
24
- stub_request(:post, "#{datastore}/v2/users?persist=false")
25
- .to_return(status: 400,
26
- body: {
27
- field_errors: [{code: "UNSUPPORTED_PROPERTY_VALUE", "path" => [ "email" ]}]
28
- }.to_json
29
- )
17
+ before(:each) do
18
+ mock_validation
30
19
  end
31
20
 
32
- context 'valid data' do
21
+ context 'custom validation parameter' do
22
+
23
+ let(:validation_parameter) { 'publish' }
24
+
33
25
  let(:user) do
34
26
  User.build(email: 'steve@local.ch')
35
27
  end
36
28
 
37
- it 'validates' do
38
- expect(user.valid?).to eq true
29
+ before(:each) do
30
+ LHC.config.placeholder('datastore', datastore)
31
+ class User < LHS::Service
32
+ endpoint ':datastore/v2/users', validates: 'publish'
33
+ end
39
34
  end
40
35
 
41
- it 'turns to be invalid if validating on changed, invalid data' do
36
+ it 'validates' do
42
37
  expect(user.valid?).to eq true
43
- user.email = 'not a valid email'
44
- failing_validation
45
- expect(user.valid?).to eq false
46
- expect(user.errors[:email]).to be
47
38
  end
39
+
48
40
  end
49
41
 
50
- context 'invalid data' do
42
+ context 'default parameter' do
51
43
 
52
- let(:user) do
53
- User.build(email: 'im not an email address')
44
+ before(:each) do
45
+ LHC.config.placeholder('datastore', datastore)
46
+ class User < LHS::Service
47
+ endpoint ':datastore/v2/users', validates: true
48
+ end
54
49
  end
55
50
 
56
- let(:mock_validation) do
57
- failing_validation
51
+ let(:failing_validation) do
52
+ stub_request(:post, "#{datastore}/v2/users?persist=false")
53
+ .to_return(status: 400,
54
+ body: {
55
+ field_errors: [{ code: "UNSUPPORTED_PROPERTY_VALUE", "path" => ["email"] }]
56
+ }.to_json
57
+ )
58
58
  end
59
59
 
60
- it 'does not validate and provides error messages' do
61
- expect(user.valid?).to eq false
62
- expect(user.errors[:email]).to be
63
- end
60
+ context 'valid data' do
61
+ let(:user) do
62
+ User.build(email: 'steve@local.ch')
63
+ end
64
64
 
65
- it 'resets errors when revalidating' do
66
- expect(user.valid?).to eq false
67
- user.email = 'steve@local.ch'
68
- successful_validation
69
- expect(user.valid?).to eq true
70
- expect(user.errors).to be_nil
65
+ it 'validates' do
66
+ expect(user.valid?).to eq true
67
+ end
68
+
69
+ it 'turns to be invalid if validating on changed, invalid data' do
70
+ expect(user.valid?).to eq true
71
+ user.email = 'not a valid email'
72
+ failing_validation
73
+ expect(user.valid?).to eq false
74
+ expect(user.errors[:email]).to be
75
+ end
71
76
  end
72
- end
73
77
 
74
- context 'endpoint does not support validations' do
75
- before(:each) do
76
- class Favorite < LHS::Service
77
- endpoint ':datastore/v2/favorites'
78
+ context 'invalid data' do
79
+ let(:user) do
80
+ User.build(email: 'im not an email address')
81
+ end
82
+
83
+ let(:mock_validation) do
84
+ failing_validation
85
+ end
86
+
87
+ it 'does not validate and provides error messages' do
88
+ expect(user.valid?).to eq false
89
+ expect(user.errors[:email]).to be
90
+ end
91
+
92
+ it 'resets errors when revalidating' do
93
+ expect(user.valid?).to eq false
94
+ user.email = 'steve@local.ch'
95
+ successful_validation
96
+ expect(user.valid?).to eq true
97
+ expect(user.errors).to be_nil
78
98
  end
79
99
  end
80
100
 
81
- it 'fails when trying to use an endpoint for validations that does not support it' do
82
- expect(->{
83
- Favorite.build.valid?
84
- }).to raise_error('Endpoint does not support validations!')
101
+ context 'endpoint does not support validations' do
102
+ before(:each) do
103
+ class Favorite < LHS::Service
104
+ endpoint ':datastore/v2/favorites'
105
+ end
106
+ end
107
+
108
+ it 'fails when trying to use an endpoint for validations that does not support it' do
109
+ expect(lambda {
110
+ Favorite.build.valid?
111
+ }).to raise_error('Endpoint does not support validations!')
112
+ end
85
113
  end
86
114
  end
87
115
  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: 2.1.0
4
+ version: 2.1.1
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-12-30 00:00:00.000000000 Z
11
+ date: 2016-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lhc