@@ -278,6 +278,8 @@ describe.each([
278278 answer : { type : [ 'string' , 'number' ] , default : 'unknown' } ,
279279 payload : { type : [ 'object' , 'array' ] , required : true } ,
280280 score : { type : [ 'number' , 'boolean' ] , allowNull : true } ,
281+ single : { type : [ 'string' ] } ,
282+ repeated : { type : [ 'string' , 'string' ] } ,
281283 status : { enum : [ 'draft' , 'live' ] } ,
282284 } ,
283285 } as const ;
@@ -287,33 +289,45 @@ describe.each([
287289 store . setRow ( 'pets' , 'pet1' , {
288290 payload : { likes : [ 'walks' ] } ,
289291 score : null ,
292+ single : 'initial' ,
293+ repeated : 'initial' ,
290294 status : 'draft' ,
291295 } ) ;
292296 expect ( store . getRow ( 'pets' , 'pet1' ) ) . toEqual ( {
293297 answer : 'unknown' ,
294298 payload : { likes : [ 'walks' ] } ,
295299 score : null ,
300+ single : 'initial' ,
301+ repeated : 'initial' ,
296302 status : 'draft' ,
297303 } ) ;
298304
299305 store . setCell ( 'pets' , 'pet1' , 'answer' , 42 ) ;
300306 store . setCell ( 'pets' , 'pet1' , 'payload' , [ 'walks' ] ) ;
301307 store . setCell ( 'pets' , 'pet1' , 'score' , true ) ;
308+ store . setCell ( 'pets' , 'pet1' , 'single' , 'one' ) ;
309+ store . setCell ( 'pets' , 'pet1' , 'repeated' , 'two' ) ;
302310 expect ( store . getRow ( 'pets' , 'pet1' ) ) . toEqual ( {
303311 answer : 42 ,
304312 payload : [ 'walks' ] ,
305313 score : true ,
314+ single : 'one' ,
315+ repeated : 'two' ,
306316 status : 'draft' ,
307317 } ) ;
308318
309319 store . setCell ( 'pets' , 'pet1' , 'answer' , false ) ;
310320 store . setCell ( 'pets' , 'pet1' , 'payload' , null ) ;
311321 store . setCell ( 'pets' , 'pet1' , 'score' , 'high' ) ;
322+ store . setCell ( 'pets' , 'pet1' , 'single' , 1 ) ;
323+ store . setCell ( 'pets' , 'pet1' , 'repeated' , false ) ;
312324 store . setCell ( 'pets' , 'pet1' , 'status' , 'other' ) ;
313325 expect ( store . getRow ( 'pets' , 'pet1' ) ) . toEqual ( {
314326 answer : 'unknown' ,
315327 payload : [ 'walks' ] ,
316328 score : true ,
329+ single : 'one' ,
330+ repeated : 'two' ,
317331 status : 'draft' ,
318332 } ) ;
319333 expectChanges (
@@ -322,6 +336,8 @@ describe.each([
322336 { pets : { pet1 : { answer : [ false ] } } } ,
323337 { pets : { pet1 : { payload : [ null ] } } } ,
324338 { pets : { pet1 : { score : [ 'high' ] } } } ,
339+ { pets : { pet1 : { single : [ 1 ] } } } ,
340+ { pets : { pet1 : { repeated : [ false ] } } } ,
325341 { pets : { pet1 : { status : [ 'other' ] } } } ,
326342 ) ;
327343
@@ -342,7 +358,6 @@ describe.each([
342358
343359 for ( const answer of [
344360 { type : [ ] } ,
345- { type : [ 'string' ] } ,
346361 { type : [ 'string' , 'null' ] } ,
347362 { type : [ 'string' , 'date' ] } ,
348363 { type : [ 'string' , 'boolean' ] , enum : [ 'draft' ] } ,
@@ -579,6 +594,8 @@ describe.each([
579594 answer : { type : [ 'string' , 'number' ] , default : 'unknown' } ,
580595 payload : { type : [ 'object' , 'array' ] , required : true } ,
581596 score : { type : [ 'number' , 'boolean' ] , allowNull : true } ,
597+ single : { type : [ 'string' ] } ,
598+ repeated : { type : [ 'string' , 'string' ] } ,
582599 status : { enum : [ 'draft' , 'live' ] } ,
583600 } as const ;
584601 store . setValuesSchema ( valuesSchema ) ;
@@ -587,40 +604,54 @@ describe.each([
587604 'invalids' ,
588605 { payload : [ undefined ] } ,
589606 { score : [ undefined ] } ,
607+ { single : [ undefined ] } ,
608+ { repeated : [ undefined ] } ,
590609 { status : [ undefined ] } ,
591610 ) ;
592611 expect ( JSON . parse ( store . getValuesSchemaJson ( ) ) ) . toEqual ( valuesSchema ) ;
593612
594613 store . setValues ( {
595614 payload : { likes : [ 'walks' ] } ,
596615 score : null ,
616+ single : 'initial' ,
617+ repeated : 'initial' ,
597618 status : 'draft' ,
598619 } ) ;
599620 expect ( store . getValues ( ) ) . toEqual ( {
600621 answer : 'unknown' ,
601622 payload : { likes : [ 'walks' ] } ,
602623 score : null ,
624+ single : 'initial' ,
625+ repeated : 'initial' ,
603626 status : 'draft' ,
604627 } ) ;
605628
606629 store . setValue ( 'answer' , 42 ) ;
607630 store . setValue ( 'payload' , [ 'walks' ] ) ;
608631 store . setValue ( 'score' , true ) ;
632+ store . setValue ( 'single' , 'one' ) ;
633+ store . setValue ( 'repeated' , 'two' ) ;
609634 expect ( store . getValues ( ) ) . toEqual ( {
610635 answer : 42 ,
611636 payload : [ 'walks' ] ,
612637 score : true ,
638+ single : 'one' ,
639+ repeated : 'two' ,
613640 status : 'draft' ,
614641 } ) ;
615642
616643 store . setValue ( 'answer' , false ) ;
617644 store . setValue ( 'payload' , null ) ;
618645 store . setValue ( 'score' , 'high' ) ;
646+ store . setValue ( 'single' , 1 ) ;
647+ store . setValue ( 'repeated' , false ) ;
619648 store . setValue ( 'status' , 'other' ) ;
620649 expect ( store . getValues ( ) ) . toEqual ( {
621650 answer : 'unknown' ,
622651 payload : [ 'walks' ] ,
623652 score : true ,
653+ single : 'one' ,
654+ repeated : 'two' ,
624655 status : 'draft' ,
625656 } ) ;
626657 expectChanges (
@@ -629,6 +660,8 @@ describe.each([
629660 { answer : [ false ] } ,
630661 { payload : [ null ] } ,
631662 { score : [ 'high' ] } ,
663+ { single : [ 1 ] } ,
664+ { repeated : [ false ] } ,
632665 { status : [ 'other' ] } ,
633666 ) ;
634667
@@ -647,7 +680,6 @@ describe.each([
647680
648681 for ( const answer of [
649682 { type : [ ] } ,
650- { type : [ 'string' ] } ,
651683 { type : [ 'string' , 'null' ] } ,
652684 { type : [ 'string' , 'date' ] } ,
653685 { type : [ 'string' , 'boolean' ] , enum : [ 'draft' ] } ,
0 commit comments