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

312
Views
Pruebas Jest que pasan individualmente pero fallan cuando se ejecutan juntas

Tengo algunas pruebas de Jest que pasan cuando se ejecutan individualmente pero fallan cuando se ejecutan juntas. Por lo que puedo decir, las pruebas son independientes, pero deben estar interactuando de alguna manera que me estoy perdiendo.

Las pruebas están probando un adaptador de conexión que intenta conectarse a un dispositivo BLE varias veces y solo devuelve una única conexión pendiente que se puede esperar o cancelar.

Aquí están las pruebas:

 test("connect returns pending connection", async () => { const adaptor = new MockAdaptor(); const pendingConnection = adaptor.connect("test"); expect(pendingConnection.id).toBe("test"); await pendingConnection.cancel(); }) test('connect success', async () => { const adaptor = new MockAdaptor(); const pendingConnection = adaptor.connect("test"); // TEST FAILING HERE const connection = await pendingConnection.connectionPromise as any; expect(connection).toBe("test"); })

Aquí está el código compartido por las pruebas:

 const getSuccessfulPendingConnection = () => ({ address: "test", connectionPromise: new Promise((resolve, _) => { setTimeout(() => resolve("test"), 1000) }), cancel: async () => {} }) const getFailedPendingConnection = () => ({ address: "test", connectionPromise: new Promise((_, reject) => { setTimeout(() => reject("connect failed"), 1000); }), cancel: async () => {} }) const getMockPendingConnection = (id: string) => { if(id === "test") { return getSuccessfulPendingConnection(); } return getFailedPendingConnection(); } class MockAdaptor { connect(id: string) { let rejectPromise = () => {}; let cancelConnection = async () => {}; let connectionCancelled = false; const connectionPromise = new Promise(async (resolve, reject) => { rejectPromise = () => { reject("Connection cancelled") connectionCancelled = true; }; let newConnection = undefined; while(!connectionCancelled) { try { const pendingConnection = getMockPendingConnection(id); cancelConnection = pendingConnection.cancel; newConnection = await pendingConnection.connectionPromise; return resolve(newConnection); } catch (error) { console.log('Connection failed', error); } } }); const cancel = async () => { rejectPromise(); await cancelConnection(); } return { id, connectionPromise, cancel, } } }

Cuando ejecuto estas pruebas juntas, 'conexión devuelve conexión pendiente' pasa, pero 'conexión exitosa' falla con el mensaje "Conexión cancelada".

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!