5
5
Cloudinary ,
6
6
isJsonLikeString ,
7
7
isNamedNodeMap ,
8
- transformKeyNamesFromKebabToSnakeCase
8
+ transformKeyNames
9
9
} from './cloudinary.service' ;
10
10
import CloudinaryConfiguration from './cloudinary-configuration.class' ;
11
11
@@ -70,9 +70,9 @@ describe('Cloudinary service', () => {
70
70
} ) ;
71
71
} ) ;
72
72
73
- describe ( 'transformKeyNamesFromKebabToSnakeCase ' , ( ) => {
73
+ describe ( 'transformKeyNames ' , ( ) => {
74
74
it ( 'Transforms property names of json-like strings from kebab-case to snake_case' , ( ) => {
75
- expect ( transformKeyNamesFromKebabToSnakeCase ( '{"aaa-aaa":"1", "bbb-bbb":"2", "cc": "ccc-ccc"}' ) ) . toEqual (
75
+ expect ( transformKeyNames ( '{"aaa-aaa":"1", "bbb-bbb":"2", "cc": "ccc-ccc"}' ) ) . toEqual (
76
76
{
77
77
aaa_aaa : '1' ,
78
78
bbb_bbb : '2' ,
@@ -81,7 +81,7 @@ describe('Cloudinary service', () => {
81
81
) ;
82
82
} ) ;
83
83
it ( 'Transforms property names of json-like strings spanning multi-lines from kebab-case to snake_case' , ( ) => {
84
- expect ( transformKeyNamesFromKebabToSnakeCase ( `{"aaa-aaa":"1",
84
+ expect ( transformKeyNames ( `{"aaa-aaa":"1",
85
85
"bbb-bbb":"2",
86
86
"cc": "ccc-ccc"}` ) ) . toEqual (
87
87
{
@@ -92,22 +92,32 @@ describe('Cloudinary service', () => {
92
92
) ;
93
93
} ) ;
94
94
it ( 'Transforms property names of objects from kebab-case to snake_case' , ( ) => {
95
- expect ( transformKeyNamesFromKebabToSnakeCase ( { 'aaa-aaa' : 1 , 'bbb-bbb' : 2 , cc : 'ccc-ccc' } ) ) . toEqual (
95
+ expect ( transformKeyNames ( { 'aaa-aaa' : 1 , 'bbb-bbb' : 2 , cc : 'ccc-ccc' } ) ) . toEqual (
96
96
{
97
97
aaa_aaa : 1 ,
98
98
bbb_bbb : 2 ,
99
99
cc : 'ccc-ccc'
100
100
}
101
101
) ;
102
102
} ) ;
103
+ it ( 'Transforms property names by stripping cld prefix' , ( ) => {
104
+ // "cld" prefix can be followed by an optional dash or underscore
105
+ expect ( transformKeyNames ( '{"cldResponsive":"1", "cld-width":"2", "cld_height": "ccc-ccc"}' ) ) . toEqual (
106
+ {
107
+ responsive : '1' ,
108
+ width : '2' ,
109
+ height : 'ccc-ccc'
110
+ }
111
+ ) ;
112
+ } ) ;
103
113
it ( 'does not affect primitive values' , ( ) => {
104
- expect ( transformKeyNamesFromKebabToSnakeCase ( 123 ) ) . toEqual ( 123 ) ;
105
- expect ( transformKeyNamesFromKebabToSnakeCase ( undefined ) ) . toBeUndefined ( ) ;
106
- expect ( transformKeyNamesFromKebabToSnakeCase ( '' ) ) . toEqual ( '' ) ;
107
- expect ( transformKeyNamesFromKebabToSnakeCase ( 'a b c' ) ) . toEqual ( 'a b c' ) ;
114
+ expect ( transformKeyNames ( 123 ) ) . toEqual ( 123 ) ;
115
+ expect ( transformKeyNames ( undefined ) ) . toBeUndefined ( ) ;
116
+ expect ( transformKeyNames ( '' ) ) . toEqual ( '' ) ;
117
+ expect ( transformKeyNames ( 'a b c' ) ) . toEqual ( 'a b c' ) ;
108
118
} ) ;
109
119
it ( 'iterates over array elements to transform its members' , ( ) => {
110
- expect ( transformKeyNamesFromKebabToSnakeCase ( [ {
120
+ expect ( transformKeyNames ( [ {
111
121
'aaa-aaa' : 'aaa-aaa' ,
112
122
'bbb-bbb' : 'bbb-bbb' ,
113
123
'ccc' : 'ccc'
@@ -125,7 +135,7 @@ describe('Cloudinary service', () => {
125
135
] ) ;
126
136
} ) ;
127
137
it ( 'transforms complex json-like objects into options' , ( ) => {
128
- expect ( transformKeyNamesFromKebabToSnakeCase ( `{"aaa-aaa":"1",
138
+ expect ( transformKeyNames ( `{"aaa-aaa":"1",
129
139
"bbb-bbb":"2",
130
140
"transform-ation": [{ "effect": "sepia", "fetch_format": "auto"}]
131
141
}` ) ) . toEqual (
0 commit comments