@@ -203,7 +203,7 @@ describe('PageSchema', () => {
203203 const types : Array < Page [ 'type' ] > = [
204204 'record' , 'home' , 'app' , 'utility' ,
205205 'dashboard' , 'grid' , 'list' , 'gallery' , 'kanban' , 'calendar' ,
206- 'timeline' , 'form' , 'record_detail' , 'record_review' , ' overview' , 'blank ',
206+ 'timeline' , 'form' , 'record_detail' , 'overview' ,
207207 ] ;
208208
209209 types . forEach ( type => {
@@ -215,6 +215,29 @@ describe('PageSchema', () => {
215215 } ) ;
216216 expect ( page . type ) . toBe ( type ) ;
217217 } ) ;
218+
219+ // record_review requires recordReview config
220+ const reviewPage = PageSchema . parse ( {
221+ name : 'test_page' ,
222+ label : 'Test Page' ,
223+ type : 'record_review' ,
224+ regions : [ ] ,
225+ recordReview : {
226+ object : 'case' ,
227+ actions : [ { label : 'Approve' , type : 'approve' } ] ,
228+ } ,
229+ } ) ;
230+ expect ( reviewPage . type ) . toBe ( 'record_review' ) ;
231+
232+ // blank requires blankLayout config
233+ const blankPage = PageSchema . parse ( {
234+ name : 'test_page' ,
235+ label : 'Test Page' ,
236+ type : 'blank' ,
237+ regions : [ ] ,
238+ blankLayout : { items : [ ] } ,
239+ } ) ;
240+ expect ( blankPage . type ) . toBe ( 'blank' ) ;
218241 } ) ;
219242
220243 it ( 'should accept record page' , ( ) => {
@@ -564,6 +587,7 @@ describe('PageSchema with page types', () => {
564587 name : 'page_overview' ,
565588 label : 'Overview' ,
566589 type : 'blank' ,
590+ blankLayout : { items : [ ] } ,
567591 regions : [ ] ,
568592 } ) ;
569593
@@ -616,6 +640,7 @@ describe('PageSchema with page types', () => {
616640 name : 'page_filtered' ,
617641 label : 'Filtered View' ,
618642 type : 'blank' ,
643+ blankLayout : { items : [ ] } ,
619644 variables : [
620645 { name : 'selectedId' , type : 'string' } ,
621646 { name : 'showArchived' , type : 'boolean' , defaultValue : false } ,
@@ -627,19 +652,40 @@ describe('PageSchema with page types', () => {
627652 } ) ;
628653
629654 it ( 'should accept all interface page types' , ( ) => {
630- const types = [
655+ const basicTypes = [
631656 'dashboard' , 'grid' , 'list' , 'gallery' , 'kanban' , 'calendar' ,
632- 'timeline' , 'form' , 'record_detail' , 'record_review' , ' overview' , 'blank ',
657+ 'timeline' , 'form' , 'record_detail' , 'overview' ,
633658 ] ;
634659
635- types . forEach ( type => {
660+ basicTypes . forEach ( type => {
636661 expect ( ( ) => PageSchema . parse ( {
637662 name : 'test_page' ,
638663 label : 'Test' ,
639664 type,
640665 regions : [ ] ,
641666 } ) ) . not . toThrow ( ) ;
642667 } ) ;
668+
669+ // record_review requires recordReview config
670+ expect ( ( ) => PageSchema . parse ( {
671+ name : 'test_page' ,
672+ label : 'Test' ,
673+ type : 'record_review' ,
674+ regions : [ ] ,
675+ recordReview : {
676+ object : 'case' ,
677+ actions : [ { label : 'Approve' , type : 'approve' } ] ,
678+ } ,
679+ } ) ) . not . toThrow ( ) ;
680+
681+ // blank requires blankLayout config
682+ expect ( ( ) => PageSchema . parse ( {
683+ name : 'test_page' ,
684+ label : 'Test' ,
685+ type : 'blank' ,
686+ regions : [ ] ,
687+ blankLayout : { items : [ ] } ,
688+ } ) ) . not . toThrow ( ) ;
643689 } ) ;
644690
645691 it ( 'should accept page with icon' , ( ) => {
@@ -839,6 +885,7 @@ describe('PageVariableSchema record_id type', () => {
839885 name : 'blank_picker' ,
840886 label : 'Picker Page' ,
841887 type : 'blank' ,
888+ blankLayout : { items : [ ] } ,
842889 variables : [
843890 { name : 'selected_id' , type : 'record_id' , source : 'account_picker' } ,
844891 { name : 'show_details' , type : 'boolean' , defaultValue : false } ,
0 commit comments