UNPKG

faastjs

Version:

Serverless batch computing made simple.

59 lines 8.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ava_1 = require("ava"); const index_1 = require("../index"); const google_faast_1 = require("../src/google/google-faast"); const functions = require("./fixtures/functions"); const util_1 = require("./fixtures/util"); const util_google_1 = require("./fixtures/util-google"); (0, ava_1.default)("remote google garbage collector works for functions that are called", async (t) => { // Idea behind this test: create a faast module and make a call. Then // cleanup while leaving the resources in place. Then create another faast // module and set its retention to 0, and use a synthetic gc worker to // restrict what the garbage collector cleans up to the first function (to // avoid interference with other test resources). Verify the first faast // module's resources would be cleaned up, which shows that the garbage // collector did its job. const mod = await (0, index_1.faastGoogle)(functions, { mode: "queue", gc: "off", description: t.title }); await mod.functions.hello("gc-test"); await mod.cleanup({ deleteResources: false }); const mod2 = await (0, index_1.faastGoogle)(functions, { gc: "force", retentionInDays: 0, description: t.title, _gcWorker: async (work, services) => { if (work.trampoline === mod.state.resources.trampoline) { await (0, google_faast_1.defaultGcWorker)(work, services); } } }); await mod2.cleanup(); await (0, util_1.checkResourcesCleanedUp)(t, await (0, util_google_1.getGoogleResources)(mod)); await mod.cleanup(); }); (0, ava_1.default)("remote google garbage collector works for functions that are never called", async (t) => { const mod = await (0, index_1.faastGoogle)(functions, { mode: "queue", gc: "off", description: t.title }); await mod.cleanup({ deleteResources: false }); const mod2 = await (0, index_1.faastGoogle)(functions, { gc: "force", retentionInDays: 0, description: t.title, _gcWorker: async (work, services) => { if (work.trampoline === mod.state.resources.trampoline) { await (0, google_faast_1.defaultGcWorker)(work, services); } } }); await mod2.cleanup(); await (0, util_1.checkResourcesCleanedUp)(t, await (0, util_google_1.getGoogleResources)(mod)); await mod.cleanup(); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLWdjLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0L2dvb2dsZS1nYy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQXVCO0FBQ3ZCLG9DQUF1QztBQUN2Qyw2REFBNkQ7QUFDN0Qsa0RBQWtEO0FBQ2xELDBDQUEwRDtBQUMxRCx3REFBNEQ7QUFFNUQsSUFBQSxhQUFJLEVBQUMscUVBQXFFLEVBQUUsS0FBSyxFQUFDLENBQUMsRUFBQyxFQUFFO0lBQ2xGLHFFQUFxRTtJQUNyRSwwRUFBMEU7SUFDMUUsc0VBQXNFO0lBQ3RFLDBFQUEwRTtJQUMxRSx3RUFBd0U7SUFDeEUsdUVBQXVFO0lBQ3ZFLHlCQUF5QjtJQUN6QixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUEsbUJBQVcsRUFBQyxTQUFTLEVBQUU7UUFDckMsSUFBSSxFQUFFLE9BQU87UUFDYixFQUFFLEVBQUUsS0FBSztRQUNULFdBQVcsRUFBRSxDQUFDLENBQUMsS0FBSztLQUN2QixDQUFDLENBQUM7SUFDSCxNQUFNLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxtQkFBVyxFQUFDLFNBQVMsRUFBRTtRQUN0QyxFQUFFLEVBQUUsT0FBTztRQUNYLGVBQWUsRUFBRSxDQUFDO1FBQ2xCLFdBQVcsRUFBRSxDQUFDLENBQUMsS0FBSztRQUNwQixTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUNoQyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFO2dCQUNwRCxNQUFNLElBQUEsOEJBQWUsRUFBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDekM7UUFDTCxDQUFDO0tBQ0osQ0FBQyxDQUFDO0lBRUgsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDckIsTUFBTSxJQUFBLDhCQUF1QixFQUFDLENBQUMsRUFBRSxNQUFNLElBQUEsZ0NBQWtCLEVBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNoRSxNQUFNLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUN4QixDQUFDLENBQUMsQ0FBQztBQUVILElBQUEsYUFBSSxFQUFDLDJFQUEyRSxFQUFFLEtBQUssRUFBQyxDQUFDLEVBQUMsRUFBRTtJQUN4RixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUEsbUJBQVcsRUFBQyxTQUFTLEVBQUU7UUFDckMsSUFBSSxFQUFFLE9BQU87UUFDYixFQUFFLEVBQUUsS0FBSztRQUNULFdBQVcsRUFBRSxDQUFDLENBQUMsS0FBSztLQUN2QixDQUFDLENBQUM7SUFDSCxNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM5QyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsbUJBQVcsRUFBQyxTQUFTLEVBQUU7UUFDdEMsRUFBRSxFQUFFLE9BQU87UUFDWCxlQUFlLEVBQUUsQ0FBQztRQUNsQixXQUFXLEVBQUUsQ0FBQyxDQUFDLEtBQUs7UUFDcEIsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDaEMsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRTtnQkFDcEQsTUFBTSxJQUFBLDhCQUFlLEVBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQ3pDO1FBQ0wsQ0FBQztLQUNKLENBQUMsQ0FBQztJQUVILE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3JCLE1BQU0sSUFBQSw4QkFBdUIsRUFBQyxDQUFDLEVBQUUsTUFBTSxJQUFBLGdDQUFrQixFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEUsTUFBTSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDeEIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdGVzdCBmcm9tIFwiYXZhXCI7XG5pbXBvcnQgeyBmYWFzdEdvb2dsZSB9IGZyb20gXCIuLi9pbmRleFwiO1xuaW1wb3J0IHsgZGVmYXVsdEdjV29ya2VyIH0gZnJvbSBcIi4uL3NyYy9nb29nbGUvZ29vZ2xlLWZhYXN0XCI7XG5pbXBvcnQgKiBhcyBmdW5jdGlvbnMgZnJvbSBcIi4vZml4dHVyZXMvZnVuY3Rpb25zXCI7XG5pbXBvcnQgeyBjaGVja1Jlc291cmNlc0NsZWFuZWRVcCB9IGZyb20gXCIuL2ZpeHR1cmVzL3V0aWxcIjtcbmltcG9ydCB7IGdldEdvb2dsZVJlc291cmNlcyB9IGZyb20gXCIuL2ZpeHR1cmVzL3V0aWwtZ29vZ2xlXCI7XG5cbnRlc3QoXCJyZW1vdGUgZ29vZ2xlIGdhcmJhZ2UgY29sbGVjdG9yIHdvcmtzIGZvciBmdW5jdGlvbnMgdGhhdCBhcmUgY2FsbGVkXCIsIGFzeW5jIHQgPT4ge1xuICAgIC8vIElkZWEgYmVoaW5kIHRoaXMgdGVzdDogY3JlYXRlIGEgZmFhc3QgbW9kdWxlIGFuZCBtYWtlIGEgY2FsbC4gVGhlblxuICAgIC8vIGNsZWFudXAgd2hpbGUgbGVhdmluZyB0aGUgcmVzb3VyY2VzIGluIHBsYWNlLiBUaGVuIGNyZWF0ZSBhbm90aGVyIGZhYXN0XG4gICAgLy8gbW9kdWxlIGFuZCBzZXQgaXRzIHJldGVudGlvbiB0byAwLCBhbmQgdXNlIGEgc3ludGhldGljIGdjIHdvcmtlciB0b1xuICAgIC8vIHJlc3RyaWN0IHdoYXQgdGhlIGdhcmJhZ2UgY29sbGVjdG9yIGNsZWFucyB1cCB0byB0aGUgZmlyc3QgZnVuY3Rpb24gKHRvXG4gICAgLy8gYXZvaWQgaW50ZXJmZXJlbmNlIHdpdGggb3RoZXIgdGVzdCByZXNvdXJjZXMpLiBWZXJpZnkgdGhlIGZpcnN0IGZhYXN0XG4gICAgLy8gbW9kdWxlJ3MgcmVzb3VyY2VzIHdvdWxkIGJlIGNsZWFuZWQgdXAsIHdoaWNoIHNob3dzIHRoYXQgdGhlIGdhcmJhZ2VcbiAgICAvLyBjb2xsZWN0b3IgZGlkIGl0cyBqb2IuXG4gICAgY29uc3QgbW9kID0gYXdhaXQgZmFhc3RHb29nbGUoZnVuY3Rpb25zLCB7XG4gICAgICAgIG1vZGU6IFwicXVldWVcIixcbiAgICAgICAgZ2M6IFwib2ZmXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0LnRpdGxlXG4gICAgfSk7XG4gICAgYXdhaXQgbW9kLmZ1bmN0aW9ucy5oZWxsbyhcImdjLXRlc3RcIik7XG4gICAgYXdhaXQgbW9kLmNsZWFudXAoeyBkZWxldGVSZXNvdXJjZXM6IGZhbHNlIH0pO1xuICAgIGNvbnN0IG1vZDIgPSBhd2FpdCBmYWFzdEdvb2dsZShmdW5jdGlvbnMsIHtcbiAgICAgICAgZ2M6IFwiZm9yY2VcIixcbiAgICAgICAgcmV0ZW50aW9uSW5EYXlzOiAwLFxuICAgICAgICBkZXNjcmlwdGlvbjogdC50aXRsZSxcbiAgICAgICAgX2djV29ya2VyOiBhc3luYyAod29yaywgc2VydmljZXMpID0+IHtcbiAgICAgICAgICAgIGlmICh3b3JrLnRyYW1wb2xpbmUgPT09IG1vZC5zdGF0ZS5yZXNvdXJjZXMudHJhbXBvbGluZSkge1xuICAgICAgICAgICAgICAgIGF3YWl0IGRlZmF1bHRHY1dvcmtlcih3b3JrLCBzZXJ2aWNlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIGF3YWl0IG1vZDIuY2xlYW51cCgpO1xuICAgIGF3YWl0IGNoZWNrUmVzb3VyY2VzQ2xlYW5lZFVwKHQsIGF3YWl0IGdldEdvb2dsZVJlc291cmNlcyhtb2QpKTtcbiAgICBhd2FpdCBtb2QuY2xlYW51cCgpO1xufSk7XG5cbnRlc3QoXCJyZW1vdGUgZ29vZ2xlIGdhcmJhZ2UgY29sbGVjdG9yIHdvcmtzIGZvciBmdW5jdGlvbnMgdGhhdCBhcmUgbmV2ZXIgY2FsbGVkXCIsIGFzeW5jIHQgPT4ge1xuICAgIGNvbnN0IG1vZCA9IGF3YWl0IGZhYXN0R29vZ2xlKGZ1bmN0aW9ucywge1xuICAgICAgICBtb2RlOiBcInF1ZXVlXCIsXG4gICAgICAgIGdjOiBcIm9mZlwiLFxuICAgICAgICBkZXNjcmlwdGlvbjogdC50aXRsZVxuICAgIH0pO1xuICAgIGF3YWl0IG1vZC5jbGVhbnVwKHsgZGVsZXRlUmVzb3VyY2VzOiBmYWxzZSB9KTtcbiAgICBjb25zdCBtb2QyID0gYXdhaXQgZmFhc3RHb29nbGUoZnVuY3Rpb25zLCB7XG4gICAgICAgIGdjOiBcImZvcmNlXCIsXG4gICAgICAgIHJldGVudGlvbkluRGF5czogMCxcbiAgICAgICAgZGVzY3JpcHRpb246IHQudGl0bGUsXG4gICAgICAgIF9nY1dvcmtlcjogYXN5bmMgKHdvcmssIHNlcnZpY2VzKSA9PiB7XG4gICAgICAgICAgICBpZiAod29yay50cmFtcG9saW5lID09PSBtb2Quc3RhdGUucmVzb3VyY2VzLnRyYW1wb2xpbmUpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBkZWZhdWx0R2NXb3JrZXIod29yaywgc2VydmljZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBhd2FpdCBtb2QyLmNsZWFudXAoKTtcbiAgICBhd2FpdCBjaGVja1Jlc291cmNlc0NsZWFuZWRVcCh0LCBhd2FpdCBnZXRHb29nbGVSZXNvdXJjZXMobW9kKSk7XG4gICAgYXdhaXQgbW9kLmNsZWFudXAoKTtcbn0pO1xuIl19