From 12849d415318db69c0257671b73779f3adb701f9 Mon Sep 17 00:00:00 2001 From: nathan Date: Wed, 5 Mar 2025 11:44:14 -0700 Subject: [PATCH] Fix Et2File tests broken by 6dae21b311ff87813890454d64b01e11134dde5f --- api/js/etemplate/Et2File/Et2File.ts | 6 +++++- api/js/etemplate/Et2File/test/Et2File.test.ts | 12 +++++------- api/js/etemplate/Et2File/test/ResumableStub.ts | 2 ++ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/api/js/etemplate/Et2File/Et2File.ts b/api/js/etemplate/Et2File/Et2File.ts index c30eacfc7b..34fd2a9707 100644 --- a/api/js/etemplate/Et2File/Et2File.ts +++ b/api/js/etemplate/Et2File/Et2File.ts @@ -176,6 +176,10 @@ export class Et2File extends Et2InputWidget(LitElement) disconnectedCallback() { super.disconnectedCallback(); + if(this._uploadDelayTimeout) + { + window.clearTimeout(this._uploadDelayTimeout); + } if(this.resumable) { this.resumable.cancel(); @@ -345,7 +349,7 @@ export class Et2File extends Et2InputWidget(LitElement) { this._uploadPending = {}; this._uploadDelayTimeout = null; - setTimeout(this.resumable.upload); + window.setTimeout(this.resumable.upload); }); }, 100); } diff --git a/api/js/etemplate/Et2File/test/Et2File.test.ts b/api/js/etemplate/Et2File/test/Et2File.test.ts index fe8a36e37e..dd0976711b 100644 --- a/api/js/etemplate/Et2File/test/Et2File.test.ts +++ b/api/js/etemplate/Et2File/test/Et2File.test.ts @@ -91,7 +91,7 @@ describe('Et2File Component', async() => assert.isTrue(clickSpy.calledOnce); }); - it('should dispatch a change event when a file is added', async() => + it('should dispatch a change event when a file is uploaded', async() => { const file = new File(['content'], 'test.txt', {type: 'text/plain'}); const fileList = { @@ -165,16 +165,14 @@ describe('Et2File Component', async() => const listener = oneEvent(element, 'et2-add'); const clock = sinon.useFakeTimers(); element.addFile(file); - await element.updateComplete; const event = await listener; - + // Wait for progress + clock.tick(101); + await Promise.allSettled(Object.values(element._uploadPending)); + clock.tick(1); const fileInfo = element.files[0]; - const fileItem = element.findFileItem(fileInfo.file); - - // Et2File waits 100 ms before upload starts - clock.tick(101); await fileItem.updateComplete; assert.strictEqual(fileItem.progress, 50, 'File progress should be updated'); diff --git a/api/js/etemplate/Et2File/test/ResumableStub.ts b/api/js/etemplate/Et2File/test/ResumableStub.ts index 5ac77d0383..b14e7d6122 100644 --- a/api/js/etemplate/Et2File/test/ResumableStub.ts +++ b/api/js/etemplate/Et2File/test/ResumableStub.ts @@ -79,6 +79,8 @@ class ResumableStub { this.files = []; } + + pause() {} } export default ResumableStub;