87 lines
2.9 KiB
JavaScript
87 lines
2.9 KiB
JavaScript
|
|
// Test file to verify FileIcon component supports all file types
|
||
|
|
|
||
|
|
const testFiles = [
|
||
|
|
// Original types
|
||
|
|
{ name: "document.pdf", expected: "pdf" },
|
||
|
|
{ name: "report.doc", expected: "word" },
|
||
|
|
{ name: "report.docx", expected: "word" },
|
||
|
|
{ name: "presentation.ppt", expected: "ppt" },
|
||
|
|
{ name: "presentation.pptx", expected: "ppt" },
|
||
|
|
{ name: "data.xlsx", expected: "excel" },
|
||
|
|
{ name: "data.xls", expected: "excel" },
|
||
|
|
|
||
|
|
// New extended types
|
||
|
|
{ name: "photo.jpg", expected: "image" },
|
||
|
|
{ name: "photo.jpeg", expected: "image" },
|
||
|
|
{ name: "photo.png", expected: "image" },
|
||
|
|
{ name: "photo.gif", expected: "image" },
|
||
|
|
{ name: "photo.bmp", expected: "image" },
|
||
|
|
|
||
|
|
{ name: "video.mp4", expected: "video" },
|
||
|
|
{ name: "video.avi", expected: "video" },
|
||
|
|
{ name: "video.mov", expected: "video" },
|
||
|
|
{ name: "video.wmv", expected: "video" },
|
||
|
|
|
||
|
|
{ name: "design.psd", expected: "design" },
|
||
|
|
{ name: "design.ai", expected: "design" },
|
||
|
|
{ name: "design.sketch", expected: "design" },
|
||
|
|
{ name: "design.figma", expected: "design" },
|
||
|
|
{ name: "animation.aep", expected: "design" }, // After Effects
|
||
|
|
|
||
|
|
{ name: "archive.zip", expected: "archive" },
|
||
|
|
{ name: "archive.rar", expected: "archive" },
|
||
|
|
{ name: "archive.7z", expected: "archive" },
|
||
|
|
{ name: "archive.tar", expected: "archive" },
|
||
|
|
|
||
|
|
{ name: "audio.mp3", expected: "audio" },
|
||
|
|
{ name: "audio.wav", expected: "audio" },
|
||
|
|
{ name: "audio.flac", expected: "audio" },
|
||
|
|
|
||
|
|
{ name: "unknown.xyz", expected: "default" }
|
||
|
|
];
|
||
|
|
|
||
|
|
// Function to get file type based on extension (mimics Python logic)
|
||
|
|
function getFileType(filename) {
|
||
|
|
const ext = filename.split('.').pop().toLowerCase();
|
||
|
|
|
||
|
|
if (ext === 'pdf') return 'pdf';
|
||
|
|
if (['doc', 'docx'].includes(ext)) return 'word';
|
||
|
|
if (['ppt', 'pptx'].includes(ext)) return 'ppt';
|
||
|
|
if (['xls', 'xlsx'].includes(ext)) return 'excel';
|
||
|
|
if (['jpg', 'jpeg', 'png', 'gif', 'bmp'].includes(ext)) return 'image';
|
||
|
|
if (['mp4', 'avi', 'mov', 'wmv'].includes(ext)) return 'video';
|
||
|
|
if (['psd', 'ai', 'sketch', 'figma', 'aep'].includes(ext)) return 'design';
|
||
|
|
if (['zip', 'rar', '7z', 'tar'].includes(ext)) return 'archive';
|
||
|
|
if (['mp3', 'wav', 'flac'].includes(ext)) return 'audio';
|
||
|
|
|
||
|
|
return 'document'; // default
|
||
|
|
}
|
||
|
|
|
||
|
|
console.log("Testing file type detection:");
|
||
|
|
console.log("============================");
|
||
|
|
|
||
|
|
let passed = 0;
|
||
|
|
let failed = 0;
|
||
|
|
|
||
|
|
testFiles.forEach(test => {
|
||
|
|
const result = getFileType(test.name);
|
||
|
|
const expectedType = test.expected === 'default' ? 'document' : test.expected;
|
||
|
|
|
||
|
|
if (result === expectedType) {
|
||
|
|
console.log(`✓ ${test.name} → ${result}`);
|
||
|
|
passed++;
|
||
|
|
} else {
|
||
|
|
console.log(`✗ ${test.name} → ${result} (expected: ${expectedType})`);
|
||
|
|
failed++;
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
console.log("\n============================");
|
||
|
|
console.log(`Results: ${passed} passed, ${failed} failed`);
|
||
|
|
|
||
|
|
if (failed === 0) {
|
||
|
|
console.log("All file types are correctly detected! ✨");
|
||
|
|
} else {
|
||
|
|
console.log("Some file types need fixing.");
|
||
|
|
}
|