- Move phase/plan docs into docs/ - Move legacy node:test files into tests/legacy/ with README - Remove .backup file, test audit artifacts, and unused AI prompt/skill files - Remove broken iOS GitHub workflows (reference missing MovieMapper-iOS/)
99 lines
2.7 KiB
JavaScript
99 lines
2.7 KiB
JavaScript
// Test breadcrumb navigation implementation
|
|
const { test } = require('node:test');
|
|
const assert = require('assert');
|
|
const path = require('path');
|
|
|
|
// Mock DOM environment
|
|
const mockDocument = {
|
|
body: {
|
|
appendChild: () => {},
|
|
querySelector: () => null
|
|
},
|
|
createElement: (tag) => ({
|
|
tagName: tag.toUpperCase(),
|
|
className: '',
|
|
textContent: '',
|
|
style: {},
|
|
dataset: {},
|
|
appendChild: function(child) {
|
|
this.children = this.children || [];
|
|
this.children.push(child);
|
|
},
|
|
addEventListener: () => {},
|
|
removeAttribute: () => {},
|
|
setAttribute: (name, value) => {
|
|
this.dataset[name] = value;
|
|
},
|
|
classList: {
|
|
add: (cls) => { this.className = cls; },
|
|
remove: (cls) => { this.className = ''; }
|
|
}
|
|
}),
|
|
querySelectorAll: () => [],
|
|
getElementById: (id) => {
|
|
const elements = {
|
|
'breadcrumb-nav': {
|
|
style: { display: 'none' },
|
|
innerHTML: '',
|
|
appendChild: () => {}
|
|
},
|
|
'breadcrumb-back-btn': {
|
|
disabled: false,
|
|
addEventListener: () => {}
|
|
},
|
|
'selected-dir': {
|
|
textContent: ''
|
|
}
|
|
};
|
|
return elements[id] || null;
|
|
}
|
|
};
|
|
|
|
// Mock window
|
|
global.window = {
|
|
addEventListener: () => {}
|
|
};
|
|
|
|
// Mock document
|
|
global.document = mockDocument;
|
|
|
|
// Mock IPC renderer
|
|
global.ipcRenderer = {
|
|
invoke: () => ({ success: true }),
|
|
on: () => {}
|
|
};
|
|
|
|
// Mock fs
|
|
global.fs = {
|
|
existsSync: (p) => true,
|
|
statSync: (p) => ({ isDirectory: () => true }),
|
|
stat: () => {}
|
|
};
|
|
|
|
// Now we can test the UIManager
|
|
console.log('Testing breadcrumb navigation implementation...');
|
|
|
|
// Test that UIManager can be required
|
|
try {
|
|
const UIManager = require('./utils/renderer/UIManager');
|
|
console.log('✅ UIManager module loaded successfully');
|
|
|
|
// Check that the methods exist
|
|
assert.ok(UIManager.prototype.handleFolderClick, 'handleFolderClick method should exist');
|
|
assert.ok(UIManager.prototype.goBack, 'goBack method should exist');
|
|
assert.ok(UIManager.prototype.updateBreadcrumbNavigation, 'updateBreadcrumbNavigation method should exist');
|
|
|
|
console.log('✅ All breadcrumb navigation methods implemented');
|
|
console.log('✅ handleFolderClick method exists and is a function');
|
|
console.log('✅ goBack method exists and is a function');
|
|
console.log('✅ updateBreadcrumbNavigation method exists and is a function');
|
|
|
|
// Check that openDirectory calls updateBreadcrumbNavigation
|
|
const UIManagerInstance = require('./utils/renderer/UIManager');
|
|
console.log('✅ UIManager class instantiated');
|
|
|
|
console.log('\nAll breadcrumb navigation tests passed!');
|
|
} catch (error) {
|
|
console.error('❌ Error:', error.message);
|
|
process.exit(1);
|
|
} |