From 86f17757a8ca8372a764907bc151dc1aee265b9f Mon Sep 17 00:00:00 2001
From: StarProxima <maks.prozorov1@yandex.ru>
Date: Thu, 26 Oct 2023 02:10:05 +0300
Subject: [PATCH] #127

---
 swagger_parser/CHANGELOG.md                          |  1 +
 swagger_parser/lib/src/utils/type_utils.dart         |  2 +-
 swagger_parser/test/generator/data_classes_test.dart | 11 +++++++++--
 3 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/swagger_parser/CHANGELOG.md b/swagger_parser/CHANGELOG.md
index b7c6b954..c632ef6a 100644
--- a/swagger_parser/CHANGELOG.md
+++ b/swagger_parser/CHANGELOG.md
@@ -1,6 +1,7 @@
 ## 1.11.0
 - Added unknown value to all enums to maintain backwards compatibility when adding new values on the backend
 - Add new config parameter `unknown_enum_value` (dart only) ([#106](https://github.com/Carapacik/swagger_parser/issues/106))
+- Support String values with spaces for enums ([#127](https://github.com/Carapacik/swagger_parser/issues/127))
 
 ## 1.10.6
 - Fixed map objects parsing as separate entities ([#124](https://github.com/Carapacik/swagger_parser/issues/124))
diff --git a/swagger_parser/lib/src/utils/type_utils.dart b/swagger_parser/lib/src/utils/type_utils.dart
index 9719a9a1..da25cbbb 100644
--- a/swagger_parser/lib/src/utils/type_utils.dart
+++ b/swagger_parser/lib/src/utils/type_utils.dart
@@ -61,7 +61,7 @@ String uniqueName({bool isEnum = false}) {
   return name;
 }
 
-final _enumNameRegExp = RegExp(r'^[a-zA-Z\d_-]*$');
+final _enumNameRegExp = RegExp(r'^[a-zA-Z\d_-\s]*$');
 final _startWithNumberRegExp = RegExp(r'^-?\d+');
 
 /// Protect default enum value from incorrect symbols, keywords, etc.
diff --git a/swagger_parser/test/generator/data_classes_test.dart b/swagger_parser/test/generator/data_classes_test.dart
index 226073dd..50d420fb 100644
--- a/swagger_parser/test/generator/data_classes_test.dart
+++ b/swagger_parser/test/generator/data_classes_test.dart
@@ -1092,6 +1092,7 @@ class ClassName with _$ClassName {
                 '3item_three',
                 '4ITEM-FOUR',
                 '5иллегалчарактер',
+                '6 item six',
               },
             ),
           ),
@@ -1178,7 +1179,10 @@ enum EnumNameStringWithLeadingNumbers {
 
   /// Incorrect name has been replaced. Original name: `5иллегалчарактер`.
   @JsonValue('5иллегалчарактер')
-  undefined0;
+  undefined0,
+
+  @JsonValue('6 item six')
+  value6ItemSix;
 }
 ''';
 
@@ -1357,7 +1361,7 @@ enum KeywordsName {
             name: 'EnumNameString',
             type: 'string',
             items: UniversalEnumItem.listFromNames(
-              {'itemOne', 'ItemTwo', 'item_three', 'ITEM-FOUR'},
+              {'itemOne', 'ItemTwo', 'item_three', 'ITEM-FOUR', 'Item five'},
             ),
           ),
         ];
@@ -1414,6 +1418,9 @@ enum EnumNameString {
   @JsonValue('ITEM-FOUR')
   itemFour('ITEM-FOUR'),
 
+  @JsonValue('Item five')
+  itemFive('Item five'),
+
   /// Default value for all unparsed values, allows backward compatibility when adding new values on the backend.
   $unknown(null);