@papillonarts/library 0.35.0 → 0.36.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.
@@ -1,5 +1,13 @@
1
1
  // Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
2
2
 
3
+ exports[`<Array /> Render must match features() 1`] = `
4
+ <div>
5
+ <p>
6
+ mock-file
7
+ </p>
8
+ </div>
9
+ `;
10
+
3
11
  exports[`<Array /> Render must match getCurrentIndex() 1`] = `
4
12
  <div>
5
13
  <pre
@@ -19,7 +27,7 @@ exports[`<Array /> Render must match getCurrentIndex() 1`] = `
19
27
  <span
20
28
  style="color: rgb(101, 115, 126);"
21
29
  >
22
- // Papillon Arts Lodash
30
+ // Papillon Arts Library
23
31
  </span>
24
32
  <span>
25
33
 
@@ -476,3 +484,1677 @@ exports[`<Array /> Render must match getCurrentIndex() 1`] = `
476
484
  </pre>
477
485
  </div>
478
486
  `;
487
+
488
+ exports[`<Array /> Render must match getIndexItems() 1`] = `
489
+ <div>
490
+ <pre
491
+ style="display: block; overflow-x: auto; background: rgb(43, 48, 59); color: rgb(192, 197, 206); padding: 0.5em;"
492
+ >
493
+ <code
494
+ class="language-typescript"
495
+ style="white-space: pre;"
496
+ >
497
+ <span>
498
+
499
+
500
+ </span>
501
+ <span>
502
+
503
+ </span>
504
+ <span
505
+ style="color: rgb(180, 142, 173);"
506
+ >
507
+ export
508
+ </span>
509
+ <span>
510
+
511
+ </span>
512
+ <span
513
+ class="hljs-function"
514
+ style="color: rgb(180, 142, 173);"
515
+ >
516
+ function
517
+ </span>
518
+ <span
519
+ class="hljs-function"
520
+ >
521
+
522
+ </span>
523
+ <span
524
+ class="hljs-function"
525
+ style="color: rgb(143, 161, 179);"
526
+ >
527
+ getIndexItems
528
+ </span>
529
+ <span
530
+ class="hljs-function"
531
+ >
532
+ &lt;
533
+ </span>
534
+ <span
535
+ class="hljs-function"
536
+ style="color: rgb(143, 161, 179);"
537
+ >
538
+ T1
539
+ </span>
540
+ <span
541
+ class="hljs-function"
542
+ >
543
+ ,
544
+ </span>
545
+ <span
546
+ class="hljs-function"
547
+ style="color: rgb(143, 161, 179);"
548
+ >
549
+ T2
550
+ </span>
551
+ <span
552
+ class="hljs-function"
553
+ >
554
+
555
+ </span>
556
+ <span
557
+ class="hljs-function"
558
+ style="color: rgb(143, 161, 179);"
559
+ >
560
+ extends
561
+ </span>
562
+ <span
563
+ class="hljs-function"
564
+ >
565
+
566
+ </span>
567
+ <span
568
+ class="hljs-function"
569
+ style="color: rgb(143, 161, 179);"
570
+ >
571
+ IIndexed
572
+ </span>
573
+ <span
574
+ class="hljs-function"
575
+ >
576
+ &gt;(
577
+ </span>
578
+ <span
579
+ class="hljs-function"
580
+ style="color: rgb(208, 135, 112);"
581
+ >
582
+ items: T1[]
583
+ </span>
584
+ <span
585
+ class="hljs-function"
586
+ >
587
+ ):
588
+ </span>
589
+ <span
590
+ class="hljs-function"
591
+ style="color: rgb(143, 161, 179);"
592
+ >
593
+ T2
594
+ </span>
595
+ <span
596
+ class="hljs-function"
597
+ >
598
+ []
599
+ </span>
600
+ <span>
601
+ {
602
+
603
+ </span>
604
+ <span>
605
+
606
+ </span>
607
+ <span
608
+ style="color: rgb(180, 142, 173);"
609
+ >
610
+ let
611
+ </span>
612
+ <span>
613
+ result = []
614
+
615
+ </span>
616
+
617
+
618
+ <span>
619
+
620
+ </span>
621
+ <span
622
+ style="color: rgb(180, 142, 173);"
623
+ >
624
+ if
625
+ </span>
626
+ <span>
627
+ (items) {
628
+
629
+ </span>
630
+ result =
631
+
632
+ <span>
633
+ items?.map(
634
+ </span>
635
+ <span
636
+ class="hljs-function"
637
+ >
638
+ (
639
+ </span>
640
+ <span
641
+ class="hljs-function"
642
+ style="color: rgb(208, 135, 112);"
643
+ >
644
+ item: T1, index:
645
+ </span>
646
+ <span
647
+ class="hljs-function"
648
+ style="color: rgb(208, 135, 112);"
649
+ >
650
+ number
651
+ </span>
652
+ <span
653
+ class="hljs-function"
654
+ >
655
+ ) =&gt;
656
+ </span>
657
+ <span>
658
+ ({
659
+
660
+ </span>
661
+ ...item,
662
+
663
+ index,
664
+
665
+ })) ?? []
666
+
667
+ }
668
+
669
+
670
+
671
+ <span>
672
+
673
+ </span>
674
+ <span
675
+ style="color: rgb(180, 142, 173);"
676
+ >
677
+ return
678
+ </span>
679
+ <span>
680
+ result
681
+
682
+ </span>
683
+ }
684
+
685
+
686
+
687
+ <span>
688
+ describe(
689
+ </span>
690
+ <span
691
+ style="color: rgb(163, 190, 140);"
692
+ >
693
+ 'getIndexItems()'
694
+ </span>
695
+ <span>
696
+ ,
697
+ </span>
698
+ <span
699
+ class="hljs-function"
700
+ >
701
+ () =&gt;
702
+ </span>
703
+ <span>
704
+ {
705
+
706
+ </span>
707
+ <span>
708
+
709
+ </span>
710
+ <span
711
+ style="color: rgb(180, 142, 173);"
712
+ >
713
+ const
714
+ </span>
715
+ <span>
716
+ items = [
717
+
718
+ </span>
719
+ <span>
720
+ {
721
+ </span>
722
+ <span
723
+ class="hljs-attr"
724
+ >
725
+ fantasticKey1
726
+ </span>
727
+ <span>
728
+ :
729
+ </span>
730
+ <span
731
+ style="color: rgb(163, 190, 140);"
732
+ >
733
+ 'fantastic-value-1'
734
+ </span>
735
+ <span>
736
+ ,
737
+ </span>
738
+ <span
739
+ class="hljs-attr"
740
+ >
741
+ isCurrent
742
+ </span>
743
+ <span>
744
+ :
745
+ </span>
746
+ <span
747
+ style="color: rgb(208, 135, 112);"
748
+ >
749
+ true
750
+ </span>
751
+ <span>
752
+ },
753
+
754
+ </span>
755
+ <span>
756
+ {
757
+ </span>
758
+ <span
759
+ class="hljs-attr"
760
+ >
761
+ fantasticKey2
762
+ </span>
763
+ <span>
764
+ :
765
+ </span>
766
+ <span
767
+ style="color: rgb(163, 190, 140);"
768
+ >
769
+ 'fantastic-value-2'
770
+ </span>
771
+ <span>
772
+ ,
773
+ </span>
774
+ <span
775
+ class="hljs-attr"
776
+ >
777
+ isCurrent
778
+ </span>
779
+ <span>
780
+ :
781
+ </span>
782
+ <span
783
+ style="color: rgb(208, 135, 112);"
784
+ >
785
+ false
786
+ </span>
787
+ <span>
788
+ },
789
+
790
+ </span>
791
+ <span>
792
+ {
793
+ </span>
794
+ <span
795
+ class="hljs-attr"
796
+ >
797
+ fantasticKey3
798
+ </span>
799
+ <span>
800
+ :
801
+ </span>
802
+ <span
803
+ style="color: rgb(163, 190, 140);"
804
+ >
805
+ 'fantastic-value-3'
806
+ </span>
807
+ <span>
808
+ ,
809
+ </span>
810
+ <span
811
+ class="hljs-attr"
812
+ >
813
+ isCurrent
814
+ </span>
815
+ <span>
816
+ :
817
+ </span>
818
+ <span
819
+ style="color: rgb(208, 135, 112);"
820
+ >
821
+ false
822
+ </span>
823
+ <span>
824
+ },
825
+
826
+ </span>
827
+ ]
828
+
829
+
830
+
831
+ <span>
832
+ test(
833
+ </span>
834
+ <span
835
+ style="color: rgb(163, 190, 140);"
836
+ >
837
+ 'must return items with index when there are items'
838
+ </span>
839
+ <span>
840
+ ,
841
+ </span>
842
+ <span
843
+ class="hljs-function"
844
+ >
845
+ () =&gt;
846
+ </span>
847
+ <span>
848
+ {
849
+
850
+ </span>
851
+ <span>
852
+
853
+ </span>
854
+ <span
855
+ style="color: rgb(180, 142, 173);"
856
+ >
857
+ const
858
+ </span>
859
+ <span>
860
+ itemsWithoutIndex = [items[
861
+ </span>
862
+ <span
863
+ style="color: rgb(208, 135, 112);"
864
+ >
865
+ 0
866
+ </span>
867
+ <span>
868
+ ], items[
869
+ </span>
870
+ <span
871
+ style="color: rgb(208, 135, 112);"
872
+ >
873
+ 1
874
+ </span>
875
+ <span>
876
+ ], items[
877
+ </span>
878
+ <span
879
+ style="color: rgb(208, 135, 112);"
880
+ >
881
+ 2
882
+ </span>
883
+ <span>
884
+ ]]
885
+
886
+ </span>
887
+ <span>
888
+
889
+ </span>
890
+ <span
891
+ style="color: rgb(180, 142, 173);"
892
+ >
893
+ const
894
+ </span>
895
+ <span>
896
+ itemsWithIndex = [
897
+
898
+ </span>
899
+ <span>
900
+ { ...items[
901
+ </span>
902
+ <span
903
+ style="color: rgb(208, 135, 112);"
904
+ >
905
+ 0
906
+ </span>
907
+ <span>
908
+ ],
909
+ </span>
910
+ <span
911
+ class="hljs-attr"
912
+ >
913
+ index
914
+ </span>
915
+ <span>
916
+ :
917
+ </span>
918
+ <span
919
+ style="color: rgb(208, 135, 112);"
920
+ >
921
+ 0
922
+ </span>
923
+ <span>
924
+ },
925
+
926
+ </span>
927
+ <span>
928
+ { ...items[
929
+ </span>
930
+ <span
931
+ style="color: rgb(208, 135, 112);"
932
+ >
933
+ 1
934
+ </span>
935
+ <span>
936
+ ],
937
+ </span>
938
+ <span
939
+ class="hljs-attr"
940
+ >
941
+ index
942
+ </span>
943
+ <span>
944
+ :
945
+ </span>
946
+ <span
947
+ style="color: rgb(208, 135, 112);"
948
+ >
949
+ 1
950
+ </span>
951
+ <span>
952
+ },
953
+
954
+ </span>
955
+ <span>
956
+ { ...items[
957
+ </span>
958
+ <span
959
+ style="color: rgb(208, 135, 112);"
960
+ >
961
+ 2
962
+ </span>
963
+ <span>
964
+ ],
965
+ </span>
966
+ <span
967
+ class="hljs-attr"
968
+ >
969
+ index
970
+ </span>
971
+ <span>
972
+ :
973
+ </span>
974
+ <span
975
+ style="color: rgb(208, 135, 112);"
976
+ >
977
+ 2
978
+ </span>
979
+ <span>
980
+ },
981
+
982
+ </span>
983
+ ]
984
+
985
+
986
+
987
+ expect(getIndexItems(itemsWithoutIndex)).toEqual(itemsWithIndex)
988
+
989
+ })
990
+
991
+
992
+
993
+ <span>
994
+ test(
995
+ </span>
996
+ <span
997
+ style="color: rgb(163, 190, 140);"
998
+ >
999
+ 'must return empty array when items are empty'
1000
+ </span>
1001
+ <span>
1002
+ ,
1003
+ </span>
1004
+ <span
1005
+ class="hljs-function"
1006
+ >
1007
+ () =&gt;
1008
+ </span>
1009
+ <span>
1010
+ {
1011
+
1012
+ </span>
1013
+ <span>
1014
+
1015
+ </span>
1016
+ <span
1017
+ style="color: rgb(180, 142, 173);"
1018
+ >
1019
+ const
1020
+ </span>
1021
+ <span>
1022
+ itemsWithoutIndex = []
1023
+
1024
+ </span>
1025
+
1026
+
1027
+ expect(getIndexItems(itemsWithoutIndex)).toEqual([])
1028
+
1029
+ })
1030
+
1031
+
1032
+
1033
+ <span>
1034
+ test(
1035
+ </span>
1036
+ <span
1037
+ style="color: rgb(163, 190, 140);"
1038
+ >
1039
+ 'must return empty array when there are no items'
1040
+ </span>
1041
+ <span>
1042
+ ,
1043
+ </span>
1044
+ <span
1045
+ class="hljs-function"
1046
+ >
1047
+ () =&gt;
1048
+ </span>
1049
+ <span>
1050
+ {
1051
+
1052
+ </span>
1053
+ <span>
1054
+
1055
+ </span>
1056
+ <span
1057
+ style="color: rgb(180, 142, 173);"
1058
+ >
1059
+ let
1060
+ </span>
1061
+ <span>
1062
+ itemsWithoutIndex
1063
+
1064
+ </span>
1065
+
1066
+
1067
+ expect(getIndexItems(itemsWithoutIndex)).toEqual([])
1068
+
1069
+ })
1070
+
1071
+ })
1072
+
1073
+ </code>
1074
+ </pre>
1075
+ </div>
1076
+ `;
1077
+
1078
+ exports[`<Array /> Render must match getIndexItemsWithSelected() 1`] = `
1079
+ <div>
1080
+ <pre
1081
+ style="display: block; overflow-x: auto; background: rgb(43, 48, 59); color: rgb(192, 197, 206); padding: 0.5em;"
1082
+ >
1083
+ <code
1084
+ class="language-typescript"
1085
+ style="white-space: pre;"
1086
+ >
1087
+ <span>
1088
+
1089
+
1090
+ </span>
1091
+ <span>
1092
+
1093
+ </span>
1094
+ <span
1095
+ style="color: rgb(180, 142, 173);"
1096
+ >
1097
+ export
1098
+ </span>
1099
+ <span>
1100
+
1101
+ </span>
1102
+ <span
1103
+ class="hljs-function"
1104
+ style="color: rgb(180, 142, 173);"
1105
+ >
1106
+ function
1107
+ </span>
1108
+ <span
1109
+ class="hljs-function"
1110
+ >
1111
+
1112
+ </span>
1113
+ <span
1114
+ class="hljs-function"
1115
+ style="color: rgb(143, 161, 179);"
1116
+ >
1117
+ getIndexItemsWithSelected
1118
+ </span>
1119
+ <span
1120
+ class="hljs-function"
1121
+ >
1122
+ &lt;
1123
+ </span>
1124
+ <span
1125
+ class="hljs-function"
1126
+ style="color: rgb(143, 161, 179);"
1127
+ >
1128
+ T1
1129
+ </span>
1130
+ <span
1131
+ class="hljs-function"
1132
+ >
1133
+
1134
+ </span>
1135
+ <span
1136
+ class="hljs-function"
1137
+ style="color: rgb(143, 161, 179);"
1138
+ >
1139
+ extends
1140
+ </span>
1141
+ <span
1142
+ class="hljs-function"
1143
+ >
1144
+
1145
+ </span>
1146
+ <span
1147
+ class="hljs-function"
1148
+ style="color: rgb(143, 161, 179);"
1149
+ >
1150
+ IIndexed
1151
+ </span>
1152
+ <span
1153
+ class="hljs-function"
1154
+ >
1155
+ ,
1156
+ </span>
1157
+ <span
1158
+ class="hljs-function"
1159
+ style="color: rgb(143, 161, 179);"
1160
+ >
1161
+ T2
1162
+ </span>
1163
+ <span
1164
+ class="hljs-function"
1165
+ >
1166
+
1167
+ </span>
1168
+ <span
1169
+ class="hljs-function"
1170
+ style="color: rgb(143, 161, 179);"
1171
+ >
1172
+ extends
1173
+ </span>
1174
+ <span
1175
+ class="hljs-function"
1176
+ >
1177
+
1178
+ </span>
1179
+ <span
1180
+ class="hljs-function"
1181
+ style="color: rgb(143, 161, 179);"
1182
+ >
1183
+ IIndexed
1184
+ </span>
1185
+ <span
1186
+ class="hljs-function"
1187
+ >
1188
+ &gt;(
1189
+ </span>
1190
+ <span
1191
+ class="hljs-function"
1192
+ style="color: rgb(208, 135, 112);"
1193
+ >
1194
+ indexItems: T1[], selectedItem: IIndexed
1195
+ </span>
1196
+ <span
1197
+ class="hljs-function"
1198
+ >
1199
+ ):
1200
+ </span>
1201
+ <span
1202
+ class="hljs-function"
1203
+ style="color: rgb(143, 161, 179);"
1204
+ >
1205
+ T2
1206
+ </span>
1207
+ <span
1208
+ class="hljs-function"
1209
+ >
1210
+ []
1211
+ </span>
1212
+ <span>
1213
+ {
1214
+
1215
+ </span>
1216
+ <span>
1217
+
1218
+ </span>
1219
+ <span
1220
+ style="color: rgb(180, 142, 173);"
1221
+ >
1222
+ let
1223
+ </span>
1224
+ <span>
1225
+ result = []
1226
+
1227
+ </span>
1228
+
1229
+
1230
+ <span>
1231
+
1232
+ </span>
1233
+ <span
1234
+ style="color: rgb(180, 142, 173);"
1235
+ >
1236
+ if
1237
+ </span>
1238
+ <span>
1239
+ (indexItems) {
1240
+
1241
+ </span>
1242
+ result =
1243
+
1244
+ <span>
1245
+ indexItems?.map(
1246
+ </span>
1247
+ <span
1248
+ class="hljs-function"
1249
+ >
1250
+ (
1251
+ </span>
1252
+ <span
1253
+ class="hljs-function"
1254
+ style="color: rgb(208, 135, 112);"
1255
+ >
1256
+ indexItem: T1
1257
+ </span>
1258
+ <span
1259
+ class="hljs-function"
1260
+ >
1261
+ ) =&gt;
1262
+ </span>
1263
+ <span>
1264
+ ({
1265
+
1266
+ </span>
1267
+ ...indexItem,
1268
+
1269
+ <span>
1270
+
1271
+ </span>
1272
+ <span
1273
+ class="hljs-attr"
1274
+ >
1275
+ isSelected
1276
+ </span>
1277
+ <span>
1278
+ : indexItem.index === selectedItem.index,
1279
+
1280
+ </span>
1281
+ })) ?? []
1282
+
1283
+ }
1284
+
1285
+
1286
+
1287
+ <span>
1288
+
1289
+ </span>
1290
+ <span
1291
+ style="color: rgb(180, 142, 173);"
1292
+ >
1293
+ return
1294
+ </span>
1295
+ <span>
1296
+ result
1297
+
1298
+ </span>
1299
+ }
1300
+
1301
+
1302
+
1303
+ <span>
1304
+ describe(
1305
+ </span>
1306
+ <span
1307
+ style="color: rgb(163, 190, 140);"
1308
+ >
1309
+ 'getIndexItemsWithSelected()'
1310
+ </span>
1311
+ <span>
1312
+ ,
1313
+ </span>
1314
+ <span
1315
+ class="hljs-function"
1316
+ >
1317
+ () =&gt;
1318
+ </span>
1319
+ <span>
1320
+ {
1321
+
1322
+ </span>
1323
+ <span>
1324
+ test(
1325
+ </span>
1326
+ <span
1327
+ style="color: rgb(163, 190, 140);"
1328
+ >
1329
+ 'must return index items with selected when there are items'
1330
+ </span>
1331
+ <span>
1332
+ ,
1333
+ </span>
1334
+ <span
1335
+ class="hljs-function"
1336
+ >
1337
+ () =&gt;
1338
+ </span>
1339
+ <span>
1340
+ {
1341
+
1342
+ </span>
1343
+ <span>
1344
+
1345
+ </span>
1346
+ <span
1347
+ style="color: rgb(180, 142, 173);"
1348
+ >
1349
+ const
1350
+ </span>
1351
+ <span>
1352
+ selectedItem = {
1353
+ </span>
1354
+ <span
1355
+ class="hljs-attr"
1356
+ >
1357
+ fantasticKey3
1358
+ </span>
1359
+ <span>
1360
+ :
1361
+ </span>
1362
+ <span
1363
+ style="color: rgb(163, 190, 140);"
1364
+ >
1365
+ 'fantastic-value-3'
1366
+ </span>
1367
+ <span>
1368
+ ,
1369
+ </span>
1370
+ <span
1371
+ class="hljs-attr"
1372
+ >
1373
+ index
1374
+ </span>
1375
+ <span>
1376
+ :
1377
+ </span>
1378
+ <span
1379
+ style="color: rgb(208, 135, 112);"
1380
+ >
1381
+ 2
1382
+ </span>
1383
+ <span>
1384
+ ,
1385
+ </span>
1386
+ <span
1387
+ class="hljs-attr"
1388
+ >
1389
+ isCurrent
1390
+ </span>
1391
+ <span>
1392
+ :
1393
+ </span>
1394
+ <span
1395
+ style="color: rgb(208, 135, 112);"
1396
+ >
1397
+ false
1398
+ </span>
1399
+ <span>
1400
+ ,
1401
+ </span>
1402
+ <span
1403
+ class="hljs-attr"
1404
+ >
1405
+ isSelected
1406
+ </span>
1407
+ <span>
1408
+ :
1409
+ </span>
1410
+ <span
1411
+ style="color: rgb(208, 135, 112);"
1412
+ >
1413
+ false
1414
+ </span>
1415
+ <span>
1416
+ }
1417
+
1418
+ </span>
1419
+ <span>
1420
+
1421
+ </span>
1422
+ <span
1423
+ style="color: rgb(180, 142, 173);"
1424
+ >
1425
+ const
1426
+ </span>
1427
+ <span>
1428
+ items = [
1429
+
1430
+ </span>
1431
+ <span>
1432
+ {
1433
+ </span>
1434
+ <span
1435
+ class="hljs-attr"
1436
+ >
1437
+ fantasticKey1
1438
+ </span>
1439
+ <span>
1440
+ :
1441
+ </span>
1442
+ <span
1443
+ style="color: rgb(163, 190, 140);"
1444
+ >
1445
+ 'fantastic-value-1'
1446
+ </span>
1447
+ <span>
1448
+ ,
1449
+ </span>
1450
+ <span
1451
+ class="hljs-attr"
1452
+ >
1453
+ isCurrent
1454
+ </span>
1455
+ <span>
1456
+ :
1457
+ </span>
1458
+ <span
1459
+ style="color: rgb(208, 135, 112);"
1460
+ >
1461
+ true
1462
+ </span>
1463
+ <span>
1464
+ },
1465
+
1466
+ </span>
1467
+ <span>
1468
+ {
1469
+ </span>
1470
+ <span
1471
+ class="hljs-attr"
1472
+ >
1473
+ fantasticKey2
1474
+ </span>
1475
+ <span>
1476
+ :
1477
+ </span>
1478
+ <span
1479
+ style="color: rgb(163, 190, 140);"
1480
+ >
1481
+ 'fantastic-value-2'
1482
+ </span>
1483
+ <span>
1484
+ ,
1485
+ </span>
1486
+ <span
1487
+ class="hljs-attr"
1488
+ >
1489
+ isCurrent
1490
+ </span>
1491
+ <span>
1492
+ :
1493
+ </span>
1494
+ <span
1495
+ style="color: rgb(208, 135, 112);"
1496
+ >
1497
+ false
1498
+ </span>
1499
+ <span>
1500
+ },
1501
+
1502
+ </span>
1503
+ selectedItem,
1504
+
1505
+ ]
1506
+
1507
+ <span>
1508
+
1509
+ </span>
1510
+ <span
1511
+ style="color: rgb(180, 142, 173);"
1512
+ >
1513
+ const
1514
+ </span>
1515
+ <span>
1516
+ indexItems = [{ ...items[
1517
+ </span>
1518
+ <span
1519
+ style="color: rgb(208, 135, 112);"
1520
+ >
1521
+ 0
1522
+ </span>
1523
+ <span>
1524
+ ],
1525
+ </span>
1526
+ <span
1527
+ class="hljs-attr"
1528
+ >
1529
+ index
1530
+ </span>
1531
+ <span>
1532
+ :
1533
+ </span>
1534
+ <span
1535
+ style="color: rgb(208, 135, 112);"
1536
+ >
1537
+ 0
1538
+ </span>
1539
+ <span>
1540
+ }, { ...items[
1541
+ </span>
1542
+ <span
1543
+ style="color: rgb(208, 135, 112);"
1544
+ >
1545
+ 1
1546
+ </span>
1547
+ <span>
1548
+ ],
1549
+ </span>
1550
+ <span
1551
+ class="hljs-attr"
1552
+ >
1553
+ index
1554
+ </span>
1555
+ <span>
1556
+ :
1557
+ </span>
1558
+ <span
1559
+ style="color: rgb(208, 135, 112);"
1560
+ >
1561
+ 1
1562
+ </span>
1563
+ <span>
1564
+ }, { ...selectedItem }]
1565
+
1566
+ </span>
1567
+ <span>
1568
+
1569
+ </span>
1570
+ <span
1571
+ style="color: rgb(180, 142, 173);"
1572
+ >
1573
+ const
1574
+ </span>
1575
+ <span>
1576
+ indexItemsWithSelected = [
1577
+
1578
+ </span>
1579
+ <span>
1580
+ { ...items[
1581
+ </span>
1582
+ <span
1583
+ style="color: rgb(208, 135, 112);"
1584
+ >
1585
+ 0
1586
+ </span>
1587
+ <span>
1588
+ ],
1589
+ </span>
1590
+ <span
1591
+ class="hljs-attr"
1592
+ >
1593
+ index
1594
+ </span>
1595
+ <span>
1596
+ :
1597
+ </span>
1598
+ <span
1599
+ style="color: rgb(208, 135, 112);"
1600
+ >
1601
+ 0
1602
+ </span>
1603
+ <span>
1604
+ ,
1605
+ </span>
1606
+ <span
1607
+ class="hljs-attr"
1608
+ >
1609
+ isSelected
1610
+ </span>
1611
+ <span>
1612
+ :
1613
+ </span>
1614
+ <span
1615
+ style="color: rgb(208, 135, 112);"
1616
+ >
1617
+ false
1618
+ </span>
1619
+ <span>
1620
+ },
1621
+
1622
+ </span>
1623
+ <span>
1624
+ { ...items[
1625
+ </span>
1626
+ <span
1627
+ style="color: rgb(208, 135, 112);"
1628
+ >
1629
+ 1
1630
+ </span>
1631
+ <span>
1632
+ ],
1633
+ </span>
1634
+ <span
1635
+ class="hljs-attr"
1636
+ >
1637
+ index
1638
+ </span>
1639
+ <span>
1640
+ :
1641
+ </span>
1642
+ <span
1643
+ style="color: rgb(208, 135, 112);"
1644
+ >
1645
+ 1
1646
+ </span>
1647
+ <span>
1648
+ ,
1649
+ </span>
1650
+ <span
1651
+ class="hljs-attr"
1652
+ >
1653
+ isSelected
1654
+ </span>
1655
+ <span>
1656
+ :
1657
+ </span>
1658
+ <span
1659
+ style="color: rgb(208, 135, 112);"
1660
+ >
1661
+ false
1662
+ </span>
1663
+ <span>
1664
+ },
1665
+
1666
+ </span>
1667
+ <span>
1668
+ { ...selectedItem,
1669
+ </span>
1670
+ <span
1671
+ class="hljs-attr"
1672
+ >
1673
+ isSelected
1674
+ </span>
1675
+ <span>
1676
+ :
1677
+ </span>
1678
+ <span
1679
+ style="color: rgb(208, 135, 112);"
1680
+ >
1681
+ true
1682
+ </span>
1683
+ <span>
1684
+ },
1685
+
1686
+ </span>
1687
+ ]
1688
+
1689
+
1690
+
1691
+ expect(getIndexItemsWithSelected(indexItems, selectedItem)).toEqual(indexItemsWithSelected)
1692
+
1693
+ })
1694
+
1695
+
1696
+
1697
+ <span>
1698
+ test(
1699
+ </span>
1700
+ <span
1701
+ style="color: rgb(163, 190, 140);"
1702
+ >
1703
+ 'must return empty array when items are empty'
1704
+ </span>
1705
+ <span>
1706
+ ,
1707
+ </span>
1708
+ <span
1709
+ class="hljs-function"
1710
+ >
1711
+ () =&gt;
1712
+ </span>
1713
+ <span>
1714
+ {
1715
+
1716
+ </span>
1717
+ <span>
1718
+
1719
+ </span>
1720
+ <span
1721
+ style="color: rgb(180, 142, 173);"
1722
+ >
1723
+ const
1724
+ </span>
1725
+ <span>
1726
+ indexItems = []
1727
+
1728
+ </span>
1729
+
1730
+
1731
+ expect(getIndexItemsWithSelected(indexItems, expect.anything())).toEqual([])
1732
+
1733
+ })
1734
+
1735
+
1736
+
1737
+ <span>
1738
+ test(
1739
+ </span>
1740
+ <span
1741
+ style="color: rgb(163, 190, 140);"
1742
+ >
1743
+ 'must return empty array when there are no items'
1744
+ </span>
1745
+ <span>
1746
+ ,
1747
+ </span>
1748
+ <span
1749
+ class="hljs-function"
1750
+ >
1751
+ () =&gt;
1752
+ </span>
1753
+ <span>
1754
+ {
1755
+
1756
+ </span>
1757
+ <span>
1758
+
1759
+ </span>
1760
+ <span
1761
+ style="color: rgb(180, 142, 173);"
1762
+ >
1763
+ let
1764
+ </span>
1765
+ <span>
1766
+ indexItems
1767
+
1768
+ </span>
1769
+
1770
+
1771
+ expect(getIndexItemsWithSelected(indexItems, expect.anything())).toEqual([])
1772
+
1773
+ })
1774
+
1775
+ })
1776
+
1777
+ </code>
1778
+ </pre>
1779
+ </div>
1780
+ `;
1781
+
1782
+ exports[`<Array /> Render must match getRandomItemFromArray() 1`] = `
1783
+ <div>
1784
+ <pre
1785
+ style="display: block; overflow-x: auto; background: rgb(43, 48, 59); color: rgb(192, 197, 206); padding: 0.5em;"
1786
+ >
1787
+ <code
1788
+ class="language-typescript"
1789
+ style="white-space: pre;"
1790
+ >
1791
+ <span>
1792
+
1793
+
1794
+ </span>
1795
+ <span>
1796
+
1797
+ </span>
1798
+ <span
1799
+ style="color: rgb(180, 142, 173);"
1800
+ >
1801
+ export
1802
+ </span>
1803
+ <span>
1804
+
1805
+ </span>
1806
+ <span
1807
+ class="hljs-function"
1808
+ style="color: rgb(180, 142, 173);"
1809
+ >
1810
+ function
1811
+ </span>
1812
+ <span
1813
+ class="hljs-function"
1814
+ >
1815
+
1816
+ </span>
1817
+ <span
1818
+ class="hljs-function"
1819
+ style="color: rgb(143, 161, 179);"
1820
+ >
1821
+ getRandomItemFromArray
1822
+ </span>
1823
+ <span
1824
+ class="hljs-function"
1825
+ >
1826
+ &lt;
1827
+ </span>
1828
+ <span
1829
+ class="hljs-function"
1830
+ style="color: rgb(143, 161, 179);"
1831
+ >
1832
+ T
1833
+ </span>
1834
+ <span
1835
+ class="hljs-function"
1836
+ >
1837
+ &gt;(
1838
+ </span>
1839
+ <span
1840
+ class="hljs-function"
1841
+ style="color: rgb(208, 135, 112);"
1842
+ >
1843
+ array: T[]
1844
+ </span>
1845
+ <span
1846
+ class="hljs-function"
1847
+ >
1848
+ ):
1849
+ </span>
1850
+ <span
1851
+ class="hljs-function"
1852
+ style="color: rgb(143, 161, 179);"
1853
+ >
1854
+ T
1855
+ </span>
1856
+ <span
1857
+ class="hljs-function"
1858
+ >
1859
+
1860
+ </span>
1861
+ <span>
1862
+ {
1863
+
1864
+ </span>
1865
+ <span>
1866
+
1867
+ </span>
1868
+ <span
1869
+ style="color: rgb(180, 142, 173);"
1870
+ >
1871
+ return
1872
+ </span>
1873
+ <span>
1874
+ array?.[
1875
+ </span>
1876
+ <span
1877
+ style="color: rgb(208, 135, 112);"
1878
+ >
1879
+ Math
1880
+ </span>
1881
+ <span>
1882
+ .floor(
1883
+ </span>
1884
+ <span
1885
+ style="color: rgb(208, 135, 112);"
1886
+ >
1887
+ Math
1888
+ </span>
1889
+ <span>
1890
+ .random() * array?.length)]
1891
+
1892
+ </span>
1893
+ }
1894
+
1895
+
1896
+
1897
+ <span>
1898
+ describe(
1899
+ </span>
1900
+ <span
1901
+ style="color: rgb(163, 190, 140);"
1902
+ >
1903
+ 'getRandomItemFromArray()'
1904
+ </span>
1905
+ <span>
1906
+ ,
1907
+ </span>
1908
+ <span
1909
+ class="hljs-function"
1910
+ >
1911
+ () =&gt;
1912
+ </span>
1913
+ <span>
1914
+ {
1915
+
1916
+ </span>
1917
+ <span>
1918
+ beforeEach(
1919
+ </span>
1920
+ <span
1921
+ class="hljs-function"
1922
+ >
1923
+ () =&gt;
1924
+ </span>
1925
+ <span>
1926
+ {
1927
+
1928
+ </span>
1929
+ <span>
1930
+ jest.spyOn(
1931
+ </span>
1932
+ <span
1933
+ style="color: rgb(208, 135, 112);"
1934
+ >
1935
+ Math
1936
+ </span>
1937
+ <span>
1938
+ ,
1939
+ </span>
1940
+ <span
1941
+ style="color: rgb(163, 190, 140);"
1942
+ >
1943
+ 'random'
1944
+ </span>
1945
+ <span>
1946
+ ).mockImplementation(jest.fn(
1947
+ </span>
1948
+ <span
1949
+ class="hljs-function"
1950
+ >
1951
+ () =&gt;
1952
+ </span>
1953
+ <span>
1954
+
1955
+ </span>
1956
+ <span
1957
+ style="color: rgb(208, 135, 112);"
1958
+ >
1959
+ 3
1960
+ </span>
1961
+ <span>
1962
+ ))
1963
+
1964
+ </span>
1965
+ <span>
1966
+ jest.spyOn(
1967
+ </span>
1968
+ <span
1969
+ style="color: rgb(208, 135, 112);"
1970
+ >
1971
+ Math
1972
+ </span>
1973
+ <span>
1974
+ ,
1975
+ </span>
1976
+ <span
1977
+ style="color: rgb(163, 190, 140);"
1978
+ >
1979
+ 'floor'
1980
+ </span>
1981
+ <span>
1982
+ ).mockImplementation(jest.fn(
1983
+ </span>
1984
+ <span
1985
+ class="hljs-function"
1986
+ >
1987
+ () =&gt;
1988
+ </span>
1989
+ <span>
1990
+
1991
+ </span>
1992
+ <span
1993
+ style="color: rgb(208, 135, 112);"
1994
+ >
1995
+ 0
1996
+ </span>
1997
+ <span>
1998
+ ))
1999
+
2000
+ </span>
2001
+ })
2002
+
2003
+
2004
+
2005
+ <span>
2006
+ afterEach(
2007
+ </span>
2008
+ <span
2009
+ class="hljs-function"
2010
+ >
2011
+ () =&gt;
2012
+ </span>
2013
+ <span>
2014
+ jest.clearAllMocks())
2015
+
2016
+ </span>
2017
+
2018
+
2019
+ <span>
2020
+ test(
2021
+ </span>
2022
+ <span
2023
+ style="color: rgb(163, 190, 140);"
2024
+ >
2025
+ 'must return random item from array when array has items'
2026
+ </span>
2027
+ <span>
2028
+ ,
2029
+ </span>
2030
+ <span
2031
+ class="hljs-function"
2032
+ >
2033
+ () =&gt;
2034
+ </span>
2035
+ <span>
2036
+ {
2037
+
2038
+ </span>
2039
+ <span>
2040
+
2041
+ </span>
2042
+ <span
2043
+ style="color: rgb(180, 142, 173);"
2044
+ >
2045
+ const
2046
+ </span>
2047
+ <span>
2048
+ array = [{
2049
+ </span>
2050
+ <span
2051
+ class="hljs-attr"
2052
+ >
2053
+ fantasticKey1
2054
+ </span>
2055
+ <span>
2056
+ :
2057
+ </span>
2058
+ <span
2059
+ style="color: rgb(163, 190, 140);"
2060
+ >
2061
+ 'fantastic-value-1'
2062
+ </span>
2063
+ <span>
2064
+ }, {
2065
+ </span>
2066
+ <span
2067
+ class="hljs-attr"
2068
+ >
2069
+ fantasticKey2
2070
+ </span>
2071
+ <span>
2072
+ :
2073
+ </span>
2074
+ <span
2075
+ style="color: rgb(163, 190, 140);"
2076
+ >
2077
+ 'fantastic-value-2'
2078
+ </span>
2079
+ <span>
2080
+ }, {
2081
+ </span>
2082
+ <span
2083
+ class="hljs-attr"
2084
+ >
2085
+ fantasticKey3
2086
+ </span>
2087
+ <span>
2088
+ :
2089
+ </span>
2090
+ <span
2091
+ style="color: rgb(163, 190, 140);"
2092
+ >
2093
+ 'fantastic-value-3'
2094
+ </span>
2095
+ <span>
2096
+ }]
2097
+
2098
+ </span>
2099
+
2100
+
2101
+ <span>
2102
+ expect(getRandomItemFromArray(array)).toEqual(array[
2103
+ </span>
2104
+ <span
2105
+ style="color: rgb(208, 135, 112);"
2106
+ >
2107
+ 0
2108
+ </span>
2109
+ <span>
2110
+ ])
2111
+
2112
+ </span>
2113
+ })
2114
+
2115
+
2116
+
2117
+ <span>
2118
+ test(
2119
+ </span>
2120
+ <span
2121
+ style="color: rgb(163, 190, 140);"
2122
+ >
2123
+ 'must return undefined when array has no items'
2124
+ </span>
2125
+ <span>
2126
+ ,
2127
+ </span>
2128
+ <span
2129
+ class="hljs-function"
2130
+ >
2131
+ () =&gt;
2132
+ </span>
2133
+ <span>
2134
+ {
2135
+
2136
+ </span>
2137
+ <span>
2138
+
2139
+ </span>
2140
+ <span
2141
+ style="color: rgb(180, 142, 173);"
2142
+ >
2143
+ const
2144
+ </span>
2145
+ <span>
2146
+ array = []
2147
+
2148
+ </span>
2149
+
2150
+
2151
+ expect(getRandomItemFromArray(array)).toBeUndefined()
2152
+
2153
+ })
2154
+
2155
+ })
2156
+
2157
+ </code>
2158
+ </pre>
2159
+ </div>
2160
+ `;