test: add packageManager version format and sequential save integrity tests

This commit is contained in:
Affaan Mustafa
2026-02-13 05:04:58 -08:00
parent 4f7b50fb78
commit 71e86cc93f
2 changed files with 49 additions and 0 deletions

View File

@@ -1164,6 +1164,38 @@ function runTests() {
}
})) passed++; else failed++;
// ── Round 48: detectFromPackageJson format edge cases ──
console.log('\nRound 48: detectFromPackageJson (version format edge cases):');
if (test('returns null for packageManager with non-@ separator', () => {
const testDir = createTestDir();
try {
fs.writeFileSync(path.join(testDir, 'package.json'), JSON.stringify({
name: 'test',
packageManager: 'pnpm+8.6.0'
}));
const result = pm.detectFromPackageJson(testDir);
// split('@') on 'pnpm+8.6.0' returns ['pnpm+8.6.0'], which doesn't match PACKAGE_MANAGERS
assert.strictEqual(result, null, 'Non-@ format should not match any package manager');
} finally {
cleanupTestDir(testDir);
}
})) passed++; else failed++;
if (test('extracts package manager from caret version like yarn@^4.0.0', () => {
const testDir = createTestDir();
try {
fs.writeFileSync(path.join(testDir, 'package.json'), JSON.stringify({
name: 'test',
packageManager: 'yarn@^4.0.0'
}));
const result = pm.detectFromPackageJson(testDir);
assert.strictEqual(result, 'yarn', 'Caret version should still extract PM name');
} finally {
cleanupTestDir(testDir);
}
})) passed++; else failed++;
// Summary
console.log('\n=== Test Results ===');
console.log(`Passed: ${passed}`);

View File

@@ -839,6 +839,23 @@ function runTests() {
// best-effort
}
// ── Round 48: rapid sequential saves data integrity ──
console.log('\nRound 48: rapid sequential saves:');
if (test('rapid sequential setAlias calls maintain data integrity', () => {
resetAliases();
for (let i = 0; i < 5; i++) {
const result = aliases.setAlias(`rapid-${i}`, `/path/${i}`, `Title ${i}`);
assert.strictEqual(result.success, true, `setAlias rapid-${i} should succeed`);
}
const data = aliases.loadAliases();
for (let i = 0; i < 5; i++) {
assert.ok(data.aliases[`rapid-${i}`], `rapid-${i} should exist after all saves`);
assert.strictEqual(data.aliases[`rapid-${i}`].sessionPath, `/path/${i}`);
}
assert.strictEqual(data.metadata.totalCount, 5, 'Metadata count should match actual aliases');
})) passed++; else failed++;
// Summary
console.log(`\nResults: Passed: ${passed}, Failed: ${failed}`);
process.exit(failed > 0 ? 1 : 0);