1.24.0 • Published 2 years ago
filesystem-sandbox v1.24.0
filesystem-sandbox
JavaScript module to provide (insecure) filesystem sandboxes for testing
Why?
Because I've needed to write tests which do file I/O and I want an easy way to do that and clean up afterwards.
Usage
Creation
// create a sandbox in a folder under your repo dir:
const sandbox1 = await Sandbox.create();
// create a sandbox somehere specific
const sandbox2 = await Sandbox.create("/tmp");
Cleanup
const sandbox1 = await Sandbox.create();
const sandbox2 = await Sandbox.create();
const sandbox3 = await Sandbox.create();
// clean up an individual sandbox
await sandbox1.destroy();
// clean up all sandboxes seen in this session, eg in `afterEach`
await Sandbox.destroyAll();
// precautionary: destroy any sandboxes in the default location
// -> useful as a beforeAll in single test (beware using in jest
// with concurrent testing!) or in your jest setup to clean
// out remnants from prior interrupted sessions. Will not destroy
// sandboxes in custom locations
await Sandbox.destroyAny();
Path resolution
// get the full path to a file for operations not catered for
// by the sandbox:
const sandbox = await Sandbox.create();
const fullpath = sandbox.fullPathFor("some-file.txt");
File I/O
const sandbox = Sandbox.create();
// write a binary file
const buf1 = Buffer.from([1,2,3]);
await sandbox.writeFile("binary.blob", buf1);
// write a text file
await sandbox.writeFile("hello.txt", "hello world");
// read a text file
const text = await sandbox.readTextFile("hello.txt");
// read a binary file
const data = await sandbox.readFile("binary.blob");
File operations
const sandbox = Sandbox.create();
sandbox.writeFile("hello.txt", "hello world");
const exists = await sandbox.fileExists("hello.txt"); // true
const missing = await sandbox.folderExists("hello.txt"); // false: hello.txt is a file
const stat = await sandbox.stat("hello.txt"); // get fulll stat info
const noStats = await sandbox.stat("missing"); // you'll get null
1.23.0
2 years ago
1.24.0
2 years ago
1.21.0
2 years ago
1.22.0
2 years ago
1.19.1
4 years ago
1.20.0
4 years ago
1.19.0
4 years ago
1.18.0
4 years ago
1.17.0
4 years ago
1.16.0
4 years ago
1.15.0
4 years ago
1.14.0
4 years ago
1.13.0
4 years ago
1.12.0
4 years ago
1.11.0
4 years ago
1.10.0
4 years ago
1.9.0
4 years ago
1.8.0
4 years ago
1.7.0
4 years ago
1.6.4
4 years ago
1.6.3
4 years ago
1.3.0
4 years ago
1.2.0
4 years ago
1.1.1
4 years ago
1.0.1
4 years ago
1.0.0
4 years ago
0.0.1
4 years ago