У меня есть код браузера, который использует нативную реализацию WebSocket aka
var socket = new WebSocket('ws://localhost:8080')
Хотя этот код отлично работает в моем браузере, я ожидаю, что он будет с треском проваливаться при запуске кода с помощью jest.
Но, что удивительно, у меня нет ошибки, и, похоже, она работает отлично.
Я также удивлен отсутствием лучшего вывода в консоли, я не могу осмотреть этот объект, чтобы увидеть, к чему у меня есть доступ.
test('should fail because I cannot see any WebSocket API in node.js doc', async () => {
await new Promise( resolve => {
const socket = new WebSocket('ws://localhost:8080')
socket.onopen = function( event ){
console.log( event )
console.log( socket )
console.log( socket.onopen )
resolve()
}
})
})
Создает следующий вывод:
console.log tests/socket/socket.test.js:5
Event { isTrusted: [Getter] }
console.log tests/socket/socket.test.js:6
WebSocket {}
console.log tests/socket/socket.test.js:7
[Function]
Почему это работает в шутку? Почему мне не нужно использовать такую библиотеку, как ws или socket.io, когда я тестирую код браузера в jest?
Это из-за шутки?