fakturan_nu 1.1.1 → 1.1.2

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: b13585e5fc6be9909753083863eda66758b826d7
4
- data.tar.gz: 9b8a8ce02f6e623bd01f3f7f1ca0bc4b5105d6be
3
+ metadata.gz: 6ed6955e3027b00dace28b8064a0ba10a0432442
4
+ data.tar.gz: 979f391de0873200d18198ba11b4a4190d689a21
5
5
  SHA512:
6
- metadata.gz: 91aa5a0c02ec650d3de08b278223fe165b146ab7f21cde3149e592c39ce3c616c90869b41329fbb2198df6136d2ccb5cb9e654d43c5834b14e2b5e01428f5f4c
7
- data.tar.gz: 9b2cf0b37560c8b21466f15781c52e0a7401b1469ed312c00a804ad50fdf7b0f179374162a735cee434ffea090e87366c9c129410716b2129a5aa4e3c576a561
6
+ metadata.gz: 8ee731a75e0e05e1bfe543aec9cccaeed9364f7cac99360a249ce47c634b86b82105d3a6d9baed73f39304a4a24b13c658ffdee767380bea1ab10b7867fe4017
7
+ data.tar.gz: b584bfaee349fd14d4bdc37202fef9a0f2c762622f08a1d49de293b29aba91f242dbde5d8fc10d628b91533856c0e92e606efc372da95e2af0dcc775b584e0b4
data/fakturan_nu.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  Gem::Specification.new do |s|
3
3
  s.name = 'fakturan_nu'
4
- s.version = '1.1.1'
4
+ s.version = '1.1.2'
5
5
  s.date = '2015-04-14'
6
6
  s.summary = 'A ruby client for the Fakturan.nu - API'
7
7
  s.description = 'A ruby client for the Fakturan.nu - API. Fakturan.nu is a webbapp for billing.'
@@ -44,8 +44,10 @@ module Fakturan
44
44
  self.add_to_errors(field_name.to_sym, [{error: :invalid}])
45
45
  field_errors.each do |new_error_hash_with_index| # new_error_hash_OR_error_type ("blank") on presence of has_many
46
46
  new_error_hash_with_index.each do |index, inner_errors_hash|
47
- error_attribute = inner_errors_hash.keys.first.split('.').last.to_sym
48
- self.send(ass_name)[index.to_i].add_to_errors(error_attribute, inner_errors_hash.values.last)
47
+ inner_errors_hash.each do |inner_field_name, inner_field_errors|
48
+ error_attribute = inner_field_name.split('.').last.to_sym
49
+ self.send(ass_name)[index.to_i].add_to_errors(error_attribute, inner_field_errors)
50
+ end
49
51
  end
50
52
  end
51
53
  else # It's a belongs_to or has_one
@@ -70,29 +70,33 @@ module Fakturan
70
70
  assert_equal 400, error.status
71
71
  end
72
72
 
73
+ def test_multiple_validation_errors_on_has_many
74
+ stub_api_request(:post, '/trees').to_return(body: {errors: {apples: [{"0" => {"apples.colour" => [{error: :too_short, count:4}], "apples.shape" => [{error: :taken, value: "square"}]}}]}}.to_json, status: 422)
75
+ tree = Fakturan::Tree.new({"apples"=>[{"colour"=>"", "shape"=>"square"}]})
76
+ assert_equal false, tree.save
77
+ assert_equal ({:colour=>[{:error=>:too_short, :count=>4}], :shape=>[{:error=>:taken, :value=>"square"}]}), tree.apples.first.errors.details
78
+ end
79
+
73
80
  def test_validation_errors_on_associations_when_created_through_params
74
81
  stub_api_request(:post, '/trees').to_return(body: {errors: {apples: [{"0" => {"apples.colour" => [{error: :blank}]}}], "crown.fluffyness" => [{error: :invalid}]}}.to_json, status: 422)
75
-
76
- a = Fakturan::Tree.new({"apples"=>[{"name"=>"zdsdfsdf", "email"=>"", "password"=>"", "firstname"=>"zdsdfsdf", "lastname"=>"zdsdfsdf", "colour"=>""}], "crown"=>{"fluffyness"=>""}})
77
-
78
- assert_equal false, a.save
79
- assert_equal (["Apples is invalid", "Crown fluffyness is invalid"]), a.errors.to_a
80
- assert_equal (["Fluffyness is invalid"]), a.crown.errors.to_a
82
+ tree = Fakturan::Tree.new({"apples"=>[{"something"=>""}], "crown"=>{"fluffyness"=>""}})
83
+ assert_equal false, tree.save
84
+ assert_equal ({:colour=>[{:error=>:blank}]}), tree.apples.first.errors.details
85
+ assert_equal (["Apples is invalid", "Crown fluffyness is invalid"]), tree.errors.to_a
86
+ assert_equal (["Fluffyness is invalid"]), tree.crown.errors.to_a
81
87
  end
82
88
 
83
89
  def test_validation_errors_on_blank_associated_objects
84
90
  stub_api_request(:post, '/trees').to_return(body: {errors: {apples: [{error: :blank}], crown: [{error: :blank}]}}.to_json, status: 422)
85
- a = Fakturan::Tree.new()
86
- assert_equal false, a.save
87
- assert_equal (["Apples can't be blank", "Crown can't be blank"]), a.errors.to_a
88
- assert_equal ({:apples=>[{:error=>:blank}], :crown=>[{:error=>:blank}]}), a.errors.details
91
+ tree = Fakturan::Tree.new()
92
+ assert_equal false, tree.save
93
+ assert_equal (["Apples can't be blank", "Crown can't be blank"]), tree.errors.to_a
94
+ assert_equal ({:apples=>[{:error=>:blank}], :crown=>[{:error=>:blank}]}), tree.errors.details
89
95
  end
90
96
 
91
97
  def test_save_fails_when_has_many_validation_fails
92
98
  stub_api_request(:post, '/invoices').to_return(body: {errors: {rows: [{"0" => {"rows.product_code" => [{error: :too_long, count:30}]}}] }}.to_json, status: 422)
93
-
94
99
  invoice = Fakturan::Invoice.new(client: { company: "Acme inc" }, rows: [{product_code: '1234567890123456789012345678901'}])
95
-
96
100
  assert_equal false, invoice.save
97
101
  assert_equal ({:product_code=>[{:error=>:too_long, :count=>30}]}), invoice.rows[0].errors.details
98
102
  assert_equal "Rows is invalid", invoice.errors.to_a.first
@@ -100,10 +104,8 @@ module Fakturan
100
104
 
101
105
  def test_validation_errors_on_associations
102
106
  stub_api_request(:post, '/invoices').to_return(body: {errors: {date: [{error: :blank},{error: :invalid}], rows: [{"0" => {"rows.product_code" => [{error: :too_long, count:30}]}}, {"2" => {"rows.product_code" => [{error: :too_long, count:30}]}}], "client.company" => [{ error: :blank}]}}.to_json, status: 422)
103
-
104
107
  invoice = Fakturan::Invoice.new(client: {}, rows: [{product_code: '1234567890123456789012345678901'}, {product_code: '1'}, {product_code: '1234567890123456789012345678901'}])
105
108
  invoice.save
106
-
107
109
  assert_equal "Client company can't be blank", invoice.errors.to_a.last
108
110
  assert_equal ({date: [{error: :blank}, {error: :invalid}], :rows=>[{:error=>:invalid}]}), invoice.errors.details
109
111
  assert_equal ({:product_code=>[{:error=>:too_long, :count=>30}]}), invoice.rows[0].errors.details
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fakturan_nu
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Bourque Olivegren