@@ -3,26 +3,39 @@ import { flashClassMap } from './assertion_constants';
33
44/**
55 * Custom Cypress command to validate flash messages.
6- * @param {string } flashType - Type of flash (success, warning, error, info ).
6+ * @param {string } flashType - Type of flash. Use values from flashClassMap (e.g., flashClassMap.success, flashClassMap. error).
77 * @param {string } [containsText] - Optional text that the flash-message should contain.
88 * @returns {Cypress.Chainable } - The flash-message element if found, or an assertion failure.
9+ * @example
10+ * cy.expect_flash(flashClassMap.success);
11+ * cy.expect_flash(flashClassMap.error, 'failed');
912 */
1013Cypress . Commands . add (
1114 'expect_flash' ,
1215 ( flashType = flashClassMap . success , containsText ) => {
13- const flashMessageClassName = flashClassMap [ flashType ] || flashClassMap . success ;
14- const flashMessageElement = cy
15- . get ( `#main_div #flash_msg_div .alert-${ flashMessageClassName } ` )
16- . should ( 'be.visible' ) ;
16+ if ( Object . values ( flashClassMap ) . includes ( flashType ) ) {
17+ const flashMessageElement = cy
18+ . get ( `#main_div #flash_msg_div .alert-${ flashType } ` )
19+ . should ( 'be.visible' ) ;
1720
18- if ( containsText ) {
19- return flashMessageElement . should ( ( $el ) => {
20- const actualText = $el . text ( ) . toLowerCase ( ) ;
21- expect ( actualText ) . to . include ( containsText . toLowerCase ( ) ) ;
22- } ) ;
21+ if ( containsText ) {
22+ return flashMessageElement . should ( ( flash ) => {
23+ const actualText = flash . text ( ) . toLowerCase ( ) ;
24+ expect ( actualText ) . to . include ( containsText . toLowerCase ( ) ) ;
25+ } ) ;
26+ }
27+
28+ return flashMessageElement ;
2329 }
2430
25- return flashMessageElement ;
31+ // If an invalid flash type is passed, throw an error
32+ cy . logAndThrowError (
33+ `Invalid flash type: "${ flashType } ". Valid flash types are: ${ Object . values (
34+ flashClassMap
35+ ) . join (
36+ ', '
37+ ) } . It is recommended to use flashClassMap values (e.g., flashClassMap.error, flashClassMap.success) to pass flash types.`
38+ ) ;
2639 }
2740) ;
2841
0 commit comments