UNPKG

7.33 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const ava_1 = require("ava");
4const fs_extra_1 = require("fs-extra");
5const os_1 = require("os");
6const path = require("path");
7const uuid_1 = require("uuid");
8/**
9 * The point of this file is to ensure that whatever filesystem library is used,
10 * it has required functionality for faast.js. Originally we had a custom fs
11 * module, which was later replaced by fs-extra. Now these tests ensure that
12 * fs-extra behaves as expected.
13 */
14(0, ava_1.default)(`fs module rmrf deletes directory recursively`, async (t) => {
15 const tmp = path.join((0, os_1.tmpdir)(), (0, uuid_1.v4)());
16 const subdir = path.join(tmp, "subdir");
17 await (0, fs_extra_1.mkdir)(tmp);
18 await (0, fs_extra_1.mkdir)(subdir);
19 const file = path.join(subdir, "file.txt");
20 const stream = (0, fs_extra_1.createWriteStream)(file);
21 await new Promise((resolve, reject) => stream.write("hello", err => (err ? reject(err) : resolve())));
22 stream.close();
23 t.true(await (0, fs_extra_1.pathExists)(file));
24 t.true(await (0, fs_extra_1.pathExists)(subdir));
25 t.true(await (0, fs_extra_1.pathExists)(tmp));
26 await (0, fs_extra_1.remove)(tmp);
27 t.false(await (0, fs_extra_1.pathExists)(file));
28 t.false(await (0, fs_extra_1.pathExists)(subdir));
29 t.false(await (0, fs_extra_1.pathExists)(tmp));
30});
31(0, ava_1.default)("fs module mkdir succeeds on directories that already exist", async (t) => {
32 const dir = path.join((0, os_1.tmpdir)(), "faast-test");
33 await t.notThrowsAsync((0, fs_extra_1.mkdirp)(dir));
34 await t.notThrowsAsync((0, fs_extra_1.mkdirp)(dir));
35 t.true(await (0, fs_extra_1.pathExists)(dir));
36 await (0, fs_extra_1.remove)(dir);
37});
38(0, ava_1.default)("fs module mkdir recursive", async (t) => {
39 const testDir = path.join((0, os_1.tmpdir)(), "faast-test2");
40 const dir = path.join(testDir, (0, uuid_1.v4)(), (0, uuid_1.v4)());
41 await (0, fs_extra_1.mkdirp)(dir);
42 t.true(await (0, fs_extra_1.pathExists)(dir));
43 await (0, fs_extra_1.remove)(testDir);
44});
45//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdC1mcy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdC91bml0LWZzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2QkFBdUI7QUFDdkIsdUNBQWdGO0FBQ2hGLDJCQUE0QjtBQUM1Qiw2QkFBNkI7QUFDN0IsK0JBQW9DO0FBRXBDOzs7OztHQUtHO0FBRUgsSUFBQSxhQUFJLEVBQUMsOENBQThDLEVBQUUsS0FBSyxFQUFDLENBQUMsRUFBQyxFQUFFO0lBQzNELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBQSxXQUFNLEdBQUUsRUFBRSxJQUFBLFNBQU0sR0FBRSxDQUFDLENBQUM7SUFDMUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDeEMsTUFBTSxJQUFBLGdCQUFLLEVBQUMsR0FBRyxDQUFDLENBQUM7SUFDakIsTUFBTSxJQUFBLGdCQUFLLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDM0MsTUFBTSxNQUFNLEdBQUcsSUFBQSw0QkFBaUIsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxNQUFNLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQ3hDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUNoRSxDQUFDO0lBQ0YsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUEscUJBQVUsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFBLHFCQUFVLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBQSxxQkFBVSxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUIsTUFBTSxJQUFBLGlCQUFNLEVBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUEscUJBQVUsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2hDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFBLHFCQUFVLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNsQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBQSxxQkFBVSxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDbkMsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFBLGFBQUksRUFBQyw0REFBNEQsRUFBRSxLQUFLLEVBQUMsQ0FBQyxFQUFDLEVBQUU7SUFDekUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFBLFdBQU0sR0FBRSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzlDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFBLGlCQUFNLEVBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwQyxNQUFNLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBQSxpQkFBTSxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUEscUJBQVUsRUFBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlCLE1BQU0sSUFBQSxpQkFBTSxFQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3RCLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBQSxhQUFJLEVBQUMsMkJBQTJCLEVBQUUsS0FBSyxFQUFDLENBQUMsRUFBQyxFQUFFO0lBQ3hDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBQSxXQUFNLEdBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNuRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFBLFNBQU0sR0FBRSxFQUFFLElBQUEsU0FBTSxHQUFFLENBQUMsQ0FBQztJQUNuRCxNQUFNLElBQUEsaUJBQU0sRUFBQyxHQUFHLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBQSxxQkFBVSxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUIsTUFBTSxJQUFBLGlCQUFNLEVBQUMsT0FBTyxDQUFDLENBQUM7QUFDMUIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdGVzdCBmcm9tIFwiYXZhXCI7XG5pbXBvcnQgeyBjcmVhdGVXcml0ZVN0cmVhbSwgbWtkaXIsIG1rZGlycCwgcGF0aEV4aXN0cywgcmVtb3ZlIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgeyB0bXBkaXIgfSBmcm9tIFwib3NcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gXCJ1dWlkXCI7XG5cbi8qKlxuICogVGhlIHBvaW50IG9mIHRoaXMgZmlsZSBpcyB0byBlbnN1cmUgdGhhdCB3aGF0ZXZlciBmaWxlc3lzdGVtIGxpYnJhcnkgaXMgdXNlZCxcbiAqIGl0IGhhcyByZXF1aXJlZCBmdW5jdGlvbmFsaXR5IGZvciBmYWFzdC5qcy4gT3JpZ2luYWxseSB3ZSBoYWQgYSBjdXN0b20gZnNcbiAqIG1vZHVsZSwgd2hpY2ggd2FzIGxhdGVyIHJlcGxhY2VkIGJ5IGZzLWV4dHJhLiBOb3cgdGhlc2UgdGVzdHMgZW5zdXJlIHRoYXRcbiAqIGZzLWV4dHJhIGJlaGF2ZXMgYXMgZXhwZWN0ZWQuXG4gKi9cblxudGVzdChgZnMgbW9kdWxlIHJtcmYgZGVsZXRlcyBkaXJlY3RvcnkgcmVjdXJzaXZlbHlgLCBhc3luYyB0ID0+IHtcbiAgICBjb25zdCB0bXAgPSBwYXRoLmpvaW4odG1wZGlyKCksIHV1aWR2NCgpKTtcbiAgICBjb25zdCBzdWJkaXIgPSBwYXRoLmpvaW4odG1wLCBcInN1YmRpclwiKTtcbiAgICBhd2FpdCBta2Rpcih0bXApO1xuICAgIGF3YWl0IG1rZGlyKHN1YmRpcik7XG4gICAgY29uc3QgZmlsZSA9IHBhdGguam9pbihzdWJkaXIsIFwiZmlsZS50eHRcIik7XG4gICAgY29uc3Qgc3RyZWFtID0gY3JlYXRlV3JpdGVTdHJlYW0oZmlsZSk7XG4gICAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT5cbiAgICAgICAgc3RyZWFtLndyaXRlKFwiaGVsbG9cIiwgZXJyID0+IChlcnIgPyByZWplY3QoZXJyKSA6IHJlc29sdmUoKSkpXG4gICAgKTtcbiAgICBzdHJlYW0uY2xvc2UoKTtcbiAgICB0LnRydWUoYXdhaXQgcGF0aEV4aXN0cyhmaWxlKSk7XG4gICAgdC50cnVlKGF3YWl0IHBhdGhFeGlzdHMoc3ViZGlyKSk7XG4gICAgdC50cnVlKGF3YWl0IHBhdGhFeGlzdHModG1wKSk7XG4gICAgYXdhaXQgcmVtb3ZlKHRtcCk7XG4gICAgdC5mYWxzZShhd2FpdCBwYXRoRXhpc3RzKGZpbGUpKTtcbiAgICB0LmZhbHNlKGF3YWl0IHBhdGhFeGlzdHMoc3ViZGlyKSk7XG4gICAgdC5mYWxzZShhd2FpdCBwYXRoRXhpc3RzKHRtcCkpO1xufSk7XG5cbnRlc3QoXCJmcyBtb2R1bGUgbWtkaXIgc3VjY2VlZHMgb24gZGlyZWN0b3JpZXMgdGhhdCBhbHJlYWR5IGV4aXN0XCIsIGFzeW5jIHQgPT4ge1xuICAgIGNvbnN0IGRpciA9IHBhdGguam9pbih0bXBkaXIoKSwgXCJmYWFzdC10ZXN0XCIpO1xuICAgIGF3YWl0IHQubm90VGhyb3dzQXN5bmMobWtkaXJwKGRpcikpO1xuICAgIGF3YWl0IHQubm90VGhyb3dzQXN5bmMobWtkaXJwKGRpcikpO1xuICAgIHQudHJ1ZShhd2FpdCBwYXRoRXhpc3RzKGRpcikpO1xuICAgIGF3YWl0IHJlbW92ZShkaXIpO1xufSk7XG5cbnRlc3QoXCJmcyBtb2R1bGUgbWtkaXIgcmVjdXJzaXZlXCIsIGFzeW5jIHQgPT4ge1xuICAgIGNvbnN0IHRlc3REaXIgPSBwYXRoLmpvaW4odG1wZGlyKCksIFwiZmFhc3QtdGVzdDJcIik7XG4gICAgY29uc3QgZGlyID0gcGF0aC5qb2luKHRlc3REaXIsIHV1aWR2NCgpLCB1dWlkdjQoKSk7XG4gICAgYXdhaXQgbWtkaXJwKGRpcik7XG4gICAgdC50cnVlKGF3YWl0IHBhdGhFeGlzdHMoZGlyKSk7XG4gICAgYXdhaXQgcmVtb3ZlKHRlc3REaXIpO1xufSk7XG4iXX0=
\No newline at end of file