@zenfs/core
Version:
A filesystem, anywhere
48 lines (39 loc) • 1.49 kB
text/typescript
// SPDX-License-Identifier: LGPL-3.0-or-later
import assert from 'node:assert/strict';
import { suite, test } from 'node:test';
import { basename, dirname, extname, join, normalize, resolve } from '@zenfs/core/path';
import { fs } from '@zenfs/core';
suite('Path emulation', () => {
test('resolve', () => {
assert.equal(resolve('somepath'), '/somepath');
assert.equal(resolve('/another', 'path'), '/another/path');
});
test('join', () => {
assert.equal(join('/path', 'to', 'file.txt'), '/path/to/file.txt');
assert.equal(join('/path/', 'to', '/file.txt'), '/path/to/file.txt');
});
test('normalize', () => {
assert.equal(normalize('/path/to/../file.txt'), '/path/file.txt');
assert.equal(normalize('/path/to/./file.txt'), '/path/to/file.txt');
});
test('basename', () => {
assert.equal(basename('/path/to/file.txt'), 'file.txt');
assert.equal(basename('/path/to/file.txt', '.txt'), 'file');
});
test('dirname', () => {
assert.equal(dirname('/path/to/file.txt'), '/path/to');
});
test('extname', () => {
assert.equal(extname('/path/to/file.txt'), '.txt');
assert.equal(extname('/path/to/file'), '');
});
test('file:// URL (string)', () => {
fs.writeFileSync('/example.txt', 'Yay');
assert.equal(fs.readFileSync('file:///example.txt', 'utf-8'), 'Yay');
});
test('file:// URL (URL)', () => {
fs.writeFileSync('/example.txt', 'Yay');
const url = new URL('file:///example.txt');
assert.equal(fs.readFileSync(url, 'utf-8'), 'Yay');
});
});