Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
Hello UTS
提交
3c5045a2
H
Hello UTS
项目概览
DCloud
/
Hello UTS
通知
1598
Star
27
Fork
9
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
2
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
Hello UTS
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
2
Issue
2
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
3c5045a2
编写于
9月 14, 2024
作者:
M
mahaifeng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[promise,global]去除文档中手动生成的代码,添加注释
上级
26658618
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
517 addition
and
482 deletion
+517
-482
uni_modules/uts-tests/utssdk/Global.uts
uni_modules/uts-tests/utssdk/Global.uts
+111
-95
uni_modules/uts-tests/utssdk/Promise.uts
uni_modules/uts-tests/utssdk/Promise.uts
+406
-387
未找到文件。
uni_modules/uts-tests/utssdk/Global.uts
浏览文件 @
3c5045a2
import { describe, test, expect, Result } from './tests.uts'
export function testGlobal(): Result {
export function testGlobal()
: Result {
return describe("Global", () => {
test('setInterval', () => {
// #TEST Global.setInterval
// #ifdef APP-ANDROID
let aCount = 0
let taskId = setInterval(function
()
{
let taskId = setInterval(function
()
{
aCount += 1
},0)
setTimeout(function
()
{
},
0)
setTimeout(function
()
{
console.log(aCount)
console.log(taskId)
clearInterval(taskId)
expect(aCount > 10).toEqual(true);
},200)
},
200)
// #endif
// #END
})
test('btoa', () => {
// #TEST Global.btoa
// #ifdef APP-ANDROID
expect(btoa("")).toEqual('');
expect(btoa("hello world")).toEqual('aGVsbG8gd29ybGQ=');
expect(btoa("@-1234567890qwertyuiopasdfghjklzxcvbnm-QWERTYUIOPASDFGHJKLZXCVBNM@-1234567890qwertyuiopasdfghjklzxcvbnm-QWERTYUIOPASDFGHJKLZXCVBNM@-1234567890qwertyuiopasdfghjklzxcvbnm-QWERTYUIOPASDFGHJKLZXCVBNM@-1234567890qwertyuiopasdfghjklzxcvbnm-QWERTYUIOPASDFGHJKLZXCVBNM@-1234567890qwertyuiopasdfghjklzxcvbnm-QWERTYUIOPASDFGHJKLZXCVBNM")).toEqual('QC0xMjM0NTY3ODkwcXdlcnR5dWlvcGFzZGZnaGprbHp4Y3Zibm0tUVdFUlRZVUlPUEFTREZHSEpLTFpYQ1ZCTk1ALTEyMzQ1Njc4OTBxd2VydHl1aW9wYXNkZmdoamtsenhjdmJubS1RV0VSVFlVSU9QQVNERkdISktMWlhDVkJOTUAtMTIzNDU2Nzg5MHF3ZXJ0eXVpb3Bhc2RmZ2hqa2x6eGN2Ym5tLVFXRVJUWVVJT1BBU0RGR0hKS0xaWENWQk5NQC0xMjM0NTY3ODkwcXdlcnR5dWlvcGFzZGZnaGprbHp4Y3Zibm0tUVdFUlRZVUlPUEFTREZHSEpLTFpYQ1ZCTk1ALTEyMzQ1Njc4OTBxd2VydHl1aW9wYXNkZmdoamtsenhjdmJubS1RV0VSVFlVSU9QQVNERkdISktMWlhDVkJOTQ==');
// #endif
// #END
})
test('atob', () => {
// #TEST Global.atob
// #ifdef APP-ANDROID
expect(atob("")).toEqual('');
expect(atob('aGVsbG8gd29ybGQ=')).toEqual('hello world');
expect(atob("QC0xMjM0NTY3ODkwcXdlcnR5dWlvcGFzZGZnaGprbHp4Y3Zibm0tUVdFUlRZVUlPUEFTREZHSEpLTFpYQ1ZCTk1ALTEyMzQ1Njc4OTBxd2VydHl1aW9wYXNkZmdoamtsenhjdmJubS1RV0VSVFlVSU9QQVNERkdISktMWlhDVkJOTUAtMTIzNDU2Nzg5MHF3ZXJ0eXVpb3Bhc2RmZ2hqa2x6eGN2Ym5tLVFXRVJUWVVJT1BBU0RGR0hKS0xaWENWQk5NQC0xMjM0NTY3ODkwcXdlcnR5dWlvcGFzZGZnaGprbHp4Y3Zibm0tUVdFUlRZVUlPUEFTREZHSEpLTFpYQ1ZCTk1ALTEyMzQ1Njc4OTBxd2VydHl1aW9wYXNkZmdoamtsenhjdmJubS1RV0VSVFlVSU9QQVNERkdISktMWlhDVkJOTQ==")).toEqual('@-1234567890qwertyuiopasdfghjklzxcvbnm-QWERTYUIOPASDFGHJKLZXCVBNM@-1234567890qwertyuiopasdfghjklzxcvbnm-QWERTYUIOPASDFGHJKLZXCVBNM@-1234567890qwertyuiopasdfghjklzxcvbnm-QWERTYUIOPASDFGHJKLZXCVBNM@-1234567890qwertyuiopasdfghjklzxcvbnm-QWERTYUIOPASDFGHJKLZXCVBNM@-1234567890qwertyuiopasdfghjklzxcvbnm-QWERTYUIOPASDFGHJKLZXCVBNM');
// #endif
// #END
})
test('parseInt', () => {
// #TEST Global.parseInt,Global.isNaN
expect(parseInt("123.456")).toEqual(123);
expect(parseInt("123")).toEqual(123);
expect(parseInt("123", 10)).toEqual(123);
...
...
@@ -71,10 +77,11 @@ export function testGlobal(): Result {
expect(parseInt("50") / 100).toEqualNumber(0.5);
expect(parseInt("500") / 100).toEqualNumber(5);
// #END
})
test('parseFloat', () => {
// #TEST Global.parseFloat
expect(parseFloat("11.20")).toEqual(11.2);
expect(parseFloat("3.14")).toEqual(3.14);
expect(parseFloat(" 3.14 ")).toEqual(3.14);
...
...
@@ -83,34 +90,43 @@ export function testGlobal(): Result {
expect(parseFloat("3.14some non-digit characters")).toEqual(3.14);
expect(parseFloat("100") / 50).toEqualNumber(2);
expect(parseFloat("105") / 50).toEqual(2.1);
// #END
})
test('encodeURI', () => {
// #TEST Global.encodeURI
expect(encodeURI("你好")).toEqual('%E4%BD%A0%E5%A5%BD')
expect(encodeURI("你好+22")).toEqual('%E4%BD%A0%E5%A5%BD+22')
expect(encodeURI("你;/=好+22")).toEqual('%E4%BD%A0;/=%E5%A5%BD+22')
expect(encodeURI("https://demo.dcloud.net.cn/mock/最新/12")).toEqual('https://demo.dcloud.net.cn/mock/%E6%9C%80%E6%96%B0/12')
// #END
})
test('decodeURI', () => {
// #TEST Global.decodeURI
expect(decodeURI('%E4%BD%A0%E5%A5%BD')).toEqual('你好')
expect(decodeURI("%E4%BD%A0%E5%A5%BD+22")).toEqual('你好+22')
expect(decodeURI("%E4%BD%A0;/=%E5%A5%BD+22")).toEqual('你;/=好+22')
expect(decodeURI("https://demo.dcloud.net.cn/mock/%E6%9C%80%E6%96%B0/12")).toEqual('https://demo.dcloud.net.cn/mock/最新/12')
// #END
})
test('encodeURIComponent', () => {
// #TEST Global.encodeURIComponent
expect(encodeURIComponent("你好")).toEqual('%E4%BD%A0%E5%A5%BD')
expect(encodeURIComponent("你好+22")).toEqual('%E4%BD%A0%E5%A5%BD%2B22')
expect(encodeURIComponent("你;/=好+22")).toEqual('%E4%BD%A0%3B%2F%3D%E5%A5%BD%2B22')
expect(encodeURIComponent("https://demo.dcloud.net.cn/mock/最新/12")).toEqual('https%3A%2F%2Fdemo.dcloud.net.cn%2Fmock%2F%E6%9C%80%E6%96%B0%2F12')
// #END
})
test('decodeURIComponent', () => {
// #TEST Global.decodeURIComponent
expect(decodeURIComponent('%E4%BD%A0%E5%A5%BD')).toEqual('你好')
expect(decodeURIComponent('%E4%BD%A0%E5%A5%BD%2B22')).toEqual('你好+22')
expect(decodeURIComponent('%E4%BD%A0%3B%2F%3D%E5%A5%BD%2B22')).toEqual('你;/=好+22')
expect(decodeURIComponent("https://demo.dcloud.net.cn/mock/%E6%9C%80%E6%96%B0/12")).toEqual('https://demo.dcloud.net.cn/mock/最新/12')
// #END
})
})
...
...
uni_modules/uts-tests/utssdk/Promise.uts
浏览文件 @
3c5045a2
import { describe, test, expect, Result } from './tests.uts'
export function testPromise(): Result {
export function testPromise()
: Result {
return describe("Promise", () => {
test('constructor', () => {
// #TEST Promise.Constructor,Promise.Constructor_1
// 常规方式
let p = new Promise<number>((resolve, reject) => {
let success = true;
setTimeout(()=>
{
setTimeout(() =>
{
if (success) {
resolve(2024)
} else
{
} else
{
let error = new Error("something going wrong")
reject(error)
}
}, 10);
});
p.then((res: number) => {
p.then((res : number) => {
expect(res).toEqual(2024)
})
// 单个函数
let p1 = new Promise<any | null>((resolve: (value
: any | null) => void) => {
setTimeout(function
() {
let p1 = new Promise<any | null>((resolve : (value
: any | null) => void) => {
setTimeout(function
() {
resolve(null)
}, 10);
})
p1.then((res
: any | null) => {
p1.then((res
: any | null) => {
expect(res).toEqual(null)
})
// 指定函数类型
let p2 = new Promise((resolve: (value: string) => void, reject: (error
: any | null) => void) => {
setTimeout(function
() {
let p2 = new Promise((resolve : (value : string) => void, reject : (error
: any | null) => void) => {
setTimeout(function
() {
reject(null)
}, 10);
})
p2.then()
.catch((error
: any | null) => {
.catch((error
: any | null) => {
expect(error).toEqual(null)
})
// #END
})
test('then', () => {
// #TEST Promise.then,Promise.then_1,Promise.then_2,Promise.then_3,Promise.then_4
let p = new Promise<string>((reslove, reject) => {
setTimeout(function
() {
setTimeout(function
() {
reslove("hello world")
}, 13);
})
p.then(
(res: string)
: Promise<string> => {
(res : string)
: Promise<string> => {
expect(res).toEqual("hello world")
let p0 = new Promise<string>((reslove,
reject) => {
let p0 = new Promise<string>((reslove,
reject) => {
var success = true;
setTimeout(function
() {
setTimeout(function
() {
success = true;
if (success) {
reslove(res + " 2024")
} else
{
} else
{
reject("first then p0 reject message")
}
}, 8);
})
return p0;
},
(err: any | null): void => {
(err : any | null) : void => {
throw new Error("first then throw error")
}
)
.catch(
(err):
string => {
(err) :
string => {
return "first catch return message"
}
)
.then(
(res) => {
console.log(res)
expect(res).toEqual("hello world 2024")
}
)
...
...
@@ -85,15 +87,17 @@ export function testPromise(): Result {
}
)
.finally(() => {
console.log("finally")
expect("finally").toEqual("finally")
})
// #END
})
test('catch', () => {
// #TEST Promise.catch,Promise.catch_1,Promise.catch_2,Promise.catch_3,Promise.catch_4
let p = Promise.reject()
p.then()
.catch((res
: any | null) => {
.catch((res
: any | null) => {
expect(res).toEqual(null)
})
...
...
@@ -104,7 +108,7 @@ export function testPromise(): Result {
}, 12)
})
.then()
.catch((res: any | null)
: string => {
.catch((res : any | null)
: string => {
expect(res!).toEqual("2024")
return "hello world"
})
...
...
@@ -119,7 +123,7 @@ export function testPromise(): Result {
}, 12)
})
.then()
.catch((res: any | null)
: Promise<number> => {
.catch((res : any | null)
: Promise<number> => {
expect(res!).toEqual("2024")
let p = new Promise<number>((resolve, reject) => {
resolve(1)
...
...
@@ -129,9 +133,12 @@ export function testPromise(): Result {
.then((res) => {
expect(res).toEqual(1)
})
// #END
})
test('finally', () => {
// #TEST Promise.finally
Promise.resolve(2)
.finally(() => {
console.log("finally")
...
...
@@ -149,7 +156,7 @@ export function testPromise(): Result {
})
Promise.resolve(2)
.finally(()
: number => {
.finally(()
: number => {
console.log("finally")
return 88
})
...
...
@@ -165,7 +172,7 @@ export function testPromise(): Result {
})
console.log("start");
Promise.reject(4).finally(()
: Promise<number> => {
Promise.reject(4).finally(()
: Promise<number> => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(20)
...
...
@@ -175,13 +182,15 @@ export function testPromise(): Result {
.catch((res) => {
expect(res).toEqual(4)
})
// #END
})
test('resolve', () => {
// #TEST Promise.resolve,Promise.resolve_1,Promise.resolve_2
// resolve array
Promise.resolve([1,2,
3])
Promise.resolve([1, 2,
3])
.then((res) => {
expect(res).toEqual([1,2,
3])
expect(res).toEqual([1, 2,
3])
})
// resolve string
...
...
@@ -204,13 +213,16 @@ export function testPromise(): Result {
})
// 注:此处飘红是编译器误报,实际可以判等
expect(original === cast).toEqual(true)
// #END
})
test('reject', () => {
// #TEST Promise.reject
// reject array
Promise.reject([1,2,
3])
Promise.reject([1, 2,
3])
.catch((err) => {
expect(err).toEqual([1,2,
3])
expect(err).toEqual([1, 2,
3])
})
// reject error
...
...
@@ -232,30 +244,31 @@ export function testPromise(): Result {
expect((err as Promise<any>) === original).toEqual(true);
})
expect(original === cast).toEqual(false)
// #END
})
test('all', () => {
// #TEST Promise.all
let p0 = new Promise<string>((resolve, reject) => {
setTimeout(function
() {
setTimeout(function
() {
resolve("1");
}, 10);
})
let p1 = new Promise<string>((resolve, reject) => {
setTimeout(function
() {
setTimeout(function
() {
resolve("2");
}, 10);
})
let p2 = new Promise<string>((resolve, reject) => {
setTimeout(function
() {
setTimeout(function
() {
resolve("3");
}, 10);
})
let p3 = new Promise<string>((resolve, reject) => {
setTimeout(function
() {
setTimeout(function
() {
let error = new Error("p3 reject reason")
reject(error);
}, 10);
...
...
@@ -263,7 +276,6 @@ export function testPromise(): Result {
// resolve
Promise.all([p0, p1, p2])
.then((res) => {
console.log(res);
expect(res).toEqual(["1", "2", "3"])
})
...
...
@@ -274,29 +286,31 @@ export function testPromise(): Result {
console.log(error);
expect((error as Error).message).toEqual("p3 reject reason");
})
// #END
})
test('allSettled', () => {
// #TEST Promise.allSettled
let p0 = new Promise<string | null>((resolve, reject) => {
setTimeout(function
() {
setTimeout(function
() {
resolve("1");
}, 10);
})
let p1 = new Promise<string | null>((resolve, reject) => {
setTimeout(function
() {
setTimeout(function
() {
resolve(null);
}, 10);
})
let p2 = new Promise<string | null>((resolve, reject) => {
setTimeout(function
() {
setTimeout(function
() {
reject(null)
}, 10);
})
let p3 = new Promise<string | null>((resolve, reject) => {
setTimeout(function
() {
setTimeout(function
() {
let error = new Error("p3 reject reason")
reject(error);
}, 10);
...
...
@@ -306,34 +320,36 @@ export function testPromise(): Result {
.then((res) => {
console.log(res);
let statusArr : string[] = []
res.forEach((item, index
: number) => {
res.forEach((item, index
: number) => {
statusArr.add(item.status)
})
expect(statusArr).toEqual(["fulfilled", "fulfilled", "rejected", "rejected"])
})
// #END
})
test('any', () => {
// #TEST Promise.any
let p0 = new Promise<string | null>((resolve, reject) => {
setTimeout(function
() {
setTimeout(function
() {
resolve("1");
}, 10);
})
let p1 = new Promise<string | null>((resolve, reject) => {
setTimeout(function
() {
setTimeout(function
() {
resolve(null);
}, 15);
})
let p2 = new Promise<string | null>((resolve, reject) => {
setTimeout(function
() {
setTimeout(function
() {
reject(null)
}, 10);
})
let p3 = new Promise<string | null>((resolve, reject) => {
setTimeout(function
() {
setTimeout(function
() {
reject("error");
}, 12);
})
...
...
@@ -349,7 +365,7 @@ export function testPromise(): Result {
Promise.any([p2, p3])
.then()
.catch(
(error
: any | null) => {
(error
: any | null) => {
console.log("test for promise.any error ==> ", error);
// #ifdef APP-IOS
expect((error as UTSPromiseAggregateError).name).toEqual("AggregateError");
...
...
@@ -363,23 +379,25 @@ export function testPromise(): Result {
expect((error as UTSPromiseAggregateError).errors).toEqual([null, "error"]);
// #endif
})
// #END
})
test('race', () => {
// #TEST Promise.race
let p0 = new Promise<string | null>((resolve, reject) => {
setTimeout(function
() {
setTimeout(function
() {
resolve("fast");
}, 10);
})
let p1 = new Promise<string | null>((resolve, reject) => {
setTimeout(function
() {
setTimeout(function
() {
resolve("slow");
}, 15);
})
let p2 = new Promise<string | null>((resolve, reject) => {
setTimeout(function
() {
setTimeout(function
() {
reject(null)
}, 12);
})
...
...
@@ -398,6 +416,7 @@ export function testPromise(): Result {
console.log("test for race reject ===> ", error);
expect(error).toEqual(null);
})
// #END
})
})
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录