Files
claude-task-master/test-clean-tags.js

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');
}
}