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