11
11
use ReflectionClass ;
12
12
use Spatie \TypeScriptTransformer \Tests \FakeClasses \IntBackedEnum ;
13
13
use Spatie \TypeScriptTransformer \Tests \FakeClasses \StringBackedEnum ;
14
+ use Spatie \TypeScriptTransformer \Tests \FakeClasses \StringBackedEnumWithSingleQuotes ;
14
15
use Spatie \TypeScriptTransformer \Transformers \EnumTransformer ;
15
16
use Spatie \TypeScriptTransformer \TypeScriptTransformerConfig ;
16
17
use UnitEnum ;
82
83
assertEquals ('type ' , $ type ->keyword );
83
84
});
84
85
85
- it ('can transform a backed enum with integers into an enm ' , function () {
86
+ it ('can transform a backed enum with integers into an enum ' , function () {
86
87
$ transformer = new EnumTransformer (
87
88
TypeScriptTransformerConfig::create ()->transformToNativeEnums (true )
88
89
);
113
114
assertFalse ($ type ->isInline );
114
115
assertEquals ('type ' , $ type ->keyword );
115
116
});
117
+
118
+ it ('can transform a backed enum with strings with single-quotes into a enum ' , function () {
119
+ $ transformer = new EnumTransformer (
120
+ TypeScriptTransformerConfig::create ()->transformToNativeEnums (true )
121
+ );
122
+
123
+ $ type = $ transformer ->transform (
124
+ new ReflectionClass (StringBackedEnumWithSingleQuotes::class),
125
+ 'Enum '
126
+ );
127
+
128
+ assertEquals ("'NO_QUOTE' = 'no quote', 'HAS_QUOTE' = 'has quote \'' " , $ type ->transformed );
129
+ assertTrue ($ type ->missingSymbols ->isEmpty ());
130
+ assertFalse ($ type ->isInline );
131
+ assertEquals ('enum ' , $ type ->keyword );
132
+ });
133
+
134
+ it ('can transform a backed enum with strings with single-quotes into a union ' , function () {
135
+ $ transformer = new EnumTransformer (
136
+ TypeScriptTransformerConfig::create ()->transformToNativeEnums (false )
137
+ );
138
+
139
+ $ type = $ transformer ->transform (
140
+ new ReflectionClass (StringBackedEnumWithSingleQuotes::class),
141
+ 'Enum '
142
+ );
143
+
144
+ assertEquals ("'no quote' | 'has quote \'' " , $ type ->transformed );
145
+ assertTrue ($ type ->missingSymbols ->isEmpty ());
146
+ assertFalse ($ type ->isInline );
147
+ assertEquals ('type ' , $ type ->keyword );
148
+ });
0 commit comments