@@ -93,6 +93,7 @@ test("json editor default indent", (): any => {
93
93
expect ( settings . jsonEditor . indentation ) . toBe ( 2 ) ;
94
94
expect ( creator . text ) . toBe ( "{\n \"pages\": [\n {\n \"name\": \"page1\"\n }\n ]\n}" ) ;
95
95
} ) ;
96
+
96
97
test ( "onSetPropertyEditorOptions -> onConfigureTablePropertyEditor" , ( ) : any => {
97
98
const creator = new CreatorTester ( ) ;
98
99
creator . JSON = { elements : [ { type : "dropdown" , name : "q1" , choices : [ 1 , 2 ] } ] } ;
@@ -123,6 +124,7 @@ test("onSetPropertyEditorOptions -> onConfigureTablePropertyEditor", (): any =>
123
124
creator . onSetPropertyEditorOptionsCallback ( "choices" , question , callBackOptions ) ;
124
125
expect ( callBackOptions . allowBatchEdit ) . toBeFalsy ( ) ;
125
126
} ) ;
127
+
126
128
test ( "creator.onSurveyInstanceCreated from property Grid" , ( ) => {
127
129
const creator = new CreatorTester ( ) ;
128
130
const selectedTypes = new Array < string > ( ) ;
@@ -146,6 +148,7 @@ test("creator.onSurveyInstanceCreated from property Grid", () => {
146
148
creator . selectQuestionByName ( "q2" ) ;
147
149
expect ( selectedTypes ) . toStrictEqual ( [ "survey" , "text" , "radiogroup" ] ) ;
148
150
} ) ;
151
+
149
152
test ( "creator.onSurveyInstanceSetupHandlers event" , ( ) => {
150
153
const creator = new CreatorTester ( ) ;
151
154
let json = undefined ;
@@ -189,6 +192,7 @@ test("check tabResponsivenessMode property", () => {
189
192
creator . tabResponsivenessMode = "menu" ;
190
193
expect ( creator . tabbedMenu . actions . every ( ( action ) => action . disableShrink ) ) . toBeTruthy ( ) ;
191
194
} ) ;
195
+
192
196
test ( "onModified options, on adding page and on copying page" , ( ) => {
193
197
const creator = new CreatorTester ( ) ;
194
198
creator . JSON = {
@@ -480,6 +484,7 @@ test("creator set theme should update headerView survey property", (): any => {
480
484
creator . theme = { headerView : "basic" } ;
481
485
expect ( creator . survey . headerView ) . toBe ( "basic" ) ;
482
486
} ) ;
487
+
483
488
test ( "creator set theme should update headerView survey property" , ( ) : any => {
484
489
const creator = new CreatorTester ( {
485
490
clearTranslationsOnSourceTextChange : true
@@ -553,4 +558,83 @@ test("creator set theme should update headerView survey property", (): any => {
553
558
expect ( q2 . locTitle . getJson ( ) ) . toStrictEqual ( {
554
559
de : "de: my question_new"
555
560
} ) ;
561
+ } ) ;
562
+
563
+ test ( "ConvertTo and addNewQuestion for panel with maxNestingLevel set" , ( ) : any => {
564
+ const creator = new CreatorTester ( { maxNestingLevel : 0 } ) ;
565
+ creator . JSON = {
566
+ elements : [
567
+ {
568
+ type : "panel" , name : "panel1" ,
569
+ elements : [
570
+ {
571
+ type : "panel" , name : "panel3" ,
572
+ elements : [
573
+ { type : "panel" , name : "panel5" } ,
574
+ { type : "paneldynamic" , name : "panel6" }
575
+ ]
576
+ } ,
577
+ { type : "paneldynamic" , name : "panel4" }
578
+ ]
579
+ } ,
580
+ { type : "paneldynamic" , name : "panel2" }
581
+ ]
582
+ } ;
583
+ expect ( creator . maxNestedPanels ) . toBe ( - 1 ) ;
584
+ expect ( creator . maxNestingLevel ) . toBe ( 0 ) ;
585
+ expect ( creator . dragDropSurveyElements . maxNestedPanels ) . toBe ( - 1 ) ;
586
+ expect ( creator . dragDropSurveyElements . maxNestingLevel ) . toBe ( 0 ) ;
587
+ creator . maxNestingLevel = - 1 ;
588
+ expect ( creator . dragDropSurveyElements . maxNestingLevel ) . toBe ( - 1 ) ;
589
+ const panel1 = creator . survey . getPanelByName ( "panel1" ) ;
590
+ const panel2 = creator . survey . getQuestionByName ( "panel2" ) ;
591
+ const panel3 = creator . survey . getPanelByName ( "panel3" ) ;
592
+ const panel4 = creator . survey . getQuestionByName ( "panel4" ) ;
593
+ const panel5 = creator . survey . getPanelByName ( "panel5" ) ;
594
+ const panel6 = creator . survey . getQuestionByName ( "panel6" ) ;
595
+ const itemCount = creator . getAvailableToolboxItems ( ) . length ;
596
+ expect ( itemCount ) . toBe ( 21 ) ;
597
+ const panel6Model = new QuestionAdornerViewModel ( creator , panel6 , undefined ) ;
598
+ const panel5Model = new QuestionAdornerViewModel ( creator , panel5 , undefined ) ;
599
+ expect ( creator . getAvailableToolboxItems ( panel5 ) ) . toHaveLength ( itemCount ) ;
600
+ expect ( creator . getAvailableToolboxItems ( panel6 ) ) . toHaveLength ( itemCount ) ;
601
+ creator . maxNestingLevel = 3 ;
602
+ expect ( creator . dragDropSurveyElements . maxNestingLevel ) . toBe ( 3 ) ;
603
+ expect ( creator . getAvailableToolboxItems ( panel5 ) ) . toHaveLength ( itemCount ) ;
604
+ expect ( creator . getAvailableToolboxItems ( panel6 ) ) . toHaveLength ( itemCount ) ;
605
+ expect ( panel6Model . getConvertToTypesActions ( ) ) . toHaveLength ( itemCount ) ;
606
+ expect ( panel5Model . getConvertToTypesActions ( ) ) . toHaveLength ( itemCount ) ;
607
+ creator . maxNestingLevel = 2 ;
608
+ expect ( creator . dragDropSurveyElements . maxNestingLevel ) . toBe ( 2 ) ;
609
+ expect ( creator . getAvailableToolboxItems ( panel5 ) ) . toHaveLength ( itemCount - 2 ) ;
610
+ expect ( creator . getAvailableToolboxItems ( panel6 ) ) . toHaveLength ( itemCount - 2 ) ;
611
+ expect ( creator . getAvailableToolboxItems ( panel3 ) ) . toHaveLength ( itemCount ) ;
612
+ expect ( creator . getAvailableToolboxItems ( panel4 ) ) . toHaveLength ( itemCount ) ;
613
+ expect ( creator . getAvailableToolboxItems ( panel2 ) ) . toHaveLength ( itemCount ) ;
614
+ expect ( creator . getAvailableToolboxItems ( panel1 ) ) . toHaveLength ( itemCount ) ;
615
+ expect ( panel6Model . getConvertToTypesActions ( ) ) . toHaveLength ( itemCount ) ;
616
+ expect ( panel5Model . getConvertToTypesActions ( ) ) . toHaveLength ( itemCount ) ;
617
+ expect ( creator . getAvailableToolboxItems ( ) ) . toHaveLength ( itemCount ) ;
618
+ creator . maxNestingLevel = 1 ;
619
+ expect ( creator . dragDropSurveyElements . maxNestingLevel ) . toBe ( 1 ) ;
620
+ expect ( creator . getAvailableToolboxItems ( panel5 ) ) . toHaveLength ( itemCount - 2 ) ;
621
+ expect ( creator . getAvailableToolboxItems ( panel6 ) ) . toHaveLength ( itemCount - 2 ) ;
622
+ expect ( creator . getAvailableToolboxItems ( panel3 ) ) . toHaveLength ( itemCount - 2 ) ;
623
+ expect ( creator . getAvailableToolboxItems ( panel4 ) ) . toHaveLength ( itemCount - 2 ) ;
624
+ expect ( creator . getAvailableToolboxItems ( panel2 ) ) . toHaveLength ( itemCount ) ;
625
+ expect ( creator . getAvailableToolboxItems ( panel1 ) ) . toHaveLength ( itemCount ) ;
626
+ expect ( panel6Model . getConvertToTypesActions ( ) ) . toHaveLength ( itemCount ) ;
627
+ expect ( panel5Model . getConvertToTypesActions ( ) ) . toHaveLength ( itemCount ) ;
628
+ expect ( creator . getAvailableToolboxItems ( ) ) . toHaveLength ( itemCount ) ;
629
+ creator . maxNestingLevel = 0 ;
630
+ expect ( creator . dragDropSurveyElements . maxNestingLevel ) . toBe ( 0 ) ;
631
+ expect ( creator . getAvailableToolboxItems ( panel5 ) ) . toHaveLength ( itemCount - 2 ) ;
632
+ expect ( creator . getAvailableToolboxItems ( panel6 ) ) . toHaveLength ( itemCount - 2 ) ;
633
+ expect ( panel6Model . getConvertToTypesActions ( ) ) . toHaveLength ( itemCount ) ;
634
+ expect ( panel5Model . getConvertToTypesActions ( ) ) . toHaveLength ( itemCount ) ;
635
+ expect ( creator . getAvailableToolboxItems ( panel3 ) ) . toHaveLength ( itemCount - 2 ) ;
636
+ expect ( creator . getAvailableToolboxItems ( panel4 ) ) . toHaveLength ( itemCount - 2 ) ;
637
+ expect ( creator . getAvailableToolboxItems ( panel1 ) ) . toHaveLength ( itemCount - 2 ) ;
638
+ expect ( creator . getAvailableToolboxItems ( panel2 ) ) . toHaveLength ( itemCount - 2 ) ;
639
+ expect ( creator . getAvailableToolboxItems ( ) ) . toHaveLength ( itemCount ) ;
556
640
} ) ;
0 commit comments