UNPKG

faastjs

Version:

Serverless batch computing made simple.

45 lines 7.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ava_1 = require("ava"); const fs_extra_1 = require("fs-extra"); const os_1 = require("os"); const path = require("path"); const uuid_1 = require("uuid"); /** * The point of this file is to ensure that whatever filesystem library is used, * it has required functionality for faast.js. Originally we had a custom fs * module, which was later replaced by fs-extra. Now these tests ensure that * fs-extra behaves as expected. */ (0, ava_1.default)(`fs module rmrf deletes directory recursively`, async (t) => { const tmp = path.join((0, os_1.tmpdir)(), (0, uuid_1.v4)()); const subdir = path.join(tmp, "subdir"); await (0, fs_extra_1.mkdir)(tmp); await (0, fs_extra_1.mkdir)(subdir); const file = path.join(subdir, "file.txt"); const stream = (0, fs_extra_1.createWriteStream)(file); await new Promise((resolve, reject) => stream.write("hello", err => (err ? reject(err) : resolve()))); stream.close(); t.true(await (0, fs_extra_1.pathExists)(file)); t.true(await (0, fs_extra_1.pathExists)(subdir)); t.true(await (0, fs_extra_1.pathExists)(tmp)); await (0, fs_extra_1.remove)(tmp); t.false(await (0, fs_extra_1.pathExists)(file)); t.false(await (0, fs_extra_1.pathExists)(subdir)); t.false(await (0, fs_extra_1.pathExists)(tmp)); }); (0, ava_1.default)("fs module mkdir succeeds on directories that already exist", async (t) => { const dir = path.join((0, os_1.tmpdir)(), "faast-test"); await t.notThrowsAsync((0, fs_extra_1.mkdirp)(dir)); await t.notThrowsAsync((0, fs_extra_1.mkdirp)(dir)); t.true(await (0, fs_extra_1.pathExists)(dir)); await (0, fs_extra_1.remove)(dir); }); (0, ava_1.default)("fs module mkdir recursive", async (t) => { const testDir = path.join((0, os_1.tmpdir)(), "faast-test2"); const dir = path.join(testDir, (0, uuid_1.v4)(), (0, uuid_1.v4)()); await (0, fs_extra_1.mkdirp)(dir); t.true(await (0, fs_extra_1.pathExists)(dir)); await (0, fs_extra_1.remove)(testDir); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdC1mcy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdC91bml0LWZzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2QkFBdUI7QUFDdkIsdUNBQWdGO0FBQ2hGLDJCQUE0QjtBQUM1Qiw2QkFBNkI7QUFDN0IsK0JBQW9DO0FBRXBDOzs7OztHQUtHO0FBRUgsSUFBQSxhQUFJLEVBQUMsOENBQThDLEVBQUUsS0FBSyxFQUFDLENBQUMsRUFBQyxFQUFFO0lBQzNELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBQSxXQUFNLEdBQUUsRUFBRSxJQUFBLFNBQU0sR0FBRSxDQUFDLENBQUM7SUFDMUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDeEMsTUFBTSxJQUFBLGdCQUFLLEVBQUMsR0FBRyxDQUFDLENBQUM7SUFDakIsTUFBTSxJQUFBLGdCQUFLLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDM0MsTUFBTSxNQUFNLEdBQUcsSUFBQSw0QkFBaUIsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxNQUFNLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQ3hDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUNoRSxDQUFDO0lBQ0YsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUEscUJBQVUsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFBLHFCQUFVLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBQSxxQkFBVSxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUIsTUFBTSxJQUFBLGlCQUFNLEVBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUEscUJBQVUsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2hDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFBLHFCQUFVLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNsQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBQSxxQkFBVSxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDbkMsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFBLGFBQUksRUFBQyw0REFBNEQsRUFBRSxLQUFLLEVBQUMsQ0FBQyxFQUFDLEVBQUU7SUFDekUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFBLFdBQU0sR0FBRSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzlDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFBLGlCQUFNLEVBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwQyxNQUFNLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBQSxpQkFBTSxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUEscUJBQVUsRUFBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlCLE1BQU0sSUFBQSxpQkFBTSxFQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3RCLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBQSxhQUFJLEVBQUMsMkJBQTJCLEVBQUUsS0FBSyxFQUFDLENBQUMsRUFBQyxFQUFFO0lBQ3hDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBQSxXQUFNLEdBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNuRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFBLFNBQU0sR0FBRSxFQUFFLElBQUEsU0FBTSxHQUFFLENBQUMsQ0FBQztJQUNuRCxNQUFNLElBQUEsaUJBQU0sRUFBQyxHQUFHLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBQSxxQkFBVSxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUIsTUFBTSxJQUFBLGlCQUFNLEVBQUMsT0FBTyxDQUFDLENBQUM7QUFDMUIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdGVzdCBmcm9tIFwiYXZhXCI7XG5pbXBvcnQgeyBjcmVhdGVXcml0ZVN0cmVhbSwgbWtkaXIsIG1rZGlycCwgcGF0aEV4aXN0cywgcmVtb3ZlIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgeyB0bXBkaXIgfSBmcm9tIFwib3NcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gXCJ1dWlkXCI7XG5cbi8qKlxuICogVGhlIHBvaW50IG9mIHRoaXMgZmlsZSBpcyB0byBlbnN1cmUgdGhhdCB3aGF0ZXZlciBmaWxlc3lzdGVtIGxpYnJhcnkgaXMgdXNlZCxcbiAqIGl0IGhhcyByZXF1aXJlZCBmdW5jdGlvbmFsaXR5IGZvciBmYWFzdC5qcy4gT3JpZ2luYWxseSB3ZSBoYWQgYSBjdXN0b20gZnNcbiAqIG1vZHVsZSwgd2hpY2ggd2FzIGxhdGVyIHJlcGxhY2VkIGJ5IGZzLWV4dHJhLiBOb3cgdGhlc2UgdGVzdHMgZW5zdXJlIHRoYXRcbiAqIGZzLWV4dHJhIGJlaGF2ZXMgYXMgZXhwZWN0ZWQuXG4gKi9cblxudGVzdChgZnMgbW9kdWxlIHJtcmYgZGVsZXRlcyBkaXJlY3RvcnkgcmVjdXJzaXZlbHlgLCBhc3luYyB0ID0+IHtcbiAgICBjb25zdCB0bXAgPSBwYXRoLmpvaW4odG1wZGlyKCksIHV1aWR2NCgpKTtcbiAgICBjb25zdCBzdWJkaXIgPSBwYXRoLmpvaW4odG1wLCBcInN1YmRpclwiKTtcbiAgICBhd2FpdCBta2Rpcih0bXApO1xuICAgIGF3YWl0IG1rZGlyKHN1YmRpcik7XG4gICAgY29uc3QgZmlsZSA9IHBhdGguam9pbihzdWJkaXIsIFwiZmlsZS50eHRcIik7XG4gICAgY29uc3Qgc3RyZWFtID0gY3JlYXRlV3JpdGVTdHJlYW0oZmlsZSk7XG4gICAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT5cbiAgICAgICAgc3RyZWFtLndyaXRlKFwiaGVsbG9cIiwgZXJyID0+IChlcnIgPyByZWplY3QoZXJyKSA6IHJlc29sdmUoKSkpXG4gICAgKTtcbiAgICBzdHJlYW0uY2xvc2UoKTtcbiAgICB0LnRydWUoYXdhaXQgcGF0aEV4aXN0cyhmaWxlKSk7XG4gICAgdC50cnVlKGF3YWl0IHBhdGhFeGlzdHMoc3ViZGlyKSk7XG4gICAgdC50cnVlKGF3YWl0IHBhdGhFeGlzdHModG1wKSk7XG4gICAgYXdhaXQgcmVtb3ZlKHRtcCk7XG4gICAgdC5mYWxzZShhd2FpdCBwYXRoRXhpc3RzKGZpbGUpKTtcbiAgICB0LmZhbHNlKGF3YWl0IHBhdGhFeGlzdHMoc3ViZGlyKSk7XG4gICAgdC5mYWxzZShhd2FpdCBwYXRoRXhpc3RzKHRtcCkpO1xufSk7XG5cbnRlc3QoXCJmcyBtb2R1bGUgbWtkaXIgc3VjY2VlZHMgb24gZGlyZWN0b3JpZXMgdGhhdCBhbHJlYWR5IGV4aXN0XCIsIGFzeW5jIHQgPT4ge1xuICAgIGNvbnN0IGRpciA9IHBhdGguam9pbih0bXBkaXIoKSwgXCJmYWFzdC10ZXN0XCIpO1xuICAgIGF3YWl0IHQubm90VGhyb3dzQXN5bmMobWtkaXJwKGRpcikpO1xuICAgIGF3YWl0IHQubm90VGhyb3dzQXN5bmMobWtkaXJwKGRpcikpO1xuICAgIHQudHJ1ZShhd2FpdCBwYXRoRXhpc3RzKGRpcikpO1xuICAgIGF3YWl0IHJlbW92ZShkaXIpO1xufSk7XG5cbnRlc3QoXCJmcyBtb2R1bGUgbWtkaXIgcmVjdXJzaXZlXCIsIGFzeW5jIHQgPT4ge1xuICAgIGNvbnN0IHRlc3REaXIgPSBwYXRoLmpvaW4odG1wZGlyKCksIFwiZmFhc3QtdGVzdDJcIik7XG4gICAgY29uc3QgZGlyID0gcGF0aC5qb2luKHRlc3REaXIsIHV1aWR2NCgpLCB1dWlkdjQoKSk7XG4gICAgYXdhaXQgbWtkaXJwKGRpcik7XG4gICAgdC50cnVlKGF3YWl0IHBhdGhFeGlzdHMoZGlyKSk7XG4gICAgYXdhaXQgcmVtb3ZlKHRlc3REaXIpO1xufSk7XG4iXX0=