import { createHash } from 'crypto' ; import { Then } from 'cypress-cucumber-preprocessor/steps' ; const createScenarioHash = ( scenarioName ) : string => { const scenarioTrimmed = scenarioName . trim ( ) . toLowerCase ( ) ; const hash = createHash ( 'sha512' ) . update ( scenarioTrimmed ) . digest ( 'hex' ) ; return hash . substring ( 0 , 10 ) ; } ; const snapshotName = ( scenarioName , name , device ) => { const scenarioHash = createScenarioHash ( scenarioName ) ; return `${ scenarioHash }_${ name }_${ device }` ; } ; Then ( "la copie d'écran {string} correspond à la page actuelle sur {string}" , function ( name , device ) { const { title : scenarioName } = this . test ; cy . wait ( 750 ) ; cy . matchImageSnapshot ( snapshotName ( scenarioName , name , device ) ) ; } ) ; Then ( "la copie d'écran {string} correspond à l'élément web {string} sur {string}" , function ( name , selector , device ) { const { title : scenarioName } = this . test ; cy . wait ( 750 ) ; cy . get ( selector ) . then ( ( $el ) => cy . wrap ( $el ) . matchImageSnapshot ( snapshotName ( scenarioName , name , device ) ) ) ; } ) ;