@@ -1197,4 +1197,43 @@ module('Registries | Acceptance | draft form', hooks => {
11971197 assert . dom ( '[data-test-link="1-first-page-of-test-schema"] > [data-test-icon]' )
11981198 . hasClass ( 'fa-check-circle' , 'page 1 is now valid' ) ;
11991199 } ) ;
1200+
1201+ // Test case for bug: ENG-4293
1202+ test ( 'validations: year and copyrightHolder validation succeeds after navigating to the next page' , async function (
1203+ this : DraftFormTestContext , assert ,
1204+ ) {
1205+ const initiator = server . create ( 'user' , 'loggedIn' ) ;
1206+ const registrationSchema = server . schema . registrationSchemas . find ( 'testSchema' ) ;
1207+ const registration = server . create (
1208+ 'draft-registration' ,
1209+ {
1210+ registrationSchema,
1211+ initiator,
1212+ branchedFrom : this . branchedFrom ,
1213+ license : server . schema . licenses . findBy ( { id : '5c252c8e0989e100220edb7d' } ) , // MIT License
1214+ nodeLicense : { year : '2023' , copyrightHolders : 'OSF' } ,
1215+ } ,
1216+ ) ;
1217+ const subjects = [ server . create ( 'subject' ) ] ;
1218+ registration . update ( { subjects } ) ;
1219+
1220+ await visit ( `/registries/drafts/${ registration . id } /metadata` ) ;
1221+ await click ( '[data-test-metadata-tags]' ) ;
1222+ await fillIn ( '[data-test-metadata-tags] input' , 'newjeans' ) ;
1223+ await triggerKeyEvent ( '[data-test-metadata-tags] input' , 'keydown' , 'Enter' ) ;
1224+ await click ( '[data-test-goto-next-page]' ) ;
1225+ assert . dom ( '[data-test-link="metadata"] > [data-test-icon]' )
1226+ . hasClass ( 'fa-check-circle' , 'metadata page is marked valid' ) ;
1227+ await click ( '[data-test-goto-metadata]' ) ;
1228+ await fillIn ( '[data-test-required-field="copyrightHolders"]' , '' ) ;
1229+ await blur ( '[data-test-required-field="copyrightHolders"]' ) ;
1230+ const validationErrorMsg = t ( 'validationErrors.node_license_missing_fields' ,
1231+ { missingFields : 'Copyright Holders' , numOfFields : 1 } ) . toString ( ) ;
1232+ assert . dom ( '[data-test-validation-errors="nodeLicense"]' )
1233+ . containsText ( validationErrorMsg ,
1234+ 'NodeLicense validation error when copyright holders is empty' ) ;
1235+ await click ( '[data-test-goto-next-page]' ) ;
1236+ assert . dom ( '[data-test-link="metadata"] > [data-test-icon]' )
1237+ . hasClass ( 'fa-exclamation-circle' , 'metadata page is marked invalid' ) ;
1238+ } ) ;
12001239} ) ;
0 commit comments