lhs 2.1.0 → 2.1.1

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
  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