Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

159
Views
Cómo probar la función definida en el objeto de la ventana en Jest y mecanografiado

Estoy tratando de probar una llamada a una función definida en el objeto de ventana global. He mirado varios ejemplos, pero todavía no puedo ejecutar un caso de prueba simple.

api.ts

 import "./global.d"; const verifier = window.Verifier; export class Api { constructor(private readonly id: string) {} public fetchData() { return new Promise<object>((resolve, reject) => { verifier.request({ request: { id: this.id }, onSuccess: (data: object) => { resolve(data); }, onFailure: () => { reject("Error!"); } }); }); } }

Api.test.ts

 import { Api } from "./Api"; let windowSpy: any; describe("Test Apis", () => { beforeEach(() => { windowSpy = jest.spyOn(window, "window", "get"); }); afterEach(() => { windowSpy.mockRestore(); }); it("should call the function", () => { const mockedReplace = jest.fn(); windowSpy.mockImplementation(() => ({ Verifier: { request: mockedReplace } })); const api = new Api("123"); api.fetchData(); expect(mockedReplace).toHaveBeenCalled(); }); });

global.d.ts

 import { Verifier } from "./verifier"; declare global { interface Window { Verifier: Verifier; } }

verificador.d.ts

 type RequestPayload = { request: { id: string; }; onSuccess: (data: object) => void; onFailure: () => void; }; type verifyCode = number; export interface Verifier { request: (requestPayload: RequestPayload) => verifyCode; }

También he creado un ejemplo de codesandbox para una fácil referencia https://codesandbox.io/s/cranky-mccarthy-2jj622?file=/src/verifier.d.ts

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!