import { firstOfAll, ifWe, ifWeMight, iReckon, lastOfAll, respecfully, respecfullyDear } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs'; import { PathUtilsHelper } from './helpers.web.mjs'; const maam = `[${import.meta.url}]`, sir = maam; await respecfully(sir, `PathUtilsHelper`, async () => { let pathUtils: PathUtilsHelper; firstOfAll(sir, async () => { pathUtils = new PathUtilsHelper(); }); await ifWe(sir, `check isAbsolute and isRelative`, async () => { iReckon(sir, pathUtils.isAbsolute('/a/b/c')).isGonnaBeTrue(); iReckon(sir, pathUtils.isAbsolute('/file.txt')).isGonnaBeTrue(); iReckon(sir, pathUtils.isAbsolute('a/b/c')).isGonnaBeFalse(); iReckon(sir, pathUtils.isAbsolute('file.txt')).isGonnaBeFalse(); iReckon(sir, pathUtils.isRelative('a/b/c')).isGonnaBeTrue(); iReckon(sir, pathUtils.isRelative('file.txt')).isGonnaBeTrue(); iReckon(sir, pathUtils.isRelative('/a/b/c')).isGonnaBeFalse(); }); await ifWe(sir, `join empty paths or single ..`, async () => { iReckon(sir, pathUtils.join()).isGonnaBe('.'); iReckon(sir, pathUtils.join('..')).isGonnaBe('..'); }); await ifWe(sir, `join path segments`, async () => { iReckon(sir, pathUtils.join('a', 'b', 'c')).isGonnaBe('a/b/c'); iReckon(sir, pathUtils.join('/a/', '/b/', 'c.txt')).isGonnaBe('a/b/c.txt'); iReckon(sir, pathUtils.join('foo', 'bar', '..')).isGonnaBe('foo'); iReckon(sir, pathUtils.join('foo', 'bar', '..', 'baz')).isGonnaBe('foo/baz'); }); await ifWe(sir, `extract dirname`, async () => { iReckon(sir, pathUtils.dirname('a/b/c.txt')).isGonnaBe('a/b'); iReckon(sir, pathUtils.dirname('/root/sub/file.json')).isGonnaBe('/root/sub'); iReckon(sir, pathUtils.dirname('singlefile.txt')).isGonnaBe(''); }); await ifWe(sir, `extract basename`, async () => { iReckon(sir, pathUtils.basename('a/b/c.txt')).isGonnaBe('c.txt'); iReckon(sir, pathUtils.basename('/root/sub/file.json')).isGonnaBe('file.json'); iReckon(sir, pathUtils.basename('standalone')).isGonnaBe('standalone'); }); });