@@ -28,6 +28,26 @@ test.describe("Test C5: Form Required Field Validation", () => {
2828 await expect ( dialog ) . toBeVisible ( ) ;
2929 } ) ;
3030
31+ test ( "should show validation error when command field is empty for single command" , async ( {
32+ page,
33+ } ) => {
34+ // Given: Open add command dialog
35+ await page . getByRole ( "button" , { name : "Add new command" } ) . click ( ) ;
36+
37+ const dialog = page . getByRole ( "dialog" , { name : "Add New Command" } ) ;
38+ await expect ( dialog ) . toBeVisible ( ) ;
39+
40+ // When: Fill name but leave command empty, then save
41+ await page . getByRole ( "textbox" , { name : "Command Name" } ) . fill ( "Test" ) ;
42+ await page . getByRole ( "button" , { name : "Save" } ) . click ( ) ;
43+
44+ // Then: Command validation error should be displayed
45+ await expect ( page . getByText ( "Command is required" ) ) . toBeVisible ( ) ;
46+
47+ // Dialog should remain open
48+ await expect ( dialog ) . toBeVisible ( ) ;
49+ } ) ;
50+
3151 test ( "should clear validation error after valid input and re-submit" , async ( {
3252 page,
3353 } ) => {
@@ -38,16 +58,17 @@ test.describe("Test C5: Form Required Field Validation", () => {
3858 const errorMessage = page . getByText ( "Command name is required" ) ;
3959 await expect ( errorMessage ) . toBeVisible ( ) ;
4060
41- // When: Fill name field and attempt save again
61+ // When: Fill all required fields and attempt save again
4262 await page . getByRole ( "textbox" , { name : "Command Name" } ) . fill ( "Test" ) ;
63+ await page . getByPlaceholder ( "e.g., npm start" ) . fill ( "npm test" ) ;
4364 await page . getByRole ( "button" , { name : "Save" } ) . click ( ) ;
4465
4566 // Then: Dialog should close (validation passed)
4667 const dialog = page . getByRole ( "dialog" , { name : "Add New Command" } ) ;
4768 await expect ( dialog ) . not . toBeVisible ( ) ;
4869 } ) ;
4970
50- test ( "should allow save after filling required name field " , async ( {
71+ test ( "should allow save after filling all required fields " , async ( {
5172 page,
5273 } ) => {
5374 // Given: Open dialog
@@ -57,10 +78,11 @@ test.describe("Test C5: Form Required Field Validation", () => {
5778 await page . getByRole ( "button" , { name : "Save" } ) . click ( ) ;
5879 await expect ( page . getByText ( "Command name is required" ) ) . toBeVisible ( ) ;
5980
60- // When: Fill the required name field and save
81+ // When: Fill all required fields and save
6182 await page
6283 . getByRole ( "textbox" , { name : "Command Name" } )
6384 . fill ( "ValidCommand" ) ;
85+ await page . getByPlaceholder ( "e.g., npm start" ) . fill ( "npm run build" ) ;
6486 await page . getByRole ( "button" , { name : "Save" } ) . click ( ) ;
6587
6688 // Then: Dialog should close (form submitted successfully)
0 commit comments