- 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
3.3 KiB
JavaScript
99 lines
3.3 KiB
JavaScript
const { test } = require('node:test');
|
|
const assert = require('node:assert');
|
|
|
|
// Test class imports
|
|
const AppState = require('./utils/renderer/AppState');
|
|
const FileListManager = require('./utils/renderer/FileListManager');
|
|
const TagManager = require('./utils/renderer/TagManager');
|
|
const EpisodeManager = require('./utils/renderer/EpisodeManager');
|
|
const SearchManager = require('./utils/renderer/SearchManager');
|
|
const FileManager = require('./utils/renderer/FileManager');
|
|
const ModalManager = require('./utils/renderer/ModalManager');
|
|
const ProgressManager = require('./utils/renderer/ProgressManager');
|
|
|
|
test('AppState class', () => {
|
|
const state = new AppState();
|
|
|
|
// Test initial state
|
|
assert.strictEqual(state.getCurrentDirectory(), null);
|
|
assert.deepStrictEqual(state.getCurrentFiles(), []);
|
|
assert.strictEqual(state.getCurrentShow(), null);
|
|
|
|
// Test setters and getters
|
|
state.setCurrentDirectory('/test/path');
|
|
assert.strictEqual(state.getCurrentDirectory(), '/test/path');
|
|
|
|
state.setCurrentFiles([{ name: 'test.mp4' }]);
|
|
assert.deepStrictEqual(state.getCurrentFiles(), [{ name: 'test.mp4' }]);
|
|
|
|
state.setCurrentShow({ id: 123, name: 'Test Show' });
|
|
assert.strictEqual(state.getCurrentShow().id, 123);
|
|
|
|
// Test reset
|
|
state.reset();
|
|
assert.strictEqual(state.getCurrentDirectory(), null);
|
|
assert.deepStrictEqual(state.getCurrentFiles(), []);
|
|
});
|
|
|
|
test('EpisodeManager class', () => {
|
|
const manager = new EpisodeManager();
|
|
|
|
// Test isUpdatingEpisodeNumbers flag
|
|
assert.strictEqual(manager.getIsUpdatingEpisodeNumbers(), false);
|
|
|
|
manager.setIsUpdatingEpisodeNumbers(true);
|
|
assert.strictEqual(manager.getIsUpdatingEpisodeNumbers(), true);
|
|
|
|
// Test episode range calculation
|
|
const mockEpisodeEl = {
|
|
dataset: {
|
|
episodeStart: '5',
|
|
episodeEnd: '7'
|
|
}
|
|
};
|
|
|
|
const range = manager.getEpisodeRange(mockEpisodeEl);
|
|
assert.strictEqual(range.start, 5);
|
|
assert.strictEqual(range.end, 7);
|
|
});
|
|
|
|
test('ProgressManager class', () => {
|
|
// Mock DOM elements
|
|
const mockProgressContainer = { style: { display: '' } };
|
|
const mockProgressText = { textContent: '' };
|
|
const mockProgressCount = { textContent: '' };
|
|
|
|
const manager = new ProgressManager(
|
|
mockProgressContainer,
|
|
mockProgressText,
|
|
mockProgressCount
|
|
);
|
|
|
|
// Test showProgress
|
|
manager.showProgress('Testing...');
|
|
assert.strictEqual(mockProgressContainer.style.display, 'block');
|
|
assert.strictEqual(mockProgressText.textContent, 'Testing...');
|
|
|
|
// Test hideProgress
|
|
manager.hideProgress();
|
|
assert.strictEqual(mockProgressContainer.style.display, 'none');
|
|
|
|
// Test updateProgress
|
|
manager.showProgress();
|
|
manager.updateProgress(5, 10, 'test.mp4');
|
|
assert.strictEqual(mockProgressText.textContent, 'Processing: test.mp4');
|
|
assert.strictEqual(mockProgressCount.textContent, '6 of 10 files');
|
|
});
|
|
|
|
test('Class imports', () => {
|
|
assert.ok(AppState, 'AppState class loaded');
|
|
assert.ok(FileListManager, 'FileListManager class loaded');
|
|
assert.ok(TagManager, 'TagManager class loaded');
|
|
assert.ok(EpisodeManager, 'EpisodeManager class loaded');
|
|
assert.ok(SearchManager, 'SearchManager class loaded');
|
|
assert.ok(FileManager, 'FileManager class loaded');
|
|
assert.ok(ModalManager, 'ModalManager class loaded');
|
|
assert.ok(ProgressManager, 'ProgressManager class loaded');
|
|
});
|
|
|
|
console.log('All renderer class tests passed!'); |