1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const ava_1 = require("ava");
|
4 | const index_1 = require("../index");
|
5 | const google_faast_1 = require("../src/google/google-faast");
|
6 | const functions = require("./fixtures/functions");
|
7 | const util_1 = require("./fixtures/util");
|
8 | const util_google_1 = require("./fixtures/util-google");
|
9 | (0, ava_1.default)("remote google garbage collector works for functions that are called", async (t) => {
|
10 | // Idea behind this test: create a faast module and make a call. Then
|
11 | // cleanup while leaving the resources in place. Then create another faast
|
12 | // module and set its retention to 0, and use a synthetic gc worker to
|
13 | // restrict what the garbage collector cleans up to the first function (to
|
14 | // avoid interference with other test resources). Verify the first faast
|
15 | // module's resources would be cleaned up, which shows that the garbage
|
16 | // collector did its job.
|
17 | const mod = await (0, index_1.faastGoogle)(functions, {
|
18 | mode: "queue",
|
19 | gc: "off",
|
20 | description: t.title
|
21 | });
|
22 | await mod.functions.hello("gc-test");
|
23 | await mod.cleanup({ deleteResources: false });
|
24 | const mod2 = await (0, index_1.faastGoogle)(functions, {
|
25 | gc: "force",
|
26 | retentionInDays: 0,
|
27 | description: t.title,
|
28 | _gcWorker: async (work, services) => {
|
29 | if (work.trampoline === mod.state.resources.trampoline) {
|
30 | await (0, google_faast_1.defaultGcWorker)(work, services);
|
31 | }
|
32 | }
|
33 | });
|
34 | await mod2.cleanup();
|
35 | await (0, util_1.checkResourcesCleanedUp)(t, await (0, util_google_1.getGoogleResources)(mod));
|
36 | await mod.cleanup();
|
37 | });
|
38 | (0, ava_1.default)("remote google garbage collector works for functions that are never called", async (t) => {
|
39 | const mod = await (0, index_1.faastGoogle)(functions, {
|
40 | mode: "queue",
|
41 | gc: "off",
|
42 | description: t.title
|
43 | });
|
44 | await mod.cleanup({ deleteResources: false });
|
45 | const mod2 = await (0, index_1.faastGoogle)(functions, {
|
46 | gc: "force",
|
47 | retentionInDays: 0,
|
48 | description: t.title,
|
49 | _gcWorker: async (work, services) => {
|
50 | if (work.trampoline === mod.state.resources.trampoline) {
|
51 | await (0, google_faast_1.defaultGcWorker)(work, services);
|
52 | }
|
53 | }
|
54 | });
|
55 | await mod2.cleanup();
|
56 | await (0, util_1.checkResourcesCleanedUp)(t, await (0, util_google_1.getGoogleResources)(mod));
|
57 | await mod.cleanup();
|
58 | });
|
59 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLWdjLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0L2dvb2dsZS1nYy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQXVCO0FBQ3ZCLG9DQUF1QztBQUN2Qyw2REFBNkQ7QUFDN0Qsa0RBQWtEO0FBQ2xELDBDQUEwRDtBQUMxRCx3REFBNEQ7QUFFNUQsSUFBQSxhQUFJLEVBQUMscUVBQXFFLEVBQUUsS0FBSyxFQUFDLENBQUMsRUFBQyxFQUFFO0lBQ2xGLHFFQUFxRTtJQUNyRSwwRUFBMEU7SUFDMUUsc0VBQXNFO0lBQ3RFLDBFQUEwRTtJQUMxRSx3RUFBd0U7SUFDeEUsdUVBQXVFO0lBQ3ZFLHlCQUF5QjtJQUN6QixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUEsbUJBQVcsRUFBQyxTQUFTLEVBQUU7UUFDckMsSUFBSSxFQUFFLE9BQU87UUFDYixFQUFFLEVBQUUsS0FBSztRQUNULFdBQVcsRUFBRSxDQUFDLENBQUMsS0FBSztLQUN2QixDQUFDLENBQUM7SUFDSCxNQUFNLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxtQkFBVyxFQUFDLFNBQVMsRUFBRTtRQUN0QyxFQUFFLEVBQUUsT0FBTztRQUNYLGVBQWUsRUFBRSxDQUFDO1FBQ2xCLFdBQVcsRUFBRSxDQUFDLENBQUMsS0FBSztRQUNwQixTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUNoQyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFO2dCQUNwRCxNQUFNLElBQUEsOEJBQWUsRUFBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDekM7UUFDTCxDQUFDO0tBQ0osQ0FBQyxDQUFDO0lBRUgsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDckIsTUFBTSxJQUFBLDhCQUF1QixFQUFDLENBQUMsRUFBRSxNQUFNLElBQUEsZ0NBQWtCLEVBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNoRSxNQUFNLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUN4QixDQUFDLENBQUMsQ0FBQztBQUVILElBQUEsYUFBSSxFQUFDLDJFQUEyRSxFQUFFLEtBQUssRUFBQyxDQUFDLEVBQUMsRUFBRTtJQUN4RixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUEsbUJBQVcsRUFBQyxTQUFTLEVBQUU7UUFDckMsSUFBSSxFQUFFLE9BQU87UUFDYixFQUFFLEVBQUUsS0FBSztRQUNULFdBQVcsRUFBRSxDQUFDLENBQUMsS0FBSztLQUN2QixDQUFDLENBQUM7SUFDSCxNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM5QyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsbUJBQVcsRUFBQyxTQUFTLEVBQUU7UUFDdEMsRUFBRSxFQUFFLE9BQU87UUFDWCxlQUFlLEVBQUUsQ0FBQztRQUNsQixXQUFXLEVBQUUsQ0FBQyxDQUFDLEtBQUs7UUFDcEIsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDaEMsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRTtnQkFDcEQsTUFBTSxJQUFBLDhCQUFlLEVBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQ3pDO1FBQ0wsQ0FBQztLQUNKLENBQUMsQ0FBQztJQUVILE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3JCLE1BQU0sSUFBQSw4QkFBdUIsRUFBQyxDQUFDLEVBQUUsTUFBTSxJQUFBLGdDQUFrQixFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEUsTUFBTSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDeEIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdGVzdCBmcm9tIFwiYXZhXCI7XG5pbXBvcnQgeyBmYWFzdEdvb2dsZSB9IGZyb20gXCIuLi9pbmRleFwiO1xuaW1wb3J0IHsgZGVmYXVsdEdjV29ya2VyIH0gZnJvbSBcIi4uL3NyYy9nb29nbGUvZ29vZ2xlLWZhYXN0XCI7XG5pbXBvcnQgKiBhcyBmdW5jdGlvbnMgZnJvbSBcIi4vZml4dHVyZXMvZnVuY3Rpb25zXCI7XG5pbXBvcnQgeyBjaGVja1Jlc291cmNlc0NsZWFuZWRVcCB9IGZyb20gXCIuL2ZpeHR1cmVzL3V0aWxcIjtcbmltcG9ydCB7IGdldEdvb2dsZVJlc291cmNlcyB9IGZyb20gXCIuL2ZpeHR1cmVzL3V0aWwtZ29vZ2xlXCI7XG5cbnRlc3QoXCJyZW1vdGUgZ29vZ2xlIGdhcmJhZ2UgY29sbGVjdG9yIHdvcmtzIGZvciBmdW5jdGlvbnMgdGhhdCBhcmUgY2FsbGVkXCIsIGFzeW5jIHQgPT4ge1xuICAgIC8vIElkZWEgYmVoaW5kIHRoaXMgdGVzdDogY3JlYXRlIGEgZmFhc3QgbW9kdWxlIGFuZCBtYWtlIGEgY2FsbC4gVGhlblxuICAgIC8vIGNsZWFudXAgd2hpbGUgbGVhdmluZyB0aGUgcmVzb3VyY2VzIGluIHBsYWNlLiBUaGVuIGNyZWF0ZSBhbm90aGVyIGZhYXN0XG4gICAgLy8gbW9kdWxlIGFuZCBzZXQgaXRzIHJldGVudGlvbiB0byAwLCBhbmQgdXNlIGEgc3ludGhldGljIGdjIHdvcmtlciB0b1xuICAgIC8vIHJlc3RyaWN0IHdoYXQgdGhlIGdhcmJhZ2UgY29sbGVjdG9yIGNsZWFucyB1cCB0byB0aGUgZmlyc3QgZnVuY3Rpb24gKHRvXG4gICAgLy8gYXZvaWQgaW50ZXJmZXJlbmNlIHdpdGggb3RoZXIgdGVzdCByZXNvdXJjZXMpLiBWZXJpZnkgdGhlIGZpcnN0IGZhYXN0XG4gICAgLy8gbW9kdWxlJ3MgcmVzb3VyY2VzIHdvdWxkIGJlIGNsZWFuZWQgdXAsIHdoaWNoIHNob3dzIHRoYXQgdGhlIGdhcmJhZ2VcbiAgICAvLyBjb2xsZWN0b3IgZGlkIGl0cyBqb2IuXG4gICAgY29uc3QgbW9kID0gYXdhaXQgZmFhc3RHb29nbGUoZnVuY3Rpb25zLCB7XG4gICAgICAgIG1vZGU6IFwicXVldWVcIixcbiAgICAgICAgZ2M6IFwib2ZmXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0LnRpdGxlXG4gICAgfSk7XG4gICAgYXdhaXQgbW9kLmZ1bmN0aW9ucy5oZWxsbyhcImdjLXRlc3RcIik7XG4gICAgYXdhaXQgbW9kLmNsZWFudXAoeyBkZWxldGVSZXNvdXJjZXM6IGZhbHNlIH0pO1xuICAgIGNvbnN0IG1vZDIgPSBhd2FpdCBmYWFzdEdvb2dsZShmdW5jdGlvbnMsIHtcbiAgICAgICAgZ2M6IFwiZm9yY2VcIixcbiAgICAgICAgcmV0ZW50aW9uSW5EYXlzOiAwLFxuICAgICAgICBkZXNjcmlwdGlvbjogdC50aXRsZSxcbiAgICAgICAgX2djV29ya2VyOiBhc3luYyAod29yaywgc2VydmljZXMpID0+IHtcbiAgICAgICAgICAgIGlmICh3b3JrLnRyYW1wb2xpbmUgPT09IG1vZC5zdGF0ZS5yZXNvdXJjZXMudHJhbXBvbGluZSkge1xuICAgICAgICAgICAgICAgIGF3YWl0IGRlZmF1bHRHY1dvcmtlcih3b3JrLCBzZXJ2aWNlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIGF3YWl0IG1vZDIuY2xlYW51cCgpO1xuICAgIGF3YWl0IGNoZWNrUmVzb3VyY2VzQ2xlYW5lZFVwKHQsIGF3YWl0IGdldEdvb2dsZVJlc291cmNlcyhtb2QpKTtcbiAgICBhd2FpdCBtb2QuY2xlYW51cCgpO1xufSk7XG5cbnRlc3QoXCJyZW1vdGUgZ29vZ2xlIGdhcmJhZ2UgY29sbGVjdG9yIHdvcmtzIGZvciBmdW5jdGlvbnMgdGhhdCBhcmUgbmV2ZXIgY2FsbGVkXCIsIGFzeW5jIHQgPT4ge1xuICAgIGNvbnN0IG1vZCA9IGF3YWl0IGZhYXN0R29vZ2xlKGZ1bmN0aW9ucywge1xuICAgICAgICBtb2RlOiBcInF1ZXVlXCIsXG4gICAgICAgIGdjOiBcIm9mZlwiLFxuICAgICAgICBkZXNjcmlwdGlvbjogdC50aXRsZVxuICAgIH0pO1xuICAgIGF3YWl0IG1vZC5jbGVhbnVwKHsgZGVsZXRlUmVzb3VyY2VzOiBmYWxzZSB9KTtcbiAgICBjb25zdCBtb2QyID0gYXdhaXQgZmFhc3RHb29nbGUoZnVuY3Rpb25zLCB7XG4gICAgICAgIGdjOiBcImZvcmNlXCIsXG4gICAgICAgIHJldGVudGlvbkluRGF5czogMCxcbiAgICAgICAgZGVzY3JpcHRpb246IHQudGl0bGUsXG4gICAgICAgIF9nY1dvcmtlcjogYXN5bmMgKHdvcmssIHNlcnZpY2VzKSA9PiB7XG4gICAgICAgICAgICBpZiAod29yay50cmFtcG9saW5lID09PSBtb2Quc3RhdGUucmVzb3VyY2VzLnRyYW1wb2xpbmUpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBkZWZhdWx0R2NXb3JrZXIod29yaywgc2VydmljZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBhd2FpdCBtb2QyLmNsZWFudXAoKTtcbiAgICBhd2FpdCBjaGVja1Jlc291cmNlc0NsZWFuZWRVcCh0LCBhd2FpdCBnZXRHb29nbGVSZXNvdXJjZXMobW9kKSk7XG4gICAgYXdhaXQgbW9kLmNsZWFudXAoKTtcbn0pO1xuIl19 |
\ | No newline at end of file |