@@ -102,168 +102,189 @@ describe('data access', () => {
102
102
[ 'foo23' , 'bar23' ]
103
103
]
104
104
105
- it . each ( samplePairs ) ( 'should get property "%s"' , ( key , expected ) => {
106
- const result = properties . get ( sample , key )
107
- expect ( result ) . toBe ( expected )
108
- } )
109
-
110
- it . each ( [
111
- [ 'foo6' ] ,
112
- [ 'foo7' ]
113
- ] ) ( 'should not get commented property "%s"' , ( key ) => {
114
- const result = properties . get ( sample , key )
115
- expect ( result ) . toBeUndefined ( )
116
- } )
105
+ describe ( 'get value' , ( ) => {
106
+ it . each ( samplePairs ) ( 'should get property "%s"' , ( key , expected ) => {
107
+ const result = properties . get ( sample , key )
108
+ expect ( result ) . toBe ( expected )
109
+ } )
117
110
111
+ it . each ( [
112
+ [ 'foo6' ] ,
113
+ [ 'foo7' ]
114
+ ] ) ( 'should not get commented property "%s"' , ( key ) => {
115
+ const result = properties . get ( sample , key )
116
+ expect ( result ) . toBeUndefined ( )
117
+ } )
118
118
119
- it ( 'should return last value of duplicate key' , ( ) => {
120
- const config : properties . Properties = {
121
- lines : [
122
- 'key1=foo1' ,
123
- 'key2=foo2' ,
124
- 'key1=foo3'
125
- ]
126
- }
127
119
128
- const result = properties . get ( config , 'key1' )
129
- expect ( result ) . toBe ( 'foo3' )
130
- } )
120
+ it ( 'should return last value of duplicate key' , ( ) => {
121
+ const config : properties . Properties = {
122
+ lines : [
123
+ 'key1=foo1' ,
124
+ 'key2=foo2' ,
125
+ 'key1=foo3'
126
+ ]
127
+ }
131
128
132
- it . each ( [
133
- [ 'foo1' , 'bar' , 'foo1=bar' ] ,
134
- [ 'foo8:' , 'bar8' , 'foo8\\:=bar8' ] ,
135
- [ 'foo9=' , 'bar9' , 'foo9\\==bar9' ] ,
136
- [ 'foo10=' , 'bar10' , 'foo10\\==bar10' ] ,
137
- [ 'foo11 ' , 'bar11' , 'foo11\\ =bar11' ] ,
138
- [ ' foo12' , 'bar12 ' , '\\ foo12=bar12 ' ] ,
139
- [ '#foo13' , 'bar13' , '\\#foo13=bar13' ] ,
140
- [ '!foo14#' , 'bar14' , '\\!foo14\\#=bar14' ] ,
141
- [ 'foo15' , '#bar15' , 'foo15=\\#bar15' ] ,
142
- [ 'f o o18' , ' bar18' , 'f\\ o\\ \\ o18=\\ bar18' ] ,
143
- [ 'foo19\n' , 'bar\t\f\r19\n' , 'foo19\\n=bar\\t\\f\\r19\\n' ] ,
144
- [ 'foo20' , '' , 'foo20=' ] ,
145
- [ 'foo22' , '\\' , 'foo22=\\\\' ]
146
- ] ) ( 'should format key pair for "%s"' , ( key , value , expected ) => {
147
- const config = properties . empty ( )
148
- properties . set ( config , key , value )
149
- expect ( config . lines ) . toEqual ( [ expected ] )
129
+ const result = properties . get ( config , 'key1' )
130
+ expect ( result ) . toBe ( 'foo3' )
131
+ } )
150
132
} )
151
133
152
- it . each ( [
153
- [ 'foo=bar' , 'a=b' ] ,
154
- [ 'foo = bar' , 'a = b' ] ,
155
- [ 'foo:bar' , 'a:b' ] ,
156
- [ 'foo: bar' , 'a: b' ] ,
157
- [ 'foo bar' , 'a b' ] ,
158
- [ '# comment' , 'a=b' ]
159
- ] ) ( 'should reuse last separator from "%s"' , ( line , expected ) => {
160
- const config : properties . Properties = {
161
- lines : [ line ]
162
- }
163
- properties . set ( config , 'a' , 'b' )
164
- expect ( config . lines ) . toEqual ( [ line , expected ] )
165
- } )
134
+ describe ( 'set value' , ( ) => {
135
+ it . each ( [
136
+ [ 'foo1' , 'bar' , 'foo1=bar' ] ,
137
+ [ 'foo8:' , 'bar8' , 'foo8\\:=bar8' ] ,
138
+ [ 'foo9=' , 'bar9' , 'foo9\\==bar9' ] ,
139
+ [ 'foo10=' , 'bar10' , 'foo10\\==bar10' ] ,
140
+ [ 'foo11 ' , 'bar11' , 'foo11\\ =bar11' ] ,
141
+ [ ' foo12' , 'bar12 ' , '\\ foo12=bar12 ' ] ,
142
+ [ '#foo13' , 'bar13' , '\\#foo13=bar13' ] ,
143
+ [ '!foo14#' , 'bar14' , '\\!foo14\\#=bar14' ] ,
144
+ [ 'foo15' , '#bar15' , 'foo15=\\#bar15' ] ,
145
+ [ 'f o o18' , ' bar18' , 'f\\ o\\ \\ o18=\\ bar18' ] ,
146
+ [ 'foo19\n' , 'bar\t\f\r19\n' , 'foo19\\n=bar\\t\\f\\r19\\n' ] ,
147
+ [ 'foo20' , '' , 'foo20=' ] ,
148
+ [ 'foo22' , '\\' , 'foo22=\\\\' ]
149
+ ] ) ( 'should format key pair for "%s"' , ( key , value , expected ) => {
150
+ const config = properties . empty ( )
151
+ properties . set ( config , key , value )
152
+ expect ( config . lines ) . toEqual ( [ expected ] )
153
+ } )
166
154
167
- it ( 'should replace key pairs' , ( ) => {
168
- const keys = [
169
- 'foo0' ,
170
- 'foo1' ,
171
- 'foo2' ,
172
- 'foo3' ,
173
- 'foo4' ,
174
- 'foo5' ,
175
- 'foo6' ,
176
- 'foo8:' ,
177
- 'foo9=' ,
178
- 'foo10=' ,
179
- 'foo11 ' ,
180
- ' foo12' ,
181
- '#foo13' ,
182
- '!foo14#' ,
183
- 'foo15' ,
184
- 'foo16' ,
185
- 'foo17' ,
186
- 'f o o18' ,
187
- 'foo19\n' ,
188
- 'foo20' ,
189
- 'foo21' ,
190
- 'foo22' ,
191
- 'foo23'
192
- ]
193
- keys . forEach ( key => properties . set ( sample , key , 'x' ) )
194
-
195
- expect ( sample . lines ) . toEqual ( [
196
- 'foo0=x' ,
197
- 'foo1=x' ,
198
- 'foo2:x' ,
199
- 'foo3 x' ,
200
- 'foo4 x' ,
201
- 'foo5 = x' ,
202
- '# foo6 = bar6' ,
203
- ' ! foo7 = bar7' ,
204
- 'foo8\\::x' ,
205
- 'foo9\\==x' ,
206
- 'foo10\\=:x' ,
207
- 'foo11\\ x' ,
208
- '\\ foo12 = x' ,
209
- '\\#foo13 = x' ,
210
- '\\!foo14\\# = x' ,
211
- 'foo15 = x' ,
212
- 'foo16 = x' ,
213
- 'foo17 = x' ,
214
- 'f\\ o\\ \\ o18 =x' ,
215
- 'foo19\\n= x' ,
216
- 'foo20 = x' ,
217
- 'foo21 =x' ,
218
- 'foo22 =x' ,
219
- 'foo23 x' ,
220
- 'foo6 x'
221
- ] )
222
- } )
155
+ it . each ( [
156
+ [ 'foo=bar' , 'a=b' ] ,
157
+ [ 'foo = bar' , 'a = b' ] ,
158
+ [ 'foo:bar' , 'a:b' ] ,
159
+ [ 'foo: bar' , 'a: b' ] ,
160
+ [ 'foo bar' , 'a b' ] ,
161
+ [ '# comment' , 'a=b' ]
162
+ ] ) ( 'should reuse last separator from "%s"' , ( line , expected ) => {
163
+ const config : properties . Properties = {
164
+ lines : [ line ]
165
+ }
166
+ properties . set ( config , 'a' , 'b' )
167
+ expect ( config . lines ) . toEqual ( [ line , expected ] )
168
+ } )
223
169
224
- it ( 'should remove duplicate keys on set' , ( ) => {
225
- const config : properties . Properties = {
226
- lines : [
227
- 'key1=foo1' ,
228
- 'key2=foo2' ,
229
- 'key1=foo3'
170
+ it ( 'should replace key pairs' , ( ) => {
171
+ const keys = [
172
+ 'foo0' ,
173
+ 'foo1' ,
174
+ 'foo2' ,
175
+ 'foo3' ,
176
+ 'foo4' ,
177
+ 'foo5' ,
178
+ 'foo6' ,
179
+ 'foo8:' ,
180
+ 'foo9=' ,
181
+ 'foo10=' ,
182
+ 'foo11 ' ,
183
+ ' foo12' ,
184
+ '#foo13' ,
185
+ '!foo14#' ,
186
+ 'foo15' ,
187
+ 'foo16' ,
188
+ 'foo17' ,
189
+ 'f o o18' ,
190
+ 'foo19\n' ,
191
+ 'foo20' ,
192
+ 'foo21' ,
193
+ 'foo22' ,
194
+ 'foo23'
230
195
]
231
- }
196
+ keys . forEach ( key => properties . set ( sample , key , 'x' ) )
197
+
198
+ expect ( sample . lines ) . toEqual ( [
199
+ 'foo0=x' ,
200
+ 'foo1=x' ,
201
+ 'foo2:x' ,
202
+ 'foo3 x' ,
203
+ 'foo4 x' ,
204
+ 'foo5 = x' ,
205
+ '# foo6 = bar6' ,
206
+ ' ! foo7 = bar7' ,
207
+ 'foo8\\::x' ,
208
+ 'foo9\\==x' ,
209
+ 'foo10\\=:x' ,
210
+ 'foo11\\ x' ,
211
+ '\\ foo12 = x' ,
212
+ '\\#foo13 = x' ,
213
+ '\\!foo14\\# = x' ,
214
+ 'foo15 = x' ,
215
+ 'foo16 = x' ,
216
+ 'foo17 = x' ,
217
+ 'f\\ o\\ \\ o18 =x' ,
218
+ 'foo19\\n= x' ,
219
+ 'foo20 = x' ,
220
+ 'foo21 =x' ,
221
+ 'foo22 =x' ,
222
+ 'foo23 x' ,
223
+ 'foo6 x'
224
+ ] )
225
+ } )
232
226
233
- properties . set ( config , 'key1' , 'test' )
234
- expect ( config . lines ) . toEqual ( [
235
- 'key1=test' ,
236
- 'key2=foo2'
237
- ] )
238
- } )
227
+ it ( 'should use custom separator' , ( ) => {
228
+ const config : properties . Properties = {
229
+ lines : [
230
+ 'key1=foo1' ,
231
+ 'key2=foo2'
232
+ ]
233
+ }
239
234
240
- it ( 'should remove existing key with set undefined' , ( ) => {
241
- const config : properties . Properties = {
242
- lines : [ 'foo=bar' ]
243
- }
244
- properties . set ( config , 'foo' , undefined )
245
- expect ( config . lines ) . toEqual ( [ ] )
246
- } )
235
+ properties . set ( config , 'key1' , 'test' , { separator : ': ' } )
236
+ expect ( config . lines ) . toEqual ( [
237
+ 'key1: test' ,
238
+ 'key2=foo2'
239
+ ] )
240
+ } )
247
241
248
- it ( 'should remove existing key with remove' , ( ) => {
249
- const config : properties . Properties = {
250
- lines : [ 'foo=bar' ]
251
- }
252
- properties . remove ( config , 'foo' )
253
- expect ( config . lines ) . toEqual ( [ ] )
242
+ it ( 'should remove duplicate keys on set' , ( ) => {
243
+ const config : properties . Properties = {
244
+ lines : [
245
+ 'key1=foo1' ,
246
+ 'key2=foo2' ,
247
+ 'key1=foo3'
248
+ ]
249
+ }
250
+
251
+ properties . set ( config , 'key1' , 'test' )
252
+ expect ( config . lines ) . toEqual ( [
253
+ 'key1=test' ,
254
+ 'key2=foo2'
255
+ ] )
256
+ } )
254
257
} )
255
258
256
- it ( 'should remove all duplicate keys with remove' , ( ) => {
257
- const config : properties . Properties = {
258
- lines : [
259
- 'key1=foo1' ,
260
- 'key2=foo2' ,
261
- 'key1=foo3'
262
- ]
263
- }
259
+ describe ( 'remove value' , ( ) => {
260
+ it ( 'should remove existing key with set undefined' , ( ) => {
261
+ const config : properties . Properties = {
262
+ lines : [ 'foo=bar' ]
263
+ }
264
+ properties . set ( config , 'foo' , undefined )
265
+ expect ( config . lines ) . toEqual ( [ ] )
266
+ } )
267
+
268
+ it ( 'should remove existing key with remove' , ( ) => {
269
+ const config : properties . Properties = {
270
+ lines : [ 'foo=bar' ]
271
+ }
272
+ properties . remove ( config , 'foo' )
273
+ expect ( config . lines ) . toEqual ( [ ] )
274
+ } )
264
275
265
- properties . remove ( config , 'key1' )
266
- expect ( config . lines ) . toEqual ( [ 'key2=foo2' ] )
276
+ it ( 'should remove all duplicate keys with remove' , ( ) => {
277
+ const config : properties . Properties = {
278
+ lines : [
279
+ 'key1=foo1' ,
280
+ 'key2=foo2' ,
281
+ 'key1=foo3'
282
+ ]
283
+ }
284
+
285
+ properties . remove ( config , 'key1' )
286
+ expect ( config . lines ) . toEqual ( [ 'key2=foo2' ] )
287
+ } )
267
288
} )
268
289
269
290
describe ( 'list' , ( ) => {
0 commit comments