@wordpress/data 6.4.0-next.e230fbab09.0 → 6.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,8 +9,8 @@ import deepFreeze from 'deep-freeze';
9
9
  import plugin, {
10
10
  createPersistenceInterface,
11
11
  withLazySameState,
12
- migrateFeaturePreferencesToInterfaceStore,
13
12
  migrateFeaturePreferencesToPreferencesStore,
13
+ migrateThirdPartyFeaturePreferencesToPreferencesStore,
14
14
  migrateIndividualPreferenceToPreferencesStore,
15
15
  } from '../';
16
16
  import objectStorage from '../storage/object';
@@ -384,13 +384,13 @@ describe( 'persistence', () => {
384
384
  } );
385
385
  } );
386
386
 
387
- describe( 'migrateFeaturePreferencesToInterfaceStore', () => {
388
- it( 'migrates preferences from the source to the interface store', () => {
387
+ describe( 'migrateFeaturePreferencesToPreferencesStore', () => {
388
+ it( 'migrates multiple preferences from persisted source stores to preferences', () => {
389
389
  const persistenceInterface = createPersistenceInterface( {
390
390
  storageKey: 'test-username',
391
391
  } );
392
392
 
393
- const initialState = {
393
+ const sourceStateA = {
394
394
  preferences: {
395
395
  features: {
396
396
  featureA: true,
@@ -400,26 +400,50 @@ describe( 'migrateFeaturePreferencesToInterfaceStore', () => {
400
400
  },
401
401
  };
402
402
 
403
- persistenceInterface.set( 'core/test', initialState );
403
+ const sourceStateB = {
404
+ preferences: {
405
+ features: {
406
+ featureD: true,
407
+ featureE: false,
408
+ featureF: true,
409
+ },
410
+ },
411
+ };
412
+
413
+ persistenceInterface.set( 'core/test-a', sourceStateA );
414
+ persistenceInterface.set( 'core/test-b', sourceStateB );
404
415
 
405
- migrateFeaturePreferencesToInterfaceStore(
416
+ migrateFeaturePreferencesToPreferencesStore(
406
417
  persistenceInterface,
407
- 'core/test'
418
+ 'core/test-a'
419
+ );
420
+
421
+ migrateFeaturePreferencesToPreferencesStore(
422
+ persistenceInterface,
423
+ 'core/test-b'
408
424
  );
409
425
 
410
426
  expect( persistenceInterface.get() ).toEqual( {
411
- 'core/interface': {
427
+ 'core/preferences': {
412
428
  preferences: {
413
- features: {
414
- 'core/test': {
415
- featureA: true,
416
- featureB: false,
417
- featureC: true,
418
- },
429
+ 'core/test-a': {
430
+ featureA: true,
431
+ featureB: false,
432
+ featureC: true,
433
+ },
434
+ 'core/test-b': {
435
+ featureD: true,
436
+ featureE: false,
437
+ featureF: true,
419
438
  },
420
439
  },
421
440
  },
422
- 'core/test': {
441
+ 'core/test-a': {
442
+ preferences: {
443
+ features: undefined,
444
+ },
445
+ },
446
+ 'core/test-b': {
423
447
  preferences: {
424
448
  features: undefined,
425
449
  },
@@ -427,12 +451,12 @@ describe( 'migrateFeaturePreferencesToInterfaceStore', () => {
427
451
  } );
428
452
  } );
429
453
 
430
- it( 'handles multiple preferences from different stores to be migrated', () => {
454
+ it( 'migrates multiple preferences from the persisted interface store to preferences, with interface state taking precedence over source stores', () => {
431
455
  const persistenceInterface = createPersistenceInterface( {
432
456
  storageKey: 'test-username',
433
457
  } );
434
458
 
435
- const initialStateA = {
459
+ const sourceStateA = {
436
460
  preferences: {
437
461
  features: {
438
462
  featureA: true,
@@ -442,7 +466,7 @@ describe( 'migrateFeaturePreferencesToInterfaceStore', () => {
442
466
  },
443
467
  };
444
468
 
445
- const initialStateB = {
469
+ const sourceStateB = {
446
470
  preferences: {
447
471
  features: {
448
472
  featureD: true,
@@ -452,33 +476,63 @@ describe( 'migrateFeaturePreferencesToInterfaceStore', () => {
452
476
  },
453
477
  };
454
478
 
455
- persistenceInterface.set( 'core/test-a', initialStateA );
456
- persistenceInterface.set( 'core/test-b', initialStateB );
479
+ const interfaceState = {
480
+ otherData: {
481
+ test: 1,
482
+ },
483
+ preferences: {
484
+ features: {
485
+ 'core/test-a': {
486
+ featureG: true,
487
+ featureH: false,
488
+ featureI: true,
489
+ },
490
+ 'core/test-b': {
491
+ featureJ: true,
492
+ featureK: false,
493
+ featureL: true,
494
+ },
495
+ },
496
+ },
497
+ };
457
498
 
458
- migrateFeaturePreferencesToInterfaceStore(
499
+ persistenceInterface.set( 'core/test-a', sourceStateA );
500
+ persistenceInterface.set( 'core/test-b', sourceStateB );
501
+ persistenceInterface.set( 'core/interface', interfaceState );
502
+
503
+ migrateFeaturePreferencesToPreferencesStore(
459
504
  persistenceInterface,
460
505
  'core/test-a'
461
506
  );
462
507
 
463
- migrateFeaturePreferencesToInterfaceStore(
508
+ migrateFeaturePreferencesToPreferencesStore(
464
509
  persistenceInterface,
465
510
  'core/test-b'
466
511
  );
467
512
 
468
513
  expect( persistenceInterface.get() ).toEqual( {
514
+ 'core/preferences': {
515
+ preferences: {
516
+ 'core/test-a': {
517
+ featureG: true,
518
+ featureH: false,
519
+ featureI: true,
520
+ },
521
+ 'core/test-b': {
522
+ featureJ: true,
523
+ featureK: false,
524
+ featureL: true,
525
+ },
526
+ },
527
+ },
469
528
  'core/interface': {
529
+ otherData: {
530
+ test: 1,
531
+ },
470
532
  preferences: {
471
533
  features: {
472
- 'core/test-a': {
473
- featureA: true,
474
- featureB: false,
475
- featureC: true,
476
- },
477
- 'core/test-b': {
478
- featureD: true,
479
- featureE: false,
480
- featureF: true,
481
- },
534
+ 'core/test-a': undefined,
535
+ 'core/test-b': undefined,
482
536
  },
483
537
  },
484
538
  },
@@ -495,23 +549,67 @@ describe( 'migrateFeaturePreferencesToInterfaceStore', () => {
495
549
  } );
496
550
  } );
497
551
 
498
- describe( 'migrateFeaturePreferencesToPreferencesStore', () => {
499
- it( 'migrates multiple preferences from persisted source stores to preferences', () => {
500
- const persistenceInterface = createPersistenceInterface( {
501
- storageKey: 'test-username',
502
- } );
552
+ it( 'only migrates persisted preference data for the source name from source stores', () => {
553
+ const persistenceInterface = createPersistenceInterface( {
554
+ storageKey: 'test-username',
555
+ } );
503
556
 
504
- const sourceStateA = {
557
+ const sourceStateA = {
558
+ otherData: {
559
+ test: 1,
560
+ },
561
+ preferences: {
562
+ features: {
563
+ featureA: true,
564
+ featureB: false,
565
+ featureC: true,
566
+ },
567
+ },
568
+ };
569
+
570
+ const sourceStateB = {
571
+ otherData: {
572
+ test: 2,
573
+ },
574
+ preferences: {
575
+ features: {
576
+ featureD: true,
577
+ featureE: false,
578
+ featureF: true,
579
+ },
580
+ },
581
+ };
582
+
583
+ persistenceInterface.set( 'core/test-a', sourceStateA );
584
+ persistenceInterface.set( 'core/test-b', sourceStateB );
585
+
586
+ migrateFeaturePreferencesToPreferencesStore(
587
+ persistenceInterface,
588
+ 'core/test-a'
589
+ );
590
+
591
+ expect( persistenceInterface.get() ).toEqual( {
592
+ 'core/preferences': {
505
593
  preferences: {
506
- features: {
594
+ 'core/test-a': {
507
595
  featureA: true,
508
596
  featureB: false,
509
597
  featureC: true,
510
598
  },
511
599
  },
512
- };
513
-
514
- const sourceStateB = {
600
+ },
601
+ 'core/test-a': {
602
+ otherData: {
603
+ test: 1,
604
+ },
605
+ preferences: {
606
+ features: undefined,
607
+ },
608
+ },
609
+ 'core/test-b': {
610
+ otherData: {
611
+ test: 2,
612
+ },
515
613
  preferences: {
516
614
  features: {
517
615
  featureD: true,
@@ -519,113 +617,53 @@ describe( 'migrateFeaturePreferencesToInterfaceStore', () => {
519
617
  featureF: true,
520
618
  },
521
619
  },
522
- };
523
-
524
- persistenceInterface.set( 'core/test-a', sourceStateA );
525
- persistenceInterface.set( 'core/test-b', sourceStateB );
526
-
527
- migrateFeaturePreferencesToPreferencesStore(
528
- persistenceInterface,
529
- 'core/test-a'
530
- );
620
+ },
621
+ } );
622
+ } );
531
623
 
532
- migrateFeaturePreferencesToPreferencesStore(
533
- persistenceInterface,
534
- 'core/test-b'
535
- );
624
+ it( 'only migrates persisted data for the source name from interface', () => {
625
+ const persistenceInterface = createPersistenceInterface( {
626
+ storageKey: 'test-username',
627
+ } );
536
628
 
537
- expect( persistenceInterface.get() ).toEqual( {
538
- 'core/preferences': {
539
- preferences: {
540
- 'core/test-a': {
541
- featureA: true,
542
- featureB: false,
543
- featureC: true,
544
- },
545
- 'core/test-b': {
546
- featureD: true,
547
- featureE: false,
548
- featureF: true,
549
- },
550
- },
551
- },
552
- 'core/test-a': {
553
- preferences: {
554
- features: undefined,
629
+ const interfaceState = {
630
+ preferences: {
631
+ features: {
632
+ 'core/test-a': {
633
+ featureG: true,
634
+ featureH: false,
635
+ featureI: true,
555
636
  },
556
- },
557
- 'core/test-b': {
558
- preferences: {
559
- features: undefined,
637
+ 'core/test-b': {
638
+ featureJ: true,
639
+ featureK: false,
640
+ featureL: true,
560
641
  },
561
642
  },
562
- } );
563
- } );
643
+ },
644
+ };
564
645
 
565
- it( 'migrates multiple preferences from the persisted interface store to preferences, with interface state taking precedence over source stores', () => {
566
- const persistenceInterface = createPersistenceInterface( {
567
- storageKey: 'test-username',
568
- } );
646
+ persistenceInterface.set( 'core/interface', interfaceState );
569
647
 
570
- const sourceStateA = {
571
- preferences: {
572
- features: {
573
- featureA: true,
574
- featureB: false,
575
- featureC: true,
576
- },
577
- },
578
- };
648
+ migrateFeaturePreferencesToPreferencesStore(
649
+ persistenceInterface,
650
+ 'core/test-a'
651
+ );
579
652
 
580
- const sourceStateB = {
653
+ expect( persistenceInterface.get() ).toEqual( {
654
+ 'core/preferences': {
581
655
  preferences: {
582
- features: {
583
- featureD: true,
584
- featureE: false,
585
- featureF: true,
656
+ 'core/test-a': {
657
+ featureG: true,
658
+ featureH: false,
659
+ featureI: true,
586
660
  },
587
661
  },
588
- };
589
-
590
- const interfaceState = {
662
+ },
663
+ 'core/interface': {
591
664
  preferences: {
592
665
  features: {
593
- 'core/test-a': {
594
- featureG: true,
595
- featureH: false,
596
- featureI: true,
597
- },
598
- 'core/test-b': {
599
- featureJ: true,
600
- featureK: false,
601
- featureL: true,
602
- },
603
- },
604
- },
605
- };
606
-
607
- persistenceInterface.set( 'core/test-a', sourceStateA );
608
- persistenceInterface.set( 'core/test-b', sourceStateB );
609
- persistenceInterface.set( 'core/interface', interfaceState );
610
-
611
- migrateFeaturePreferencesToPreferencesStore(
612
- persistenceInterface,
613
- 'core/test-a'
614
- );
615
-
616
- migrateFeaturePreferencesToPreferencesStore(
617
- persistenceInterface,
618
- 'core/test-b'
619
- );
620
-
621
- expect( persistenceInterface.get() ).toEqual( {
622
- 'core/preferences': {
623
- preferences: {
624
- 'core/test-a': {
625
- featureG: true,
626
- featureH: false,
627
- featureI: true,
628
- },
666
+ 'core/test-a': undefined,
629
667
  'core/test-b': {
630
668
  featureJ: true,
631
669
  featureK: false,
@@ -633,268 +671,255 @@ describe( 'migrateFeaturePreferencesToInterfaceStore', () => {
633
671
  },
634
672
  },
635
673
  },
636
- 'core/interface': {
637
- preferences: {
638
- features: {
639
- 'core/test-a': undefined,
640
- 'core/test-b': undefined,
641
- },
642
- },
643
- },
644
- 'core/test-a': {
645
- preferences: {
646
- features: undefined,
647
- },
648
- },
649
- 'core/test-b': {
650
- preferences: {
651
- features: undefined,
652
- },
653
- },
654
- } );
674
+ },
655
675
  } );
676
+ } );
677
+ } );
656
678
 
657
- it( 'only migrates persisted data for the source name from source stores', () => {
658
- const persistenceInterface = createPersistenceInterface( {
659
- storageKey: 'test-username',
660
- } );
679
+ describe( 'migrateIndividualPreferenceToPreferencesStore', () => {
680
+ it( 'migrates an individual preference from the source to the preferences store', () => {
681
+ const persistenceInterface = createPersistenceInterface( {
682
+ storageKey: 'test-username',
683
+ } );
684
+
685
+ const initialState = {
686
+ preferences: {
687
+ myPreference: '123',
688
+ },
689
+ };
690
+
691
+ persistenceInterface.set( 'core/test', initialState );
692
+
693
+ migrateIndividualPreferenceToPreferencesStore(
694
+ persistenceInterface,
695
+ 'core/test',
696
+ 'myPreference'
697
+ );
661
698
 
662
- const sourceStateA = {
699
+ expect( persistenceInterface.get() ).toEqual( {
700
+ 'core/preferences': {
663
701
  preferences: {
664
- features: {
665
- featureA: true,
666
- featureB: false,
667
- featureC: true,
702
+ 'core/test': {
703
+ myPreference: '123',
668
704
  },
669
705
  },
670
- };
671
-
672
- const sourceStateB = {
706
+ },
707
+ 'core/test': {
673
708
  preferences: {
674
- features: {
675
- featureD: true,
676
- featureE: false,
677
- featureF: true,
678
- },
709
+ myPreference: undefined,
679
710
  },
680
- };
711
+ },
712
+ } );
713
+ } );
681
714
 
682
- persistenceInterface.set( 'core/test-a', sourceStateA );
683
- persistenceInterface.set( 'core/test-b', sourceStateB );
715
+ it( 'does not overwrite other preferences in the preferences store', () => {
716
+ const persistenceInterface = createPersistenceInterface( {
717
+ storageKey: 'test-username',
718
+ } );
684
719
 
685
- migrateFeaturePreferencesToPreferencesStore(
686
- persistenceInterface,
687
- 'core/test-a'
688
- );
720
+ const initialState = {
721
+ otherData: {
722
+ test: 1,
723
+ },
724
+ preferences: {
725
+ myPreference: '123',
726
+ },
727
+ };
689
728
 
690
- expect( persistenceInterface.get() ).toEqual( {
691
- 'core/preferences': {
692
- preferences: {
693
- 'core/test-a': {
694
- featureA: true,
695
- featureB: false,
696
- featureC: true,
697
- },
698
- },
699
- },
700
- 'core/test-a': {
701
- preferences: {
702
- features: undefined,
703
- },
729
+ persistenceInterface.set( 'core/test', initialState );
730
+ persistenceInterface.set( 'core/preferences', {
731
+ preferences: {
732
+ 'core/other-store': {
733
+ preferenceA: 1,
734
+ preferenceB: 2,
704
735
  },
705
- 'core/test-b': {
706
- preferences: {
707
- features: {
708
- featureD: true,
709
- featureE: false,
710
- featureF: true,
711
- },
712
- },
736
+ 'core/test': {
737
+ unrelatedPreference: 'unrelated-value',
713
738
  },
714
- } );
739
+ },
715
740
  } );
716
741
 
717
- it( 'only migrates persisted data for the source name from interface', () => {
718
- const persistenceInterface = createPersistenceInterface( {
719
- storageKey: 'test-username',
720
- } );
742
+ migrateIndividualPreferenceToPreferencesStore(
743
+ persistenceInterface,
744
+ 'core/test',
745
+ 'myPreference'
746
+ );
721
747
 
722
- const interfaceState = {
748
+ expect( persistenceInterface.get() ).toEqual( {
749
+ 'core/preferences': {
723
750
  preferences: {
724
- features: {
725
- 'core/test-a': {
726
- featureG: true,
727
- featureH: false,
728
- featureI: true,
729
- },
730
- 'core/test-b': {
731
- featureJ: true,
732
- featureK: false,
733
- featureL: true,
734
- },
751
+ 'core/other-store': {
752
+ preferenceA: 1,
753
+ preferenceB: 2,
735
754
  },
736
- },
737
- };
738
-
739
- persistenceInterface.set( 'core/interface', interfaceState );
740
-
741
- migrateFeaturePreferencesToPreferencesStore(
742
- persistenceInterface,
743
- 'core/test-a'
744
- );
745
-
746
- expect( persistenceInterface.get() ).toEqual( {
747
- 'core/preferences': {
748
- preferences: {
749
- 'core/test-a': {
750
- featureG: true,
751
- featureH: false,
752
- featureI: true,
753
- },
755
+ 'core/test': {
756
+ unrelatedPreference: 'unrelated-value',
757
+ myPreference: '123',
754
758
  },
755
759
  },
756
- 'core/interface': {
757
- preferences: {
758
- features: {
759
- 'core/test-a': undefined,
760
- 'core/test-b': {
761
- featureJ: true,
762
- featureK: false,
763
- featureL: true,
764
- },
765
- },
766
- },
760
+ },
761
+ 'core/test': {
762
+ otherData: {
763
+ test: 1,
767
764
  },
768
- } );
769
- } );
770
- } );
771
-
772
- describe( 'migrateIndividualPreferenceToPreferencesStore', () => {
773
- it( 'migrates an individual preference from the source to the preferences store', () => {
774
- const persistenceInterface = createPersistenceInterface( {
775
- storageKey: 'test-username',
776
- } );
777
-
778
- const initialState = {
779
765
  preferences: {
780
- myPreference: '123',
766
+ myPreference: undefined,
781
767
  },
782
- };
768
+ },
769
+ } );
770
+ } );
783
771
 
784
- persistenceInterface.set( 'core/test', initialState );
772
+ it( 'does not migrate data if there is already a matching preference key at the target', () => {
773
+ const persistenceInterface = createPersistenceInterface( {
774
+ storageKey: 'test-username',
775
+ } );
785
776
 
786
- migrateIndividualPreferenceToPreferencesStore(
787
- persistenceInterface,
788
- 'core/test',
789
- 'myPreference'
790
- );
777
+ persistenceInterface.set( 'core/test', {
778
+ preferences: {
779
+ myPreference: '123',
780
+ },
781
+ } );
791
782
 
792
- expect( persistenceInterface.get() ).toEqual( {
793
- 'core/preferences': {
794
- preferences: {
795
- 'core/test': {
796
- myPreference: '123',
797
- },
798
- },
799
- },
783
+ persistenceInterface.set( 'core/preferences', {
784
+ preferences: {
800
785
  'core/test': {
801
- preferences: {
802
- myPreference: undefined,
803
- },
786
+ myPreference: 'already-set',
804
787
  },
805
- } );
788
+ },
806
789
  } );
807
790
 
808
- it( 'does not overwrite other preferences in the preferences store', () => {
809
- const persistenceInterface = createPersistenceInterface( {
810
- storageKey: 'test-username',
811
- } );
791
+ migrateIndividualPreferenceToPreferencesStore(
792
+ persistenceInterface,
793
+ 'core/test',
794
+ 'myPreference'
795
+ );
812
796
 
813
- const initialState = {
797
+ expect( persistenceInterface.get() ).toEqual( {
798
+ 'core/preferences': {
799
+ preferences: {
800
+ 'core/test': {
801
+ myPreference: 'already-set',
802
+ },
803
+ },
804
+ },
805
+ 'core/test': {
814
806
  preferences: {
815
807
  myPreference: '123',
816
808
  },
817
- };
809
+ },
810
+ } );
811
+ } );
812
+ } );
818
813
 
819
- persistenceInterface.set( 'core/test', initialState );
820
- persistenceInterface.set( 'core/preferences', {
821
- preferences: {
822
- 'core/other-store': {
823
- preferenceA: 1,
824
- preferenceB: 2,
814
+ describe( 'migrateThirdPartyFeaturePreferencesToPreferencesStore', () => {
815
+ it( 'migrates multiple scopes from the interface package to the preferences package', () => {
816
+ const persistenceInterface = createPersistenceInterface( {
817
+ storageKey: 'test-username',
818
+ } );
819
+
820
+ const interfaceState = {
821
+ otherData: {
822
+ test: 1,
823
+ },
824
+ preferences: {
825
+ features: {
826
+ 'plugin-a': {
827
+ featureA: true,
828
+ featureB: false,
829
+ featureC: true,
825
830
  },
826
- 'core/test': {
827
- unrelatedPreference: 'unrelated-value',
831
+ 'plugin-b': {
832
+ featureD: true,
833
+ featureE: false,
834
+ featureF: true,
828
835
  },
829
836
  },
830
- } );
837
+ },
838
+ };
839
+ persistenceInterface.set( 'core/interface', interfaceState );
831
840
 
832
- migrateIndividualPreferenceToPreferencesStore(
833
- persistenceInterface,
834
- 'core/test',
835
- 'myPreference'
836
- );
837
-
838
- expect( persistenceInterface.get() ).toEqual( {
839
- 'core/preferences': {
840
- preferences: {
841
- 'core/other-store': {
842
- preferenceA: 1,
843
- preferenceB: 2,
844
- },
845
- 'core/test': {
846
- unrelatedPreference: 'unrelated-value',
847
- myPreference: '123',
848
- },
841
+ migrateThirdPartyFeaturePreferencesToPreferencesStore(
842
+ persistenceInterface
843
+ );
844
+
845
+ expect( persistenceInterface.get() ).toEqual( {
846
+ 'core/preferences': {
847
+ preferences: {
848
+ 'plugin-a': {
849
+ featureA: true,
850
+ featureB: false,
851
+ featureC: true,
852
+ },
853
+ 'plugin-b': {
854
+ featureD: true,
855
+ featureE: false,
856
+ featureF: true,
849
857
  },
850
858
  },
851
- 'core/test': {
852
- preferences: {
853
- myPreference: undefined,
859
+ },
860
+ 'core/interface': {
861
+ otherData: {
862
+ test: 1,
863
+ },
864
+ preferences: {
865
+ features: {
866
+ 'plugin-a': undefined,
867
+ 'plugin-b': undefined,
854
868
  },
855
869
  },
856
- } );
870
+ },
857
871
  } );
872
+ } );
858
873
 
859
- it( 'does not migrate data if there is already a matching preference key at the target', () => {
860
- const persistenceInterface = createPersistenceInterface( {
861
- storageKey: 'test-username',
862
- } );
874
+ it( 'ignores any core scopes', () => {
875
+ const persistenceInterface = createPersistenceInterface( {
876
+ storageKey: 'test-username',
877
+ } );
863
878
 
864
- persistenceInterface.set( 'core/test', {
865
- preferences: {
866
- myPreference: '123',
879
+ const interfaceState = {
880
+ preferences: {
881
+ features: {
882
+ 'plugin-a': {
883
+ featureA: true,
884
+ featureB: false,
885
+ featureC: true,
886
+ },
887
+ 'core/edit-post': {
888
+ featureD: true,
889
+ featureE: false,
890
+ featureF: true,
891
+ },
867
892
  },
868
- } );
893
+ },
894
+ };
895
+ persistenceInterface.set( 'core/interface', interfaceState );
869
896
 
870
- persistenceInterface.set( 'core/preferences', {
897
+ migrateThirdPartyFeaturePreferencesToPreferencesStore(
898
+ persistenceInterface
899
+ );
900
+
901
+ expect( persistenceInterface.get() ).toEqual( {
902
+ 'core/preferences': {
871
903
  preferences: {
872
- 'core/test': {
873
- myPreference: 'already-set',
904
+ 'plugin-a': {
905
+ featureA: true,
906
+ featureB: false,
907
+ featureC: true,
874
908
  },
875
909
  },
876
- } );
877
-
878
- migrateIndividualPreferenceToPreferencesStore(
879
- persistenceInterface,
880
- 'core/test',
881
- 'myPreference'
882
- );
883
-
884
- expect( persistenceInterface.get() ).toEqual( {
885
- 'core/preferences': {
886
- preferences: {
887
- 'core/test': {
888
- myPreference: 'already-set',
910
+ },
911
+ 'core/interface': {
912
+ preferences: {
913
+ features: {
914
+ 'plugin-a': undefined,
915
+ 'core/edit-post': {
916
+ featureD: true,
917
+ featureE: false,
918
+ featureF: true,
889
919
  },
890
920
  },
891
921
  },
892
- 'core/test': {
893
- preferences: {
894
- myPreference: '123',
895
- },
896
- },
897
- } );
922
+ },
898
923
  } );
899
924
  } );
900
925
  } );