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

523
Visualizações
Jest URL.createObjectURL no es una función

Estoy desarrollando una aplicación reactJs. Estoy usando broma para probar mi aplicación. Quiero probar una función que descarga un blob.

Pero desafortunadamente recibo este error:

URL.createObjectURL no es una función

mi función de prueba:

 describe('download', () => { const documentIntial = { content: 'aaa' }; it('msSaveOrOpenBlob should not have been called when navigao is undefined', () => { window.navigator.msSaveOrOpenBlob = null; download(documentIntial); expect(window.navigator.msSaveOrOpenBlob).toHaveBeenCalledTimes(0); }); });

La función que quiero probar:

 export const download = document => { const blob = new Blob([base64ToArrayBuffer(document.content)], { type: 'application/pdf', }); if (window.navigator && window.navigator.msSaveOrOpenBlob) { window.navigator.msSaveOrOpenBlob(blob); return; } const fileURL = URL.createObjectURL(blob); window.open(fileURL); };
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Esto parecería ser tan simple como configurar la URL en Global in Jest. Algo como

 describe('download', () => { const documentIntial = { content: 'aaa' }; global.URL.createObjectURL = jest.fn(); it('msSaveOrOpenBlob should not have been called when navigao is undefined', () => { global.URL.createObjectURL = jest.fn(() => 'details'); window.navigator.msSaveOrOpenBlob = jest.fn(() => 'details'); download(documentIntial); expect(window.navigator.msSaveOrOpenBlob).toHaveBeenCalledTimes(1); }); });

Esto debería dar como resultado una prueba que también puede usar para verificar si se llamó a global.URL.createObjectURL . Como nota al margen: también puede encontrarse con un problema similar con window.open . Sugiero burlarse de eso también si este es el caso.

over 4 years ago · Santiago Trujillo Relatório

0

jsdom, la implementación de JavaScript de WHATWG DOM utilizada por jest aún no implementa este método.

Puede encontrar un ticket abierto sobre este problema exacto en su página de github donde se proporcionan algunas soluciones en los comentarios. Pero si necesita que blobURL funcione, tendrá que esperar a que se resuelva este FR.

Solución alternativa propuesta en los comentarios del problema por broma:

 function noOp () { } if (typeof window.URL.createObjectURL === 'undefined') { Object.defineProperty(window.URL, 'createObjectURL', { value: noOp}) }
over 4 years ago · Santiago Trujillo Relatório

0

Dado que window.URL.createObjectURL (todavía) no está disponible en jest-dom, debe proporcionarle una implementación simulada.

No olvide restablecer la implementación simulada después de cada prueba.

 describe("your test suite", () => { window.URL.createObjectURL = jest.fn(); afterEach(() => { window.URL.createObjectURL.mockReset(); }); it("your test case", () => { expect(true).toBeTruthy(); }); });
over 4 years ago · Santiago Trujillo 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