From 7a335e629eeff2eabf2f6611857a50f247702578 Mon Sep 17 00:00:00 2001 From: shikai-123 Date: Tue, 5 Jul 2022 09:49:33 +0800 Subject: [PATCH] Modify the return value type of promisewrapper Change the return value from object to function issues: https://gitee.com/openharmony/js_util_module/issues/I5DVPV Signed-off-by: zhoufei --- .../src/main/js/test/util.test.js | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) diff --git a/compileruntime/util_lib_standard/src/main/js/test/util.test.js b/compileruntime/util_lib_standard/src/main/js/test/util.test.js index edb23302e..c66dc8f40 100644 --- a/compileruntime/util_lib_standard/src/main/js/test/util.test.js +++ b/compileruntime/util_lib_standard/src/main/js/test/util.test.js @@ -168,6 +168,104 @@ describe('TextEncoderTest', function () { expect(result).assertEqual('Unknown system error 555'); }) + /** + * @tc.name: testUtilPromiseWrapper001 + * @tc.desc: Takes a function following the common error-first callback style, + taking an callback as the last argument, and return a function that returns promises. + * @tc.author: shikai + */ + it('testUtilPromiseWrapper001', 0, async function () { + function aysnFun(str, callback) { + if (typeof str === 'string') { + callback(null, str); + } else { + callback('type err'); + } + } + let newPromiseObj = util.promiseWrapper(aysnFun); + newPromiseObj("Hello").then(res => { + expect(res).strictEqual('Hello'); + }) + }) + + /** + * @tc.name: testUtilPromiseWrapper002 + * @tc.desc: Takes a function following the common error-first callback style, + taking an callback as the last argument, and return a function that returns promises. + * @tc.author: shikai + */ + it('testUtilPromiseWrapper002', 0, async function () { + function aysnFun(str, callback) { + if (typeof str === 'string') { + callback(null, str); + } else { + callback('type err'); + } + } + let newPromiseObj = util.promiseWrapper(aysnFun); + newPromiseObj([1, 2]).catch(err => { + expect(err).strictEqual('type err'); + }) + }) + + /** + * @tc.name: testUtilPromiseWrapper003 + * @tc.desc: Takes a function following the common error-first callback style, + taking an callback as the last argument, and return a function that returns promises. + * @tc.author: shikai + */ + it('testUtilPromiseWrapper003', 0, async function () { + function fn(err, val, callback) { + callback(err, val); + } + (async () => { + const value = await util.promiseWrapper(fn); + expect(value(null, 42)).strictEqual(42); + })(); + }) + + /** + * @tc.name: testUtilPromiseWrapper004 + * @tc.desc: Takes a function following the common error-first callback style, + taking an callback as the last argument, and return a function that returns promises. + * @tc.author: shikai + */ + it('testUtilPromiseWrapper004', 0, async function () { + function aysnFun(str1, str2, callback) { + if (typeof str1 === 'string' && typeof str1 === 'string') { + callback(null, str1 + str2); + } else { + callback('type err'); + } + } + let newPromiseObj = util.promiseWrapper(aysnFun); + newPromiseObj("Hello", 'World').then(res => { + expect(res).strictEqual('HelloWorld'); + }) + }) + + /** + * @tc.name: testUtilPromiseWrapper005 + * @tc.desc: Takes a function following the common error-first callback style, + taking an callback as the last argument, and return a function that returns promises. + * @tc.author: shikai + */ + it('testUtilPromiseWrapper005', 0, async function () { + function aysnFun(str1, str2, callback) { + if (typeof str1 === 'string' && typeof str1 === 'string') { + callback(null, str1 + str2); + } else { + callback('type err'); + } + } + let newPromiseObj = util.promiseWrapper(aysnFun); + newPromiseObj([1, 2], 'World').catch(err => { + expect(err).strictEqual('type err'); + }) + }) + + + /** * @tc.name: testUtilPromiseWrapper001 * @tc.desc: Takes a function following the common error-first callback style, -- GitLab