fortnox-api 0.7.2 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.codeclimate.yml +1 -0
- data/.env.template +7 -0
- data/.env.test +11 -3
- data/.gitignore +7 -1
- data/.rubocop.yml +18 -2
- data/.tool-versions +1 -0
- data/.travis.yml +15 -19
- data/CHANGELOG.md +66 -1
- data/CONTRIBUTE.md +21 -9
- data/DEVELOPER_README.md +72 -0
- data/Guardfile +13 -4
- data/README.md +226 -61
- data/Rakefile +133 -0
- data/bin/get_tokens +79 -0
- data/bin/renew_tokens +28 -0
- data/fortnox-api.gemspec +31 -25
- data/lib/fortnox/api/mappers/article.rb +1 -1
- data/lib/fortnox/api/mappers/base/from_json.rb +7 -6
- data/lib/fortnox/api/mappers/base/to_json.rb +4 -5
- data/lib/fortnox/api/mappers/base.rb +3 -3
- data/lib/fortnox/api/mappers/customer.rb +1 -1
- data/lib/fortnox/api/mappers/default_delivery_types.rb +1 -1
- data/lib/fortnox/api/mappers/default_templates.rb +1 -1
- data/lib/fortnox/api/mappers/edi_information.rb +1 -1
- data/lib/fortnox/api/mappers/email_information.rb +1 -1
- data/lib/fortnox/api/mappers/invoice.rb +4 -4
- data/lib/fortnox/api/mappers/invoice_row.rb +1 -1
- data/lib/fortnox/api/mappers/order.rb +4 -4
- data/lib/fortnox/api/mappers/order_row.rb +1 -1
- data/lib/fortnox/api/mappers/project.rb +1 -1
- data/lib/fortnox/api/mappers/terms_of_payment.rb +1 -1
- data/lib/fortnox/api/mappers/unit.rb +1 -1
- data/lib/fortnox/api/mappers/value/country_string.rb +1 -1
- data/lib/fortnox/api/mappers.rb +18 -18
- data/lib/fortnox/api/models/article.rb +2 -2
- data/lib/fortnox/api/models/base.rb +23 -21
- data/lib/fortnox/api/models/customer.rb +57 -57
- data/lib/fortnox/api/models/document.rb +5 -2
- data/lib/fortnox/api/models/invoice.rb +2 -2
- data/lib/fortnox/api/models/label.rb +3 -3
- data/lib/fortnox/api/models/order.rb +2 -2
- data/lib/fortnox/api/models/project.rb +2 -2
- data/lib/fortnox/api/models/terms_of_payment.rb +2 -2
- data/lib/fortnox/api/models/unit.rb +2 -2
- data/lib/fortnox/api/models.rb +7 -7
- data/lib/fortnox/api/repositories/article.rb +3 -3
- data/lib/fortnox/api/repositories/authentication.rb +61 -0
- data/lib/fortnox/api/repositories/base/savers.rb +3 -1
- data/lib/fortnox/api/repositories/base.rb +25 -38
- data/lib/fortnox/api/repositories/customer.rb +3 -3
- data/lib/fortnox/api/repositories/invoice.rb +3 -3
- data/lib/fortnox/api/repositories/order.rb +3 -3
- data/lib/fortnox/api/repositories/project.rb +3 -3
- data/lib/fortnox/api/repositories/terms_of_payment.rb +3 -3
- data/lib/fortnox/api/repositories/unit.rb +3 -3
- data/lib/fortnox/api/repositories.rb +8 -7
- data/lib/fortnox/api/request_handling.rb +30 -18
- data/lib/fortnox/api/types/default_delivery_types.rb +0 -2
- data/lib/fortnox/api/types/default_templates.rb +0 -2
- data/lib/fortnox/api/types/document_row.rb +3 -3
- data/lib/fortnox/api/types/edi_information.rb +0 -2
- data/lib/fortnox/api/types/email_information.rb +0 -2
- data/lib/fortnox/api/types/enums.rb +54 -10
- data/lib/fortnox/api/types/invoice_row.rb +1 -1
- data/lib/fortnox/api/types/model.rb +5 -9
- data/lib/fortnox/api/types/nullable.rb +13 -9
- data/lib/fortnox/api/types/order_row.rb +1 -1
- data/lib/fortnox/api/types/required.rb +3 -3
- data/lib/fortnox/api/types/sized.rb +4 -4
- data/lib/fortnox/api/types.rb +37 -24
- data/lib/fortnox/api/version.rb +1 -1
- data/lib/fortnox/api.rb +21 -39
- data/spec/fortnox/api/mappers/base/canonical_name_sym_spec.rb +13 -11
- data/spec/fortnox/api/mappers/base/from_json_spec.rb +10 -12
- data/spec/fortnox/api/mappers/base/to_json_spec.rb +48 -57
- data/spec/fortnox/api/mappers/base_spec.rb +4 -7
- data/spec/fortnox/api/mappers/contexts/json_conversion.rb +38 -33
- data/spec/fortnox/api/mappers/default_delivery_types_spec.rb +1 -1
- data/spec/fortnox/api/mappers/examples/mapper.rb +1 -1
- data/spec/fortnox/api/mappers/unit_spec.rb +3 -4
- data/spec/fortnox/api/models/base_spec.rb +33 -22
- data/spec/fortnox/api/models/unit_spec.rb +5 -3
- data/spec/fortnox/api/repositories/article_spec.rb +14 -9
- data/spec/fortnox/api/repositories/authentication_spec.rb +103 -0
- data/spec/fortnox/api/repositories/base_spec.rb +105 -326
- data/spec/fortnox/api/repositories/customer_spec.rb +37 -7
- data/spec/fortnox/api/repositories/examples/all.rb +0 -1
- data/spec/fortnox/api/repositories/examples/find.rb +5 -8
- data/spec/fortnox/api/repositories/examples/only.rb +4 -13
- data/spec/fortnox/api/repositories/examples/save.rb +32 -18
- data/spec/fortnox/api/repositories/examples/save_with_nested_model.rb +0 -5
- data/spec/fortnox/api/repositories/examples/save_with_specially_named_attribute.rb +1 -4
- data/spec/fortnox/api/repositories/examples/search.rb +4 -7
- data/spec/fortnox/api/repositories/invoice_spec.rb +72 -29
- data/spec/fortnox/api/repositories/order_spec.rb +11 -9
- data/spec/fortnox/api/repositories/project_spec.rb +7 -6
- data/spec/fortnox/api/repositories/terms_of_payment_spec.rb +9 -7
- data/spec/fortnox/api/repositories/unit_spec.rb +13 -11
- data/spec/fortnox/api/types/country_spec.rb +1 -1
- data/spec/fortnox/api/types/email_spec.rb +2 -2
- data/spec/fortnox/api/types/enums_spec.rb +1 -0
- data/spec/fortnox/api/types/examples/document_row.rb +3 -3
- data/spec/fortnox/api/types/examples/enum.rb +4 -4
- data/spec/fortnox/api/types/examples/types.rb +1 -3
- data/spec/fortnox/api/types/housework_types_spec.rb +124 -43
- data/spec/fortnox/api/types/model_spec.rb +13 -23
- data/spec/fortnox/api/types/nullable_spec.rb +30 -10
- data/spec/fortnox/api/types/order_row_spec.rb +2 -2
- data/spec/fortnox/api/types/required_spec.rb +7 -15
- data/spec/fortnox/api/types/sales_account_spec.rb +57 -0
- data/spec/fortnox/api_spec.rb +19 -124
- data/spec/spec_helper.rb +0 -14
- data/spec/support/helpers/configuration_helper.rb +30 -3
- data/spec/support/helpers.rb +1 -1
- data/spec/support/matchers/type/attribute_matcher.rb +2 -2
- data/spec/support/matchers/type/enum_matcher.rb +1 -1
- data/spec/support/matchers/type/have_account_number_matcher.rb +1 -1
- data/spec/support/matchers/type/have_email_matcher.rb +1 -1
- data/spec/support/matchers/type/have_nullable_date_matcher.rb +7 -5
- data/spec/support/matchers/type/have_nullable_matcher.rb +1 -1
- data/spec/support/matchers/type/have_nullable_string_matcher.rb +5 -5
- data/spec/support/matchers/type/require_attribute_matcher.rb +5 -5
- data/spec/support/matchers/type/type_matcher.rb +1 -1
- data/spec/support/vcr_setup.rb +16 -0
- data/spec/vcr_cassettes/articles/all.yml +41 -42
- data/spec/vcr_cassettes/articles/find_by_hash_failure.yml +36 -19
- data/spec/vcr_cassettes/articles/find_failure.yml +36 -19
- data/spec/vcr_cassettes/articles/find_id_1.yml +38 -20
- data/spec/vcr_cassettes/articles/find_new.yml +39 -22
- data/spec/vcr_cassettes/articles/multi_param_find_by_hash.yml +38 -21
- data/spec/vcr_cassettes/articles/save_new.yml +37 -19
- data/spec/vcr_cassettes/articles/save_old.yml +39 -22
- data/spec/vcr_cassettes/articles/save_with_specially_named_attribute.yml +37 -19
- data/spec/vcr_cassettes/articles/search_by_name.yml +41 -21
- data/spec/vcr_cassettes/articles/search_miss.yml +36 -19
- data/spec/vcr_cassettes/articles/search_with_special_char.yml +36 -19
- data/spec/vcr_cassettes/articles/single_param_find_by_hash.yml +38 -32
- data/spec/vcr_cassettes/authentication/expired_token.yml +54 -0
- data/spec/vcr_cassettes/authentication/invalid_authorization.yml +57 -0
- data/spec/vcr_cassettes/authentication/invalid_refresh_token.yml +58 -0
- data/spec/vcr_cassettes/authentication/valid_request.yml +63 -0
- data/spec/vcr_cassettes/customers/all.yml +44 -132
- data/spec/vcr_cassettes/customers/find_by_hash_failure.yml +36 -19
- data/spec/vcr_cassettes/customers/find_failure.yml +36 -19
- data/spec/vcr_cassettes/customers/find_id_1.yml +39 -21
- data/spec/vcr_cassettes/customers/find_new.yml +38 -21
- data/spec/vcr_cassettes/customers/find_with_sales_account.yml +63 -0
- data/spec/vcr_cassettes/customers/multi_param_find_by_hash.yml +38 -21
- data/spec/vcr_cassettes/customers/save_new.yml +36 -18
- data/spec/vcr_cassettes/customers/save_new_with_country_code_SE.yml +32 -24
- data/spec/vcr_cassettes/customers/save_new_with_sales_account.yml +63 -0
- data/spec/vcr_cassettes/customers/save_old.yml +38 -21
- data/spec/vcr_cassettes/customers/save_with_specially_named_attribute.yml +36 -18
- data/spec/vcr_cassettes/customers/search_by_name.yml +38 -48
- data/spec/vcr_cassettes/customers/search_miss.yml +36 -19
- data/spec/vcr_cassettes/customers/search_with_special_char.yml +36 -19
- data/spec/vcr_cassettes/customers/single_param_find_by_hash.yml +39 -22
- data/spec/vcr_cassettes/invoices/all.yml +71 -114
- data/spec/vcr_cassettes/invoices/filter_hit.yml +39 -24
- data/spec/vcr_cassettes/invoices/filter_invalid.yml +35 -17
- data/spec/vcr_cassettes/invoices/find_by_hash_failure.yml +36 -19
- data/spec/vcr_cassettes/invoices/find_failure.yml +36 -19
- data/spec/vcr_cassettes/invoices/find_id_1.yml +40 -22
- data/spec/vcr_cassettes/invoices/find_new.yml +41 -24
- data/spec/vcr_cassettes/invoices/multi_param_find_by_hash.yml +38 -21
- data/spec/vcr_cassettes/invoices/row_description_limit.yml +65 -0
- data/spec/vcr_cassettes/invoices/save_new.yml +39 -21
- data/spec/vcr_cassettes/invoices/save_new_with_comments.yml +39 -21
- data/spec/vcr_cassettes/invoices/save_new_with_country.yml +35 -26
- data/spec/vcr_cassettes/invoices/save_new_with_country_GB.yml +36 -27
- data/spec/vcr_cassettes/invoices/save_new_with_country_Norge.yml +35 -26
- data/spec/vcr_cassettes/invoices/save_new_with_country_Norway.yml +35 -26
- data/spec/vcr_cassettes/invoices/save_new_with_country_Sverige.yml +35 -26
- data/spec/vcr_cassettes/invoices/save_new_with_country_VA.yml +36 -27
- data/spec/vcr_cassettes/invoices/save_new_with_country_VI.yml +36 -27
- data/spec/vcr_cassettes/invoices/save_new_with_country_empty_string.yml +35 -26
- data/spec/vcr_cassettes/invoices/save_new_with_country_nil.yml +35 -26
- data/spec/vcr_cassettes/invoices/save_new_with_unsaved_parent.yml +65 -0
- data/spec/vcr_cassettes/invoices/save_old.yml +41 -24
- data/spec/vcr_cassettes/invoices/save_old_with_empty_comments.yml +41 -24
- data/spec/vcr_cassettes/invoices/save_old_with_empty_country.yml +37 -29
- data/spec/vcr_cassettes/invoices/save_old_with_nil_comments.yml +41 -24
- data/spec/vcr_cassettes/invoices/save_old_with_nil_country.yml +37 -29
- data/spec/vcr_cassettes/invoices/save_with_nested_model.yml +40 -21
- data/spec/vcr_cassettes/invoices/save_with_specially_named_attribute.yml +39 -20
- data/spec/vcr_cassettes/invoices/search_by_name.yml +38 -27
- data/spec/vcr_cassettes/invoices/search_miss.yml +36 -19
- data/spec/vcr_cassettes/invoices/search_with_special_char.yml +36 -19
- data/spec/vcr_cassettes/invoices/single_param_find_by_hash.yml +39 -22
- data/spec/vcr_cassettes/orders/all.yml +44 -119
- data/spec/vcr_cassettes/orders/filter_hit.yml +39 -26
- data/spec/vcr_cassettes/orders/filter_invalid.yml +35 -17
- data/spec/vcr_cassettes/orders/find_by_hash_failure.yml +36 -19
- data/spec/vcr_cassettes/orders/find_failure.yml +36 -19
- data/spec/vcr_cassettes/orders/find_id_1.yml +42 -23
- data/spec/vcr_cassettes/orders/find_new.yml +41 -24
- data/spec/vcr_cassettes/orders/housework_invalid_tax_reduction_type.yml +61 -0
- data/spec/vcr_cassettes/orders/housework_othercoses_invalid.yml +61 -0
- data/spec/vcr_cassettes/orders/housework_type_babysitting.yml +40 -21
- data/spec/vcr_cassettes/orders/housework_type_cleaning.yml +40 -21
- data/spec/vcr_cassettes/orders/housework_type_construction.yml +40 -21
- data/spec/vcr_cassettes/orders/housework_type_cooking.yml +36 -18
- data/spec/vcr_cassettes/orders/housework_type_electricity.yml +40 -21
- data/spec/vcr_cassettes/orders/housework_type_gardening.yml +40 -21
- data/spec/vcr_cassettes/orders/housework_type_glassmetalwork.yml +40 -21
- data/spec/vcr_cassettes/orders/housework_type_grounddrainagework.yml +40 -21
- data/spec/vcr_cassettes/orders/housework_type_hvac.yml +40 -21
- data/spec/vcr_cassettes/orders/housework_type_itservices.yml +65 -0
- data/spec/vcr_cassettes/orders/housework_type_majorappliancerepair.yml +65 -0
- data/spec/vcr_cassettes/orders/housework_type_masonry.yml +40 -21
- data/spec/vcr_cassettes/orders/housework_type_movingservices.yml +65 -0
- data/spec/vcr_cassettes/orders/housework_type_othercare.yml +40 -21
- data/spec/vcr_cassettes/orders/housework_type_othercosts.yml +40 -21
- data/spec/vcr_cassettes/orders/housework_type_paintingwallpapering.yml +40 -21
- data/spec/vcr_cassettes/orders/housework_type_snowplowing.yml +40 -21
- data/spec/vcr_cassettes/orders/housework_type_textileclothing.yml +40 -21
- data/spec/vcr_cassettes/orders/housework_type_tutoring.yml +36 -18
- data/spec/vcr_cassettes/orders/multi_param_find_by_hash.yml +38 -21
- data/spec/vcr_cassettes/orders/save_new.yml +40 -22
- data/spec/vcr_cassettes/orders/save_old.yml +41 -24
- data/spec/vcr_cassettes/orders/save_with_nested_model.yml +40 -21
- data/spec/vcr_cassettes/orders/search_by_name.yml +38 -23
- data/spec/vcr_cassettes/orders/search_miss.yml +36 -19
- data/spec/vcr_cassettes/orders/search_with_special_char.yml +36 -19
- data/spec/vcr_cassettes/orders/single_param_find_by_hash.yml +39 -22
- data/spec/vcr_cassettes/projects/all.yml +39 -37
- data/spec/vcr_cassettes/projects/find_by_hash_failure.yml +36 -19
- data/spec/vcr_cassettes/projects/find_failure.yml +36 -19
- data/spec/vcr_cassettes/projects/find_id_1.yml +38 -21
- data/spec/vcr_cassettes/projects/find_new.yml +39 -22
- data/spec/vcr_cassettes/projects/multi_param_find_by_hash.yml +40 -22
- data/spec/vcr_cassettes/projects/save_new.yml +37 -19
- data/spec/vcr_cassettes/projects/save_old.yml +39 -22
- data/spec/vcr_cassettes/projects/single_param_find_by_hash.yml +38 -21
- data/spec/vcr_cassettes/termsofpayments/all.yml +43 -29
- data/spec/vcr_cassettes/termsofpayments/find_failure.yml +36 -19
- data/spec/vcr_cassettes/termsofpayments/find_id_1.yml +38 -22
- data/spec/vcr_cassettes/termsofpayments/find_new.yml +38 -21
- data/spec/vcr_cassettes/termsofpayments/save_new.yml +37 -19
- data/spec/vcr_cassettes/termsofpayments/save_old.yml +38 -21
- data/spec/vcr_cassettes/units/all.yml +38 -26
- data/spec/vcr_cassettes/units/find_failure.yml +36 -19
- data/spec/vcr_cassettes/units/find_id_1.yml +38 -21
- data/spec/vcr_cassettes/units/find_new.yml +38 -21
- data/spec/vcr_cassettes/units/save_new.yml +37 -19
- data/spec/vcr_cassettes/units/save_old.yml +38 -21
- data/spec/vcr_cassettes/units/save_with_specially_named_attribute.yml +37 -19
- metadata +133 -252
- data/lib/fortnox/api/circular_queue.rb +0 -39
- data/spec/fortnox/api/circular_queue_spec.rb +0 -52
- data/spec/support/helpers/dummy_class_helper.rb +0 -38
- data/spec/support/helpers/when_performing_helper.rb +0 -7
- data/spec/vcr_cassettes/invoices/save_new_with_country_KR.yml +0 -57
- data/temp.txt +0 -1
@@ -1,12 +1,39 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'dotenv'
|
4
|
+
require 'jwt'
|
5
|
+
|
6
|
+
DOTENV_FILE_NAME = '.env.test'
|
7
|
+
Dotenv.load(DOTENV_FILE_NAME)
|
8
|
+
|
9
|
+
DEBUG = ENV.fetch('DEBUG', false) == true
|
10
|
+
|
3
11
|
module Helpers
|
4
12
|
module Configuration
|
5
|
-
def set_api_test_configuration
|
13
|
+
def set_api_test_configuration # rubocop:disable Metrics/MethodLength
|
6
14
|
Fortnox::API.configure do |config|
|
7
|
-
config.
|
8
|
-
|
15
|
+
config.debugging = DEBUG
|
16
|
+
|
17
|
+
if DEBUG
|
18
|
+
config.logger = lambda {
|
19
|
+
logger = Logger.new($stdout)
|
20
|
+
logger.level = Logger::DEBUG
|
21
|
+
return logger
|
22
|
+
}.call
|
23
|
+
end
|
9
24
|
end
|
25
|
+
|
26
|
+
Fortnox::API.access_token = ENV.fetch('FORTNOX_API_ACCESS_TOKEN')
|
27
|
+
end
|
28
|
+
|
29
|
+
def add_to_registry(symbol, klass)
|
30
|
+
unless Fortnox::API::Registry.key? symbol
|
31
|
+
# Only register the key once...
|
32
|
+
Fortnox::API::Registry.register(symbol) { klass }
|
33
|
+
end
|
34
|
+
|
35
|
+
# ... but stub the value each test run
|
36
|
+
Fortnox::API::Registry.stub(symbol, klass)
|
10
37
|
end
|
11
38
|
end
|
12
39
|
end
|
data/spec/support/helpers.rb
CHANGED
@@ -19,7 +19,7 @@ module Matchers
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def failure_message
|
22
|
-
"Expected class to have attribute #{@attribute.inspect} defined as #{@attribute_type}, "\
|
22
|
+
"Expected class to have attribute #{@attribute.inspect} defined as #{@attribute_type}, " \
|
23
23
|
"but got following errors:
|
24
24
|
#{@errors}"
|
25
25
|
end
|
@@ -29,7 +29,7 @@ module Matchers
|
|
29
29
|
def expect_error(msg)
|
30
30
|
yield
|
31
31
|
|
32
|
-
@errors
|
32
|
+
@errors = @errors += msg
|
33
33
|
false # Fail test since expected error not thrown
|
34
34
|
rescue Dry::Struct::Error
|
35
35
|
# TODO: check if error message is correct
|
@@ -11,9 +11,11 @@ module Matchers
|
|
11
11
|
@attribute = attribute
|
12
12
|
@valid_value = valid_value
|
13
13
|
@invalid_value = invalid_value
|
14
|
-
@expected_error =
|
14
|
+
@expected_error = Fortnox::API::AttributeError
|
15
15
|
@expected_error_message = 'invalid date'
|
16
16
|
@failure_description = ''
|
17
|
+
|
18
|
+
super(attribute, valid_value, invalid_value, nil)
|
17
19
|
end
|
18
20
|
|
19
21
|
def matches?(klass)
|
@@ -46,11 +48,11 @@ module Matchers
|
|
46
48
|
|
47
49
|
@failure_description << " (Expected #{@expected_error}, but got none)"
|
48
50
|
false
|
49
|
-
rescue @expected_error =>
|
50
|
-
return true if
|
51
|
+
rescue @expected_error => exception
|
52
|
+
return true if exception.message == @expected_error_message
|
51
53
|
|
52
|
-
fail_message = "Expected error message to include #{
|
53
|
-
"but was #{
|
54
|
+
fail_message = "Expected error message to include #{@expected_error_message.inspect}, " \
|
55
|
+
"but was #{exception.message.inspect}"
|
54
56
|
raise(fail_message)
|
55
57
|
end
|
56
58
|
end
|
@@ -45,7 +45,7 @@ module Matchers
|
|
45
45
|
value = model.send(@attribute)
|
46
46
|
return true if value == @default_value
|
47
47
|
|
48
|
-
@failure_description << " (Expected #{@invalid_value.inspect} to default to "\
|
48
|
+
@failure_description << " (Expected #{@invalid_value.inspect} to default to " \
|
49
49
|
"#{@default_value.inspect}), but got #{value.inspect}"
|
50
50
|
false
|
51
51
|
end
|
@@ -33,13 +33,13 @@ module Matchers
|
|
33
33
|
def rejects_non_string?
|
34
34
|
non_string = 10.0
|
35
35
|
@klass.new(@valid_hash.merge(@attribute => non_string))
|
36
|
-
rescue Fortnox::API::
|
37
|
-
expected_message = "#{non_string.inspect} (#{non_string.class}) "\
|
36
|
+
rescue Fortnox::API::AttributeError => exception
|
37
|
+
expected_message = "#{non_string.inspect} (#{non_string.class}) " \
|
38
38
|
"has invalid type for #{@attribute.inspect}"
|
39
|
-
return true if
|
39
|
+
return true if exception.message.include?(expected_message)
|
40
40
|
|
41
|
-
fail_message = "Expected error message to include #{expected_message.inspect}, "\
|
42
|
-
"but was #{
|
41
|
+
fail_message = "Expected error message to include #{expected_message.inspect}, " \
|
42
|
+
"but was #{exception.message.inspect}"
|
43
43
|
raise(fail_message)
|
44
44
|
end
|
45
45
|
end
|
@@ -43,10 +43,10 @@ module Matchers
|
|
43
43
|
|
44
44
|
def includes_error_message
|
45
45
|
@klass.new(@invalid_hash)
|
46
|
-
rescue EXCEPTION =>
|
47
|
-
return true if
|
46
|
+
rescue EXCEPTION => exception
|
47
|
+
return true if exception.message.include? expected_error_message
|
48
48
|
|
49
|
-
@wrong_error_message =
|
49
|
+
@wrong_error_message = exception.message
|
50
50
|
false
|
51
51
|
end
|
52
52
|
|
@@ -55,12 +55,12 @@ module Matchers
|
|
55
55
|
end
|
56
56
|
|
57
57
|
def no_exception_failure_message
|
58
|
-
"Expected class to raise #{EXCEPTION} "\
|
58
|
+
"Expected class to raise #{EXCEPTION} " \
|
59
59
|
"when attribute #{@attribute.inspect} is missing."
|
60
60
|
end
|
61
61
|
|
62
62
|
def wrong_error_message
|
63
|
-
"Expected exception to equal #{expected_error_message.inspect}. "\
|
63
|
+
"Expected exception to equal #{expected_error_message.inspect}. " \
|
64
64
|
"Message was #{@wrong_error_message.inspect}."
|
65
65
|
end
|
66
66
|
end
|
@@ -21,7 +21,7 @@ module Matchers
|
|
21
21
|
def correct_type?
|
22
22
|
return true if expected_type?
|
23
23
|
|
24
|
-
@errors << "Attribute #{@attribute.inspect} was expected to be of type #{@attribute_type}, "\
|
24
|
+
@errors << "Attribute #{@attribute.inspect} was expected to be of type #{@attribute_type}, " \
|
25
25
|
"but was #{@actual_type}"
|
26
26
|
false
|
27
27
|
end
|
data/spec/support/vcr_setup.rb
CHANGED
@@ -5,4 +5,20 @@ require 'vcr'
|
|
5
5
|
VCR.configure do |c|
|
6
6
|
c.cassette_library_dir = 'spec/vcr_cassettes'
|
7
7
|
c.hook_into :webmock
|
8
|
+
c.filter_sensitive_data('<AUTHORIZATION>') do |interaction|
|
9
|
+
interaction.request.headers['Authorization']&.first
|
10
|
+
end
|
11
|
+
c.filter_sensitive_data('<REFRESH_TOKEN>') do |interaction|
|
12
|
+
interaction.request.body.split('&refresh_token=').last
|
13
|
+
end
|
14
|
+
c.filter_sensitive_data('<ACCESS_TOKEN>') do |interaction|
|
15
|
+
body = interaction.response.body
|
16
|
+
access_token = /"access_token":"[^"]*"/.match(body)
|
17
|
+
access_token ? access_token.to_s.split('"access_token":"').last.chop : ''
|
18
|
+
end
|
19
|
+
c.filter_sensitive_data('<REFRESH_TOKEN>') do |interaction|
|
20
|
+
body = interaction.response.body
|
21
|
+
refresh_token = /"refresh_token":"[^"]*"/.match(body)
|
22
|
+
refresh_token ? refresh_token.to_s.split('"refresh_token":"').last.chop : ''
|
23
|
+
end
|
8
24
|
end
|
@@ -11,58 +11,57 @@ http_interactions:
|
|
11
11
|
- application/json
|
12
12
|
Accept:
|
13
13
|
- application/json
|
14
|
-
|
15
|
-
-
|
16
|
-
|
17
|
-
-
|
14
|
+
Authorization:
|
15
|
+
- "<AUTHORIZATION>"
|
16
|
+
Accept-Encoding:
|
17
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
18
|
+
User-Agent:
|
19
|
+
- Ruby
|
18
20
|
response:
|
19
21
|
status:
|
20
22
|
code: 200
|
21
23
|
message: OK
|
22
24
|
headers:
|
23
|
-
|
24
|
-
-
|
25
|
-
Date:
|
26
|
-
- Wed, 29 May 2019 07:52:46 GMT
|
25
|
+
Content-Length:
|
26
|
+
- '2040'
|
27
27
|
Content-Type:
|
28
28
|
- application/json
|
29
|
-
|
30
|
-
-
|
29
|
+
Date:
|
30
|
+
- Mon, 30 Jan 2023 10:35:04 GMT
|
31
31
|
Vary:
|
32
32
|
- Accept-Encoding
|
33
|
-
-
|
33
|
+
X-Build:
|
34
|
+
- 16d854443d
|
35
|
+
X-Frame-Options:
|
36
|
+
- sameorigin
|
34
37
|
X-Rack-Responsetime:
|
35
|
-
- '
|
38
|
+
- '99'
|
36
39
|
X-Uid:
|
37
|
-
-
|
38
|
-
|
39
|
-
-
|
40
|
+
- 97b8da1b
|
41
|
+
Server:
|
42
|
+
- Fortnox
|
43
|
+
X-Content-Type-Options:
|
44
|
+
- nosniff
|
45
|
+
X-Xss-Protection:
|
46
|
+
- '0'
|
47
|
+
Referrer-Policy:
|
48
|
+
- strict-origin-when-cross-origin
|
49
|
+
Content-Security-Policy:
|
50
|
+
- 'upgrade-insecure-requests;frame-ancestors https://*.fortnox.se;report-uri
|
51
|
+
/api/cspreport;connect-src ''self'' https://a.storyblok.com wss://*.fortnox.se
|
52
|
+
*.fortnox.se *.findity.com mybusiness.pwc.se themes.googleusercontent.com
|
53
|
+
s3.amazonaws.com/helpjuice-static/ *.helpjuice.com *.vimeo.com fonts.googleapis.com
|
54
|
+
fonts.gstatic.com api.cling.se wss://api.cling.se ''unsafe-inline'' ''unsafe-eval''
|
55
|
+
blob: data:'
|
56
|
+
Strict-Transport-Security:
|
57
|
+
- max-age=31536000; includeSubdomains
|
40
58
|
body:
|
41
|
-
encoding:
|
42
|
-
string: '{"MetaInformation":{"@TotalResources":
|
43
|
-
|
44
|
-
|
45
|
-
article","DisposableQuantity":"0","EAN":"","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":"","VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/
|
46
|
-
|
47
|
-
value","DisposableQuantity":"0","EAN":"","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":"","VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/7","ArticleNumber":"7","Description":"Test
|
48
|
-
article","DisposableQuantity":"0","EAN":"5901234123457","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":"","VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/8","ArticleNumber":"8","Description":"A
|
49
|
-
value","DisposableQuantity":"0","EAN":"","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":"","VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/9","ArticleNumber":"9","Description":"A
|
50
|
-
value","DisposableQuantity":"0","EAN":"","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":"","VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/10","ArticleNumber":"10","Description":"Abc
|
51
|
-
123","DisposableQuantity":"0","EAN":"","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":"","VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/11","ArticleNumber":"11","Description":"A
|
52
|
-
value","DisposableQuantity":"0","EAN":"","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":"","VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/12","ArticleNumber":"12","Description":"Test
|
53
|
-
article","DisposableQuantity":"0","EAN":"5901234123457","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":"","VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/13","ArticleNumber":"13","Description":"Test
|
54
|
-
article","DisposableQuantity":"0","EAN":"5901234123457","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":"","VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/14","ArticleNumber":"14","Description":"A
|
55
|
-
value","DisposableQuantity":"0","EAN":"","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":"","VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/15","ArticleNumber":"15","Description":"A
|
56
|
-
value","DisposableQuantity":"0","EAN":"","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":"","VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/16","ArticleNumber":"16","Description":"Test
|
57
|
-
article","DisposableQuantity":"0","EAN":"5901234123457","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":"","VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/17","ArticleNumber":"17","Description":"A
|
58
|
-
value","DisposableQuantity":"0","EAN":"","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":"","VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/18","ArticleNumber":"18","Description":"Updated
|
59
|
-
description","DisposableQuantity":"0","EAN":"","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":null,"VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/19","ArticleNumber":"19","Description":"Updated
|
60
|
-
description","DisposableQuantity":"0","EAN":"","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":null,"VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/20","ArticleNumber":"20","Description":"Test
|
61
|
-
article","DisposableQuantity":"0","EAN":"5901234123457","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":"","VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/21","ArticleNumber":"21","Description":"Updated
|
62
|
-
description","DisposableQuantity":"0","EAN":"","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":null,"VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/22","ArticleNumber":"22","Description":"Test
|
63
|
-
article","DisposableQuantity":"0","EAN":"5901234123457","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":"","VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/23","ArticleNumber":"23","Description":"Updated
|
64
|
-
description","DisposableQuantity":"0","EAN":"","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":null,"VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/24","ArticleNumber":"24","Description":"Test
|
59
|
+
encoding: ASCII-8BIT
|
60
|
+
string: '{"MetaInformation":{"@TotalResources":6,"@TotalPages":1,"@CurrentPage":1},"Articles":[{"@url":"https:\/\/api.fortnox.se\/3\/articles\/1","ArticleNumber":"1","Description":"Test
|
61
|
+
article","DisposableQuantity":"0","EAN":"5901234123457","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":"","VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/2","ArticleNumber":"2","Description":"Updated
|
62
|
+
description","DisposableQuantity":"0","EAN":"","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":null,"VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/3","ArticleNumber":"3","Description":"Test
|
63
|
+
article","DisposableQuantity":"0","EAN":"5901234123457","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":"","VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/101","ArticleNumber":"101","Description":"Hammer","DisposableQuantity":"0","EAN":"","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":"","StockValue":"0","Unit":null,"VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/102","ArticleNumber":"102","Description":"Updated
|
64
|
+
description","DisposableQuantity":"0","EAN":"","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":null,"VAT":null,"WebshopArticle":false},{"@url":"https:\/\/api.fortnox.se\/3\/articles\/103","ArticleNumber":"103","Description":"Test
|
65
65
|
article","DisposableQuantity":"0","EAN":"5901234123457","Housework":false,"PurchasePrice":"0","SalesPrice":null,"QuantityInStock":"0","ReservedQuantity":"0","StockPlace":null,"StockValue":"0","Unit":"","VAT":null,"WebshopArticle":false}]}'
|
66
|
-
|
67
|
-
|
68
|
-
recorded_with: VCR 4.0.0
|
66
|
+
recorded_at: Mon, 30 Jan 2023 10:35:04 GMT
|
67
|
+
recorded_with: VCR 6.1.0
|
@@ -11,35 +11,52 @@ http_interactions:
|
|
11
11
|
- application/json
|
12
12
|
Accept:
|
13
13
|
- application/json
|
14
|
-
|
15
|
-
-
|
16
|
-
|
17
|
-
-
|
14
|
+
Authorization:
|
15
|
+
- "<AUTHORIZATION>"
|
16
|
+
Accept-Encoding:
|
17
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
18
|
+
User-Agent:
|
19
|
+
- Ruby
|
18
20
|
response:
|
19
21
|
status:
|
20
22
|
code: 200
|
21
23
|
message: OK
|
22
24
|
headers:
|
23
|
-
|
24
|
-
-
|
25
|
-
Date:
|
26
|
-
- Wed, 29 May 2019 07:52:47 GMT
|
25
|
+
Content-Length:
|
26
|
+
- '88'
|
27
27
|
Content-Type:
|
28
28
|
- application/json
|
29
|
-
|
30
|
-
-
|
29
|
+
Date:
|
30
|
+
- Mon, 30 Jan 2023 10:35:05 GMT
|
31
31
|
Vary:
|
32
32
|
- Accept-Encoding
|
33
|
-
-
|
33
|
+
X-Build:
|
34
|
+
- 16d854443d
|
35
|
+
X-Frame-Options:
|
36
|
+
- sameorigin
|
34
37
|
X-Rack-Responsetime:
|
35
|
-
- '
|
38
|
+
- '73'
|
36
39
|
X-Uid:
|
37
|
-
-
|
38
|
-
|
39
|
-
-
|
40
|
+
- 90a7ad19
|
41
|
+
Server:
|
42
|
+
- Fortnox
|
43
|
+
X-Content-Type-Options:
|
44
|
+
- nosniff
|
45
|
+
X-Xss-Protection:
|
46
|
+
- '0'
|
47
|
+
Referrer-Policy:
|
48
|
+
- strict-origin-when-cross-origin
|
49
|
+
Content-Security-Policy:
|
50
|
+
- 'upgrade-insecure-requests;frame-ancestors https://*.fortnox.se;report-uri
|
51
|
+
/api/cspreport;connect-src ''self'' https://a.storyblok.com wss://*.fortnox.se
|
52
|
+
*.fortnox.se *.findity.com mybusiness.pwc.se themes.googleusercontent.com
|
53
|
+
s3.amazonaws.com/helpjuice-static/ *.helpjuice.com *.vimeo.com fonts.googleapis.com
|
54
|
+
fonts.gstatic.com api.cling.se wss://api.cling.se ''unsafe-inline'' ''unsafe-eval''
|
55
|
+
blob: data:'
|
56
|
+
Strict-Transport-Security:
|
57
|
+
- max-age=31536000; includeSubdomains
|
40
58
|
body:
|
41
|
-
encoding:
|
59
|
+
encoding: ASCII-8BIT
|
42
60
|
string: '{"MetaInformation":{"@TotalResources":0,"@TotalPages":0,"@CurrentPage":1},"Articles":[]}'
|
43
|
-
|
44
|
-
|
45
|
-
recorded_with: VCR 4.0.0
|
61
|
+
recorded_at: Mon, 30 Jan 2023 10:35:05 GMT
|
62
|
+
recorded_with: VCR 6.1.0
|
@@ -11,35 +11,52 @@ http_interactions:
|
|
11
11
|
- application/json
|
12
12
|
Accept:
|
13
13
|
- application/json
|
14
|
-
|
15
|
-
-
|
16
|
-
|
17
|
-
-
|
14
|
+
Authorization:
|
15
|
+
- "<AUTHORIZATION>"
|
16
|
+
Accept-Encoding:
|
17
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
18
|
+
User-Agent:
|
19
|
+
- Ruby
|
18
20
|
response:
|
19
21
|
status:
|
20
22
|
code: 404
|
21
23
|
message: Not Found
|
22
24
|
headers:
|
23
|
-
|
24
|
-
-
|
25
|
-
Date:
|
26
|
-
- Wed, 29 May 2019 07:52:46 GMT
|
25
|
+
Content-Length:
|
26
|
+
- '84'
|
27
27
|
Content-Type:
|
28
28
|
- application/json
|
29
|
-
|
30
|
-
-
|
29
|
+
Date:
|
30
|
+
- Mon, 30 Jan 2023 10:35:05 GMT
|
31
31
|
Vary:
|
32
32
|
- Accept-Encoding
|
33
|
-
-
|
33
|
+
X-Build:
|
34
|
+
- 16d854443d
|
35
|
+
X-Frame-Options:
|
36
|
+
- sameorigin
|
34
37
|
X-Rack-Responsetime:
|
35
|
-
- '
|
38
|
+
- '85'
|
36
39
|
X-Uid:
|
37
|
-
-
|
38
|
-
|
39
|
-
-
|
40
|
+
- 306179db
|
41
|
+
Server:
|
42
|
+
- Fortnox
|
43
|
+
X-Content-Type-Options:
|
44
|
+
- nosniff
|
45
|
+
X-Xss-Protection:
|
46
|
+
- '0'
|
47
|
+
Referrer-Policy:
|
48
|
+
- strict-origin-when-cross-origin
|
49
|
+
Content-Security-Policy:
|
50
|
+
- 'upgrade-insecure-requests;frame-ancestors https://*.fortnox.se;report-uri
|
51
|
+
/api/cspreport;connect-src ''self'' https://a.storyblok.com wss://*.fortnox.se
|
52
|
+
*.fortnox.se *.findity.com mybusiness.pwc.se themes.googleusercontent.com
|
53
|
+
s3.amazonaws.com/helpjuice-static/ *.helpjuice.com *.vimeo.com fonts.googleapis.com
|
54
|
+
fonts.gstatic.com api.cling.se wss://api.cling.se ''unsafe-inline'' ''unsafe-eval''
|
55
|
+
blob: data:'
|
56
|
+
Strict-Transport-Security:
|
57
|
+
- max-age=31536000; includeSubdomains
|
40
58
|
body:
|
41
|
-
encoding:
|
59
|
+
encoding: ASCII-8BIT
|
42
60
|
string: '{"ErrorInformation":{"Error":1,"Message":"Kan inte hitta artikeln.","Code":2000428}}'
|
43
|
-
|
44
|
-
|
45
|
-
recorded_with: VCR 4.0.0
|
61
|
+
recorded_at: Mon, 30 Jan 2023 10:35:05 GMT
|
62
|
+
recorded_with: VCR 6.1.0
|
@@ -11,35 +11,53 @@ http_interactions:
|
|
11
11
|
- application/json
|
12
12
|
Accept:
|
13
13
|
- application/json
|
14
|
-
|
15
|
-
-
|
16
|
-
|
17
|
-
-
|
14
|
+
Authorization:
|
15
|
+
- "<AUTHORIZATION>"
|
16
|
+
Accept-Encoding:
|
17
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
18
|
+
User-Agent:
|
19
|
+
- Ruby
|
18
20
|
response:
|
19
21
|
status:
|
20
22
|
code: 200
|
21
23
|
message: OK
|
22
24
|
headers:
|
23
|
-
|
24
|
-
-
|
25
|
-
Date:
|
26
|
-
- Wed, 29 May 2019 07:52:46 GMT
|
25
|
+
Content-Length:
|
26
|
+
- '896'
|
27
27
|
Content-Type:
|
28
28
|
- application/json
|
29
|
-
|
30
|
-
-
|
29
|
+
Date:
|
30
|
+
- Mon, 30 Jan 2023 10:35:04 GMT
|
31
31
|
Vary:
|
32
32
|
- Accept-Encoding
|
33
|
-
-
|
33
|
+
X-Build:
|
34
|
+
- 16d854443d
|
35
|
+
X-Frame-Options:
|
36
|
+
- sameorigin
|
34
37
|
X-Rack-Responsetime:
|
35
|
-
- '
|
38
|
+
- '91'
|
36
39
|
X-Uid:
|
37
|
-
-
|
38
|
-
|
39
|
-
-
|
40
|
+
- '71616897'
|
41
|
+
Server:
|
42
|
+
- Fortnox
|
43
|
+
X-Content-Type-Options:
|
44
|
+
- nosniff
|
45
|
+
X-Xss-Protection:
|
46
|
+
- '0'
|
47
|
+
Referrer-Policy:
|
48
|
+
- strict-origin-when-cross-origin
|
49
|
+
Content-Security-Policy:
|
50
|
+
- 'upgrade-insecure-requests;frame-ancestors https://*.fortnox.se;report-uri
|
51
|
+
/api/cspreport;connect-src ''self'' https://a.storyblok.com wss://*.fortnox.se
|
52
|
+
*.fortnox.se *.findity.com mybusiness.pwc.se themes.googleusercontent.com
|
53
|
+
s3.amazonaws.com/helpjuice-static/ *.helpjuice.com *.vimeo.com fonts.googleapis.com
|
54
|
+
fonts.gstatic.com api.cling.se wss://api.cling.se ''unsafe-inline'' ''unsafe-eval''
|
55
|
+
blob: data:'
|
56
|
+
Strict-Transport-Security:
|
57
|
+
- max-age=31536000; includeSubdomains
|
40
58
|
body:
|
41
|
-
encoding:
|
42
|
-
string: '{"Article":{"@url":"https:\/\/api.fortnox.se\/3\/articles\/1","ArticleNumber":"1","Bulky":false,"ConstructionAccount":
|
43
|
-
|
44
|
-
recorded_at:
|
45
|
-
recorded_with: VCR
|
59
|
+
encoding: ASCII-8BIT
|
60
|
+
string: '{"Article":{"@url":"https:\/\/api.fortnox.se\/3\/articles\/1","ArticleNumber":"1","Bulky":false,"ConstructionAccount":0,"Depth":0,"Description":"Test
|
61
|
+
article","DisposableQuantity":0,"EAN":"5901234123457","EUAccount":3108,"EUVATAccount":3106,"ExportAccount":3105,"Height":0,"Housework":false,"HouseworkType":null,"Active":true,"Manufacturer":null,"ManufacturerArticleNumber":"","Note":"","PurchaseAccount":4000,"PurchasePrice":0,"QuantityInStock":0,"ReservedQuantity":0,"SalesAccount":3004,"StockGoods":false,"StockPlace":null,"StockValue":0,"StockWarning":0,"SupplierName":null,"SupplierNumber":null,"Type":"STOCK","Unit":null,"VAT":0,"WebshopArticle":false,"Weight":0,"Width":0,"Expired":false,"SalesPrice":null,"CostCalculationMethod":null,"StockAccount":null,"StockChangeAccount":null,"DirectCost":null,"FreightCost":null,"OtherCost":null,"DefaultStockPoint":null,"DefaultStockLocation":null}}'
|
62
|
+
recorded_at: Mon, 30 Jan 2023 10:35:04 GMT
|
63
|
+
recorded_with: VCR 6.1.0
|