mirror of
https://github.com/fancive/obsidian-parallel-reader.git
synced 2026-07-22 06:53:43 +00:00
test: add vault.ts normalizeVaultPath and folderPathsForTarget tests
Cover normalizeVaultPath with clean paths, whitespace trimming, parent traversal stripping, dot segments, null input, and empty segments. Test folderPathsForTarget ancestor chain generation for various depths. Change-Id: I4de1744301df1e42d35f0bd5702d5cc58fb9a277
This commit is contained in:
parent
d6b89924f2
commit
3a2c4e6a1c
1 changed files with 17 additions and 0 deletions
|
|
@ -41,6 +41,7 @@ async function requireBundledModule(relativePath) {
|
|||
const providerParsers = await requireBundledModule('src/provider-parsers.ts');
|
||||
const settings = await requireBundledModule('src/settings.ts');
|
||||
const streaming = await requireBundledModule('src/streaming.ts');
|
||||
const vault = await requireBundledModule('src/vault.ts');
|
||||
|
||||
const cacheEntry = { generatedAt: '2024-01-01T00:00:00.000Z' };
|
||||
const touched = cache.touchCacheEntry(cacheEntry, '2024-06-01T00:00:00.000Z');
|
||||
|
|
@ -364,6 +365,22 @@ async function requireBundledModule(relativePath) {
|
|||
assert.strictEqual(anthropicSettings.model, 'claude-sonnet-4-6', 'applyApiProviderPreset does not mutate input');
|
||||
assert.strictEqual(anthropicSettings.apiProvider, 'anthropic', 'original provider unchanged');
|
||||
|
||||
// --- vault.ts: normalizeVaultPath and folderPathsForTarget ---
|
||||
assert.strictEqual(vault.normalizeVaultPath('Reading/Articles'), 'Reading/Articles', 'normalizeVaultPath clean path unchanged');
|
||||
assert.strictEqual(vault.normalizeVaultPath(' Reading / Articles '), 'Reading/Articles', 'normalizeVaultPath trims parts');
|
||||
assert.strictEqual(vault.normalizeVaultPath('../bad/../path'), 'bad/path', 'normalizeVaultPath strips .. segments');
|
||||
assert.strictEqual(vault.normalizeVaultPath('./relative/./path'), 'relative/path', 'normalizeVaultPath strips . segments');
|
||||
assert.strictEqual(vault.normalizeVaultPath(''), '', 'normalizeVaultPath handles empty string');
|
||||
assert.strictEqual(vault.normalizeVaultPath(null), '', 'normalizeVaultPath handles null');
|
||||
assert.strictEqual(vault.normalizeVaultPath('single'), 'single', 'normalizeVaultPath handles single segment');
|
||||
assert.strictEqual(vault.normalizeVaultPath('a//b///c'), 'a/b/c', 'normalizeVaultPath collapses empty segments');
|
||||
|
||||
assert.deepStrictEqual(vault.folderPathsForTarget('Reading/Articles'), ['Reading', 'Reading/Articles'], 'folderPathsForTarget returns ancestor chain');
|
||||
assert.deepStrictEqual(vault.folderPathsForTarget('a/b/c'), ['a', 'a/b', 'a/b/c'], 'folderPathsForTarget 3-deep path');
|
||||
assert.deepStrictEqual(vault.folderPathsForTarget('single'), ['single'], 'folderPathsForTarget single segment');
|
||||
assert.deepStrictEqual(vault.folderPathsForTarget(''), [], 'folderPathsForTarget empty returns empty');
|
||||
assert.deepStrictEqual(vault.folderPathsForTarget('../..'), [], 'folderPathsForTarget invalid path returns empty');
|
||||
|
||||
// --- i18n.ts: translate and resolveUiLanguage ---
|
||||
// translate with explicit language
|
||||
assert.strictEqual(i18n.translate({ uiLanguage: 'en' }, 'displayName'), 'Parallel Reader', 'translate returns en string');
|
||||
|
|
|
|||
Loading…
Reference in a new issue