From b2a0310e6f08ab64fdd7999d47e5582dace18521 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Bellet Date: Tue, 5 Jul 2022 15:48:31 +0200 Subject: [PATCH] Handle the case when errors is a string --- .../admin/utils/services/errors_parser.js.coffee | 7 ++++--- .../unit/admin/utils/services/errors_parser_spec.js.coffee | 3 +++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/admin/utils/services/errors_parser.js.coffee b/app/assets/javascripts/admin/utils/services/errors_parser.js.coffee index 0e667a0fc0..0ed7b2d8b7 100644 --- a/app/assets/javascripts/admin/utils/services/errors_parser.js.coffee +++ b/app/assets/javascripts/admin/utils/services/errors_parser.js.coffee @@ -5,15 +5,16 @@ angular.module("admin.utils").factory "ErrorsParser", -> return defaultContent unless errors? errorsString = "" - if errors.length > 0 + if Array.isArray(errors) # it is an array of errors errorsString = errors.join("\n") + "\n" - else + else if typeof errors == "object" # it is a hash of errors keys = Object.keys(errors) for key in keys errorsString += errors[key].join("\n") + "\n" - + else # string + errorsString = errors this.defaultIfEmpty(errorsString, defaultContent) defaultIfEmpty: (content, defaultContent) => diff --git a/spec/javascripts/unit/admin/utils/services/errors_parser_spec.js.coffee b/spec/javascripts/unit/admin/utils/services/errors_parser_spec.js.coffee index 9ae47b201a..c4c479b5de 100644 --- a/spec/javascripts/unit/admin/utils/services/errors_parser_spec.js.coffee +++ b/spec/javascripts/unit/admin/utils/services/errors_parser_spec.js.coffee @@ -10,6 +10,9 @@ describe "ErrorsParser service", -> it "returns empty string for nil errors", -> expect(errorsParser.toString(null)).toEqual "" + it "returns string for string errors", -> + expect(errorsParser.toString("error")).toEqual "error" + it "returns the elements in the array if an array is provided", -> expect(errorsParser.toString(["1", "2"])).toEqual "1\n2\n"