Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

561
Visualizações
broma TypeError: indefinido no es iterable

Uso jest para ejecutar mi prueba de unidad, pero recibo un error.

 TypeError: Cannot read properties of undefined (reading 'getVideoTracks')

Cualquier sugerencia sobre cómo probar la siguiente línea en broma

 [videoTrack] = (await navigator.mediaDevices.getUserMedia({video: true})).getVideoTracks();

Mi archivo de prueba de unidad -

 import { Track } from './Track'; import { } from '../index'; const mockMediaDevices = { getUserMedia: jest.fn() }; Object.defineProperty(window.navigator, 'mediaDevices', { writable: true, value: mockMediaDevices, }); Object.defineProperty(navigator.mediaDevices.getUserMedia, 'getVideoTracks', { writable: true, value: jest.fn(), }); describe('Track', () => { describe('applyConstraints()', () => { let track: Track; let videoTrack: MediaStreamTrack; beforeEach(async () => { [videoTrack] = (await navigator.mediaDevices.getUserMedia({ video: true })).getVideoTracks(); track = new Track(videoTrack as MediaStreamTrack); }); it('should have applyConstraints method', () => { expect(typeof track.applyConstraints).toEqual('function'); }); }); });

Error detallado -

 TypeError: Cannot read properties of undefined (reading 'getVideoTracks') 67 | 68 | beforeEach(async () => { > 69 | [videoTrack] = (await navigator.mediaDevices.getUserMedia({video: true})).getVideoTracks(); | ^ 70 | track = new Track(videoTrack as MediaStreamTrack); 71 | }); 72 | at Object.<anonymous> (Media/Track/Track.test.ts:69:81)

He probado este código -

 const mockMediaDevices = { getUserMedia: jest.fn().mockReturnValue({ getVideoTracks: jest.fn() }) }; Object.defineProperty(navigator, 'mediaDevices', { writable: true, value: mockMediaDevices, });

Pero esto da un error -

 TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) 73 | 74 | beforeEach(async () => { > 75 | [videoTrack] = (await navigator.mediaDevices.getUserMedia({video: true})).getVideoTracks();
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

intenta cambiar este código:

 const mockMediaDevices = { getUserMedia: jest.fn() }; Object.defineProperty(window.navigator, 'mediaDevices', { writable: true, value: mockMediaDevices, }); Object.defineProperty(navigator.mediaDevices.getUserMedia, 'getVideoTracks', { writable: true, value: jest.fn(), });

a (EDITADO v2)

 const mockMediaDevices = { getUserMedia: () => Promise.resolve({ getVideoTracks: () => [jest.fn()], }), }; Object.defineProperty(window.navigator, 'mediaDevices', { writable: true, value: mockMediaDevices, }); beforeEach(async () => { const stream = await navigator.mediaDevices.getUserMedia({ video: true }); [videoTrack] = stream.getVideoTracks(); track = new Track(videoTrack as MediaStreamTrack); });

porque cuando destruye el resultado getVideoTracks() , elige el elemento en el índice 0. Pero jest.fn() no es una matriz que se pueda destruir como [videoTrack] = (await ....

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda