Contexto
Necesito probar una función que publica eventos usando Google Pub/Sub:
const event = { data: Buffer.from(event_id).toString('base64'), }; const message = await pubSubClient.topic(topicName).publish(event); console.log(`Message ${message} published.`);
Problema
Mi función proporciona algunos registros si el evento se publica correctamente y me gustaría usar los registros para verificar si el comportamiento es correcto.
El problema es que no sé cómo simular la instancia de pub/sub en javascript y hacer que devuelva un valor específico o lanzar una excepción, dado y event_id.
Así que quiero referencias/indicadores para:
Ejemplo:
jest.mock('@google-cloud/pubsub', () => ({ __esModule: true, PubSub: jest.fn().mockImplementation(() => ({ topic: mockTopic, publish: mockPublish, })), })); test('succeeds to publish message when event_id is valid', () => { myFunction(anyEventId); expect(console.log).toBeCalledTimes(1); expect(console.log).toHaveBeenLastCalledWith( `Message published.` ); });
Referencia
https://cloud.google.com/functions/docs/samples/functions-pubsub-unit-test
https://jestjs.io/pt-BR/docs/mock-function-api#mockfnmockreturnvaluevalue