@@ -8,6 +8,7 @@ import sinonChai from '@cypress/sinon-chai'
88
99import $dom from '../dom'
1010import $utils from '../cypress/utils'
11+ import { escapeBackslashes , escapeQuotes } from '../util/escape'
1112import $errUtils from '../cypress/error_utils'
1213import $stackUtils from '../cypress/stack_utils'
1314import $chaiJquery from '../cypress/chai_jquery'
@@ -29,6 +30,8 @@ const trailingWhitespaces = /\s*'\*\*/g
2930const whitespace = / \s / g
3031const valueHasLeadingOrTrailingWhitespaces = / \* \* ' \s + | \s + ' \* \* / g
3132const imageMarkdown = / ! \[ .* ?\] \( .* ?\) / g
33+ const doubleslashRe = / \\ \\ / g
34+ const escapedDoubleslashRe = / _ _ d o u b l e _ s l a s h _ _ / g
3235
3336type CreateFunc = ( ( specWindow , state , assertFn ) => ( {
3437 chai : Chai . ChaiStatic
@@ -103,6 +106,9 @@ chai.use((chai, u) => {
103106 return
104107 } )
105108
109+ const escapeDoubleSlash = ( str : string ) => str . replace ( doubleslashRe , '__double_slash__' )
110+ const restoreDoubleSlash = ( str : string ) => str . replace ( escapedDoubleslashRe , '\\\\' )
111+
106112 // remove any single quotes between our **,
107113 // except escaped quotes, empty strings and number strings.
108114 const removeOrKeepSingleQuotesBetweenStars = ( message ) => {
@@ -277,7 +283,9 @@ chai.use((chai, u) => {
277283 return _super . apply ( this , arguments )
278284 }
279285
280- const escText = $utils . escapeQuotes ( text )
286+ const escText = escapeQuotes (
287+ escapeBackslashes ( text ) ,
288+ )
281289
282290 const selector = `:contains('${ escText } '), [type='submit'][value~='${ escText } ']`
283291
@@ -457,7 +465,9 @@ chai.use((chai, u) => {
457465 let message = chaiUtils . getMessage ( this , customArgs as Chai . AssertionArgs )
458466 const actual = chaiUtils . getActual ( this , customArgs as Chai . AssertionArgs )
459467
468+ message = escapeDoubleSlash ( message )
460469 message = removeOrKeepSingleQuotesBetweenStars ( message )
470+ message = restoreDoubleSlash ( message )
461471 message = escapeMarkdown ( message )
462472
463473 try {
0 commit comments