serverless-spy
Version:
CDK-based library for writing elegant integration tests on AWS serverless architecture and an additional web console to monitor events in real time.
55 lines (47 loc) • 3.86 kB
JavaScript
"use strict";
/*
// import { ServerlessSpyListener } from "./ServerlessSpyListener";
type CustomMatcherResult = {
message: () => string;
pass: boolean;
};
export const toReceiveEvent = async (
spy: any,
serviceKey: string,
condition?: (data: any) => boolean
): Promise<CustomMatcherResult> => {
console.log('NOTRI');
await sleep(3000);
// console.log("SPY", spy);
// const events = await spy.awaitEvents((events) => {
// return events.some((event) => event["detail-type"] === expected);
// });
// const pass = events.some((event) => event["detail-type"] === expected);
// const message = pass
// ? () => {
// return (
// matcherHint("toHaveEventWithDetailType", "eventsSpy", "detail-type") +
// "\n\n" +
// `Expected: not ${printExpected(expected)}\n` +
// `Number of events: ${printReceived(events.length)}`
// );
// }
// : () => {
// return (
// matcherHint("toHaveEventWithDetailType", "eventsSpy", "detail-type") +
// "\n\n" +
// `Expected: ${printExpected(expected)}\n` +
// (events.length > 0
// ? `Received: ${printReceived(events[0]?.["detail-type"])}`
// : `Number of events: ${printReceived(events.length)}`)
// );
// };
return { message: () => 'OK', pass: true };
};
function sleep(ms: number) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
}
*/
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2hlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saXN0ZW5lci9tYXRjaGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFvREUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuLy8gaW1wb3J0IHsgU2VydmVybGVzc1NweUxpc3RlbmVyIH0gZnJvbSBcIi4vU2VydmVybGVzc1NweUxpc3RlbmVyXCI7XG5cbnR5cGUgQ3VzdG9tTWF0Y2hlclJlc3VsdCA9IHtcbiAgbWVzc2FnZTogKCkgPT4gc3RyaW5nO1xuICBwYXNzOiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IHRvUmVjZWl2ZUV2ZW50ID0gYXN5bmMgKFxuICBzcHk6IGFueSxcbiAgc2VydmljZUtleTogc3RyaW5nLFxuICBjb25kaXRpb24/OiAoZGF0YTogYW55KSA9PiBib29sZWFuXG4pOiBQcm9taXNlPEN1c3RvbU1hdGNoZXJSZXN1bHQ+ID0+IHtcbiAgY29uc29sZS5sb2coJ05PVFJJJyk7XG5cbiAgYXdhaXQgc2xlZXAoMzAwMCk7XG5cbiAgLy8gY29uc29sZS5sb2coXCJTUFlcIiwgc3B5KTtcbiAgLy8gY29uc3QgZXZlbnRzID0gYXdhaXQgc3B5LmF3YWl0RXZlbnRzKChldmVudHMpID0+IHtcbiAgLy8gICByZXR1cm4gZXZlbnRzLnNvbWUoKGV2ZW50KSA9PiBldmVudFtcImRldGFpbC10eXBlXCJdID09PSBleHBlY3RlZCk7XG4gIC8vIH0pO1xuXG4gIC8vIGNvbnN0IHBhc3MgPSBldmVudHMuc29tZSgoZXZlbnQpID0+IGV2ZW50W1wiZGV0YWlsLXR5cGVcIl0gPT09IGV4cGVjdGVkKTtcblxuICAvLyBjb25zdCBtZXNzYWdlID0gcGFzc1xuICAvLyAgID8gKCkgPT4ge1xuICAvLyAgICAgICByZXR1cm4gKFxuICAvLyAgICAgICAgIG1hdGNoZXJIaW50KFwidG9IYXZlRXZlbnRXaXRoRGV0YWlsVHlwZVwiLCBcImV2ZW50c1NweVwiLCBcImRldGFpbC10eXBlXCIpICtcbiAgLy8gICAgICAgICBcIlxcblxcblwiICtcbiAgLy8gICAgICAgICBgRXhwZWN0ZWQ6IG5vdCAke3ByaW50RXhwZWN0ZWQoZXhwZWN0ZWQpfVxcbmAgK1xuICAvLyAgICAgICAgIGBOdW1iZXIgb2YgZXZlbnRzOiAke3ByaW50UmVjZWl2ZWQoZXZlbnRzLmxlbmd0aCl9YFxuICAvLyAgICAgICApO1xuICAvLyAgICAgfVxuICAvLyAgIDogKCkgPT4ge1xuICAvLyAgICAgICByZXR1cm4gKFxuICAvLyAgICAgICAgIG1hdGNoZXJIaW50KFwidG9IYXZlRXZlbnRXaXRoRGV0YWlsVHlwZVwiLCBcImV2ZW50c1NweVwiLCBcImRldGFpbC10eXBlXCIpICtcbiAgLy8gICAgICAgICBcIlxcblxcblwiICtcbiAgLy8gICAgICAgICBgRXhwZWN0ZWQ6ICR7cHJpbnRFeHBlY3RlZChleHBlY3RlZCl9XFxuYCArXG4gIC8vICAgICAgICAgKGV2ZW50cy5sZW5ndGggPiAwXG4gIC8vICAgICAgICAgICA/IGBSZWNlaXZlZDogJHtwcmludFJlY2VpdmVkKGV2ZW50c1swXT8uW1wiZGV0YWlsLXR5cGVcIl0pfWBcbiAgLy8gICAgICAgICAgIDogYE51bWJlciBvZiBldmVudHM6ICR7cHJpbnRSZWNlaXZlZChldmVudHMubGVuZ3RoKX1gKVxuICAvLyAgICAgICApO1xuICAvLyAgICAgfTtcblxuICByZXR1cm4geyBtZXNzYWdlOiAoKSA9PiAnT0snLCBwYXNzOiB0cnVlIH07XG59O1xuXG5mdW5jdGlvbiBzbGVlcChtczogbnVtYmVyKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIHNldFRpbWVvdXQocmVzb2x2ZSwgbXMpO1xuICB9KTtcbn1cbiovXG4iXX0=