Краткий ответ
Измените expect
на следующее:
expect(error.message).toBe('child "path1" fails because ["path1" is not allowed to be empty]');
... и оно будет работать.
Подробности
JavaScript позволяет определять строки, используя одинарные кавычки: 'a string'
или двойные кавычки: "a string"
.
Из документа MDN :
В отличие от некоторых других языков, JavaScript не делает различий между строками в одинарных и двойных кавычках
... поэтому не имеет значения, какиеподход, который вы используете.
Одинарные кавычки прекрасно работают в строке, определенной двойными кавычками:
const singleQuotes = "has 'single quotes' in it";
... и то же самое верно для двойных кавычек в строке, определенной содинарные кавычки:
const doubleQuotes = 'has "double quotes" in it';
... но одиночные кавычки необходимо экранировать, если они находятся в строке, определенной одинарными кавычками:
const singleQuotes = 'has \'single quotes\' in it';
... иТо же самое верно для двойных кавычек в строке, определенной двойными кавычками:
const doubleQuotes = "has \"double quotes\" in it";
Вы видите escape-символы в выводе Jest
, потому что Jest
форматирует выходную строку с двойными кавычками вокруг нее, поэтому необходимо избегать двойных кавычек внутри нее.