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