Я пытаюсь отобразить ошибку в тесте Jest, но он не показывает все уровни.
import util from 'util'
describe('Module', () => {
it('should show all levels WITHOUT util', () => {
const large = {
level1: {
level2: {
message: 'At level 2!',
level3: {
message: 'At level 3!',
level4: {
message: 'At level 4!',
level5: {
message: 'At level 5!',
},
},
},
},
},
}
console.dir(large, { depth: 5 })
})
it('should show all levels with util', () => {
const large = {
level1: {
level2: {
message: 'At level 2!',
level3: {
message: 'At level 3!',
level4: {
message: 'At level 4!',
level5: {
message: 'At level 5!',
},
},
},
},
},
}
console.dir(util.inspect(large, { depth: 5 }))
})
})
Это дает мне следующие результаты
{ level1: { level2: { message: 'At level 2!', level3: [Object] } } } { depth: 5 }
{ level1:
{ level2:
{ message: 'At level 2!',
level3:
{ message: 'At level 3!',
level4:
{ message: 'At level 4!', level5: { message: 'At level 5!' } } } } } }
Мне показалось, что console.dir уже должен был сделать это для меня, но первый тест, который я получаю [Object]
после глубины 2
Я даже создал простой тест вне Jest, и, похоже, он работает как ожидается для console.dir, кто-нибудь может объяснить, почему это происходит? Jest переопределяет, как dir ведет себя со своей собственной глубиной по умолчанию или что-то в этом роде?
const large = {
level1: {
level2: {
message: 'At level 2!',
level3: {
message: 'At level 3!',
level4: {
message: 'At level 4!',
level5: {
message: 'At level 5!',
},
},
},
},
},
}
console.dir(large, { depth: 5 })
Результат в ...
{ level1:
{ level2:
{ message: 'At level 2!',
level3:
{ message: 'At level 3!',
level4:
{ message: 'At level 4!', level5: { message: 'At level 5!' } } } } } }