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

177
Visualizações
broma TouchEvent TypeError: $ no es una función

Estoy escribiendo una prueba para una función MyFuntion y llama a otra función sendTouchEvent que instancia un TouchEvent.

 function sendTouchEvent(element, eventType) { const touch = new Touch({ ... }); const touchEvent = new TouchEvent(eventType, { ... }); element.dispatchEvent(touchEvent); }

Mi prueba es así:

 const { test, expect } = require("@jest/globals"); const fs = require('fs'); const chrome = require("sinon-chrome"); const { JSDOM } = require("jsdom"); const dom = new JSDOM() global.document = dom.window.document global.window = dom.window global.chrome = chrome global.MutationObserver = class { constructor(callback) {} disconnect() {} observe(element, initObject) {} }; jest.dontMock('jquery'); $ = jQuery = require("jquery"); global.$ = $ global.jQuery = jQuery const content = require("../content"); const data = require("./fixtures/data.json"); test("get data", () => { const mod = rewire("../content") mod.__set__('data', data) // mocking json data var el = document.createElement("div") el.innerHTML = html_str; // loaded before with fs.readFileSync expect(content.MyFunction(el)).toBe({}) })

Mi archivo jest.setup.js es así:

 $ = require("jquery"); global.$ = $; global.window.$ = $;

Y estoy recibiendo este error:

 TypeError: $ is not a function 207 | }); 208 | > 209 | const touchEvent = new TouchEvent(eventType, { | ^ 210 | cancelable: true, 211 | bubbles: true, 212 | touches: [touch], at extension/content.js:209:48 at Object.<anonymous> (extension/content.js:411:4) at Object.load (node_modules/rewire/lib/moduleEnv.js:55:18) at internalRewire (node_modules/rewire/lib/rewire.js:49:15) at rewire (node_modules/rewire/lib/index.js:11:12) at Object.<anonymous> (extension/tests/content.test.js:26:17)

Ya intenté burlarme de la función sendTouchEvent , pero no funciona. También intenté inyectar $ usando rewire mod.__set__ .

¿Alguien sabe cómo arreglar esto?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Descubrí que el problema era el rewire lib. Por alguna razón, estaba jugando con los eventos de la ventana. Lo elimino y cambio mi código para poder simular la variable de data sin volver a rewire

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