71 lines
1.7 KiB
JavaScript
71 lines
1.7 KiB
JavaScript
import fs from 'fs';
|
|
import {
|
|
createTag,
|
|
listTags
|
|
} from './scripts/modules/task-manager/tag-management.js';
|
|
|
|
console.log('=== Testing Tag Management with Clean File ===');
|
|
|
|
// Create a clean test tasks.json file
|
|
const testTasksPath = './test-tasks.json';
|
|
const cleanData = {
|
|
master: {
|
|
tasks: [
|
|
{ id: 1, title: 'Test Task 1', status: 'pending' },
|
|
{ id: 2, title: 'Test Task 2', status: 'done' }
|
|
],
|
|
metadata: {
|
|
created: new Date().toISOString(),
|
|
description: 'Master tag'
|
|
}
|
|
}
|
|
};
|
|
|
|
// Write clean test file
|
|
fs.writeFileSync(testTasksPath, JSON.stringify(cleanData, null, 2));
|
|
console.log('Created clean test file');
|
|
|
|
try {
|
|
// Test creating a new tag
|
|
console.log('\n--- Testing createTag ---');
|
|
await createTag(
|
|
testTasksPath,
|
|
'test-branch',
|
|
{ copyFromCurrent: true, description: 'Test branch' },
|
|
{ projectRoot: process.cwd() },
|
|
'json'
|
|
);
|
|
|
|
// Read the file and check for corruption
|
|
const resultData = JSON.parse(fs.readFileSync(testTasksPath, 'utf8'));
|
|
console.log('Keys in result file:', Object.keys(resultData));
|
|
console.log('Has _rawTaggedData in file:', !!resultData._rawTaggedData);
|
|
|
|
if (resultData._rawTaggedData) {
|
|
console.log('❌ CORRUPTION DETECTED: _rawTaggedData found in file!');
|
|
} else {
|
|
console.log('✅ SUCCESS: No _rawTaggedData corruption in file');
|
|
}
|
|
|
|
// Test listing tags
|
|
console.log('\n--- Testing listTags ---');
|
|
const tagList = await listTags(
|
|
testTasksPath,
|
|
{},
|
|
{ projectRoot: process.cwd() },
|
|
'json'
|
|
);
|
|
console.log(
|
|
'Found tags:',
|
|
tagList.tags.map((t) => t.name)
|
|
);
|
|
} catch (error) {
|
|
console.error('Error during test:', error.message);
|
|
} finally {
|
|
// Clean up test file
|
|
if (fs.existsSync(testTasksPath)) {
|
|
fs.unlinkSync(testTasksPath);
|
|
console.log('\nCleaned up test file');
|
|
}
|
|
}
|