mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-03-30 13:43:26 +08:00
test: add packageManager version format and sequential save integrity tests
This commit is contained in:
@@ -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}`);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user