fakturan_nu 1.1.1 → 1.1.2

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