From 6baa7a433195520f05e66f55fb66863ffb5023e2 Mon Sep 17 00:00:00 2001 From: zhenyuWang <13641039885@163.com> Date: Sat, 7 Dec 2024 18:49:10 +0800 Subject: [PATCH] =?UTF-8?q?test(downloadFile):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/API/download-file/download-file.test.js | 31 +++++++++++++------ pages/API/download-file/download-file.uvue | 27 +++++++++++----- 2 files changed, 41 insertions(+), 17 deletions(-) diff --git a/pages/API/download-file/download-file.test.js b/pages/API/download-file/download-file.test.js index 6cdd70d9..22f40ba5 100644 --- a/pages/API/download-file/download-file.test.js +++ b/pages/API/download-file/download-file.test.js @@ -3,18 +3,29 @@ const PAGE_PATH = '/pages/API/download-file/download-file' describe('ExtApi-DownloadFile', () => { let page; - let res; + let res; + let timeout = 3000 + let waitForStartTime + async function waitCallbackTriggredOrTimeout(){ + waitForStartTime = Date.now() + await page.waitFor(async () => { + const callbackTriggred = await page.data('jest_callback_triggred') + return callbackTriggred || (Date.now() - waitForStartTime > timeout) + }) + } + beforeAll(async () => { page = await program.reLaunch(PAGE_PATH) - await page.waitFor(600); + await page.waitFor('view'); await page.callMethod('jest_downloadFile'); - await page.waitFor(2000); + await waitCallbackTriggredOrTimeout() res = await page.data('jest_result'); }); - beforeEach(async () => { + beforeEach(async () => { await page.setData({ - jest_result: false + jest_result: false, + jest_callback_triggred: false }) }); @@ -24,7 +35,7 @@ describe('ExtApi-DownloadFile', () => { it('Check Special characters Url download file', async () => { res = await page.callMethod('jest_special_characters_download') - await page.waitFor(2000); + await waitCallbackTriggredOrTimeout() res = await page.data('jest_result'); expect(res).toBe(true) }); @@ -35,7 +46,7 @@ describe('ExtApi-DownloadFile', () => { ) { it('Check uni.env', async () => { await page.callMethod('jest_downloadFile_with_uni_env'); - await page.waitFor(2000); + await waitCallbackTriggredOrTimeout() res = await page.data('jest_result'); expect(res).toBe(true); }); @@ -47,7 +58,7 @@ describe('ExtApi-DownloadFile', () => { if (!process.env.uniTestPlatformInfo.toLocaleLowerCase().startsWith('ios') || version > 15) { it('Check Download File In UTS Module', async () => { res = await page.callMethod('jest_uts_module_invoked') - await page.waitFor(2000); + await waitCallbackTriggredOrTimeout() res = await page.data('jest_result'); expect(res).toBe(true) }) @@ -70,13 +81,13 @@ describe('ExtApi-DownloadFile', () => { it('Check Set Cookie', async () => { res = await page.callMethod('jest_set_cookie') - await page.waitFor(2000); + await waitCallbackTriggredOrTimeout() res = await page.data('jest_result'); expect(res).toBe(true) }); it('Check Delete Cookie', async () => { res = await page.callMethod('jest_delete_cookie') - await page.waitFor(2000); + await waitCallbackTriggredOrTimeout() res = await page.data('jest_result'); expect(res).toBe(true) }); diff --git a/pages/API/download-file/download-file.uvue b/pages/API/download-file/download-file.uvue index 01afed15..ac8d4e30 100644 --- a/pages/API/download-file/download-file.uvue +++ b/pages/API/download-file/download-file.uvue @@ -10,7 +10,7 @@ 点击按钮下载服务端示例图片(下载网络文件到本地临时目录) - + 下载接口的Content-Disposition中的filename非法值例子 @@ -37,7 +37,8 @@ imageSrc: '', task: null as DownloadTask | null, //自动化测试例专用 - jest_result: false + jest_result: false, + jest_callback_triggred: false } }, onLoad() { @@ -87,10 +88,12 @@ uni.downloadFile({ url: "https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/uni-app.png", success: () => { - this.jest_result = true + this.jest_result = true + this.jest_callback_triggred = true }, fail: () => { this.jest_result = false + this.jest_callback_triggred = true } }); }, @@ -101,9 +104,11 @@ filePath: `${uni.env.CACHE_PATH}/a/b/`, success: () => { this.jest_result = true + this.jest_callback_triggred = true }, fail: () => { this.jest_result = false + this.jest_callback_triggred = true } }); }, @@ -118,9 +123,11 @@ firstIpv4: false, success: () => { this.jest_cookie_download(true) + this.jest_callback_triggred = true }, fail: () => { this.jest_result = false; + this.jest_callback_triggred = true }, }); }, @@ -135,9 +142,11 @@ firstIpv4: false, success: () => { this.jest_cookie_download(false) + this.jest_callback_triggred = true }, fail: () => { this.jest_result = false; + this.jest_callback_triggred = true }, }); }, @@ -157,9 +166,11 @@ testInovkeDownloadFile({ success: (res : any) => { this.jest_result = true + this.jest_callback_triggred = true }, fail: (err : any) => { - this.jest_result = false + this.jest_result = false + this.jest_callback_triggred = true } } as CommonOptions) // #endif @@ -167,11 +178,13 @@ jest_special_characters_download() { uni.downloadFile({ url: "https://web-ext-storage.dcloud.net.cn/hello-uni-app-x/1789834995055525889-你好%23你好.png", - success: (res : DownloadFileSuccess) => { - this.jest_result = true; + success: (res : DownloadFileSuccess) => { + this.jest_result = true; + this.jest_callback_triggred = true }, fail: () => { - this.jest_result = false; + this.jest_result = false; + this.jest_callback_triggred = true } }); } -- GitLab