/** * Unit tests for LoadingScreen class */ const LoadingScreen = require('../../src/js/screens/loading'); describe('LoadingScreen', () => { let loadingScreen; beforeEach(() => { loadingScreen = new LoadingScreen(); }); describe('constructor', () => { it('should initialize with progress 0', () => { expect(loadingScreen.getProgress()).toBe(0); }); it('should have assets array', () => { expect(loadingScreen.assets).toBeDefined(); expect(Array.isArray(loadingScreen.assets)).toBe(true); expect(loadingScreen.assets.length).toBeGreaterThan(0); }); }); describe('getProgress', () => { it('should return current progress', () => { expect(loadingScreen.getProgress()).toBe(0); // Simulate progress update loadingScreen.progress = 50; expect(loadingScreen.getProgress()).toBe(50); }); }); describe('asset loading', () => { it('should have expected assets', () => { expect(loadingScreen.assets).toContain('texture1.png'); expect(loadingScreen.assets).toContain('texture2.png'); expect(loadingScreen.assets).toContain('sound1.mp3'); expect(loadingScreen.assets).toContain('sound2.mp3'); expect(loadingScreen.assets).toContain('model1.obj'); expect(loadingScreen.assets).toContain('model2.obj'); }); }); });