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

201
Visualizações
¿Por qué no se llama a la implementación de mi función simulada de broma?

Tengo la siguiente configuración de prueba de broma para mi colección de AWS JS Node Lambdas. Tengo un módulo llamado dynamoStore que hago referencia en varios paquetes lambdas diferentes.json y lo uso dentro de los lambdas. Estoy tratando de probar uno de estos lambdas burlándome del módulo de almacenamiento de dynamo mientras realiza llamadas a dynamoDb. El problema es que nunca se llama a la implementación de jest.fn Lo confirmé colocando un punto de interrupción en esa línea y registrando el valor que devuelven los métodos de llamada.

Cuando lambda1/index.js en el depurador getVehicleMetaKeysFromDeviceId() es un objeto de broma, pero cuando se llama, no usa mi implementación simulada

¿Cómo puedo hacer que esta implementación funcione? ¿He configurado mi simulacro incorrectamente?

dynamoStore/vehículoMetaRestricciones

 exports.getVehicleMetaKeysFromDeviceId= async (data) => { return data };

dynamoStore/index.js

 exports.vehicleMetaConstraints = require("./vehicleMetaConstraints"); ...

lambda1/index.js

 const { vehicleMetaStore } = require("dynamo-store"); exports.handler = async (event, context, callback) => { const message = event; let vehicle_ids = await vehicleMetaStore.getVehicleMetaKeysFromDeviceId(message.id); // vehicle_ids end up undefined when running the test }

lambda1/index.prueba.js

 const { vehicleMetaStore } = require("dynamo-store"); jest.mock("dynamo-store", () => { return { vehicleMetaStore: { getVehicleMetaKeysFromDeviceId: jest.fn(), }, }; }); describe("VehicleStorageLambda", () => { beforeEach(() => { jest.resetModules(); process.env = { ...env }; }); afterEach(() => { jest.clearAllMocks(); }); test("Handles first time publish with existing device", async () => { let functionHandler = require("./index"); vehicleMetaStore.getVehicleMetaKeysFromDeviceId.mockImplementationOnce(() => // This never gets called Promise.resolve({ device_id: "333936303238510e00210022", }) ); await functionHandler.handler({}); }); });
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Elimina la llamada a jest.resetModules() en beforeEach . Eso es volver a importar sus módulos antes de cada prueba y eliminar sus simulacros.

https://stackoverflow.com/a/59792748/3084820

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