提交 d29d01d5 编写于 作者: 雪洛's avatar 雪洛

test: 增加iOS端引用app-js内类型测试例

上级 dd391e64
...@@ -3,35 +3,42 @@ const ERR_RE = /expected:<(.*)> but was:<(.*)>/ ...@@ -3,35 +3,42 @@ const ERR_RE = /expected:<(.*)> but was:<(.*)>/
let result; let result;
beforeAll(async () => { beforeAll(async () => {
await program.reLaunch('/pages/index/basicTest') await program.reLaunch('/pages/index/basicTest')
page = await program.currentPage() page = await program.currentPage()
await page.waitFor(3000); await page.waitFor(3000);
const data = await page.data(); const data = await page.data();
result = data['result'] result = data['result']
}) })
function getApiFailed(describe, api) { function getApiFailed(describe, api) {
const failed = result[describe]?.failed?.find(item => { const failed = result[describe]?.failed?.find(item => {
return item.split(':')[0] === api return item.split(':')[0] === api
}) })
return failed return failed
} }
describes.forEach(d => { describes.forEach(d => {
d?.describe && describe(d.describe, () => { d?.describe && describe(d.describe, () => {
d?.tests && d.tests.forEach(api => { d?.tests && d.tests.forEach(api => {
it(api, ()=>{ it(api, () => {
const failed = getApiFailed(d.describe, api) const failed = getApiFailed(d.describe, api)
if (failed) { if (failed) {
const parts = failed.split('\n') const parts = failed.split('\n')
const matches = parts[1].match(ERR_RE) const matches = parts[1].match(ERR_RE)
if (matches?.length) { if (matches?.length) {
expect(matches[2]).toEqual(matches[1]) expect(matches[2]).toEqual(matches[1])
} else { } else {
expect(parts[1]).toEqual('') expect(parts[1]).toEqual('')
} }
} }
}) })
}) })
}) })
}) })
if (process.env.uniTestPlatformInfo.startsWith('ios')) {
describe('testTypeFromAppJs', () => {
const res = await page.callMethod('jest_testTypeFromAppJs')
expect(res).toEqual(true)
})
}
\ No newline at end of file
...@@ -20,7 +20,10 @@ ...@@ -20,7 +20,10 @@
<!-- #endif --> <!-- #endif -->
</template> </template>
<script lang="ts"> <script lang="ts">
import { runTests, Result } from '../../uni_modules/uts-tests' import { runTests, Result } from '../../uni_modules/uts-tests'
// #ifdef APP-IOS
import { testTypeFromAppJs, Options } from '@/uni_modules/uts-ios-tests'
// #endif
export default { export default {
data() { data() {
return { return {
...@@ -46,7 +49,14 @@ export default { ...@@ -46,7 +49,14 @@ export default {
this.names.push(key) this.names.push(key)
this.resultArray.push(resultMap[key] as Result) this.resultArray.push(resultMap[key] as Result)
} }
}, },
// #ifdef APP-IOS
jest_testTypeFromAppJs() {
return testTypeFromAppJs({
num: 1
} as Options)
}
// #endif
}, },
} }
</script> </script>
......
{
"id": "uts-ios-tests",
"displayName": "uts-ios-tests",
"version": "1.0.0",
"description": "uts-ios-tests",
"keywords": [
"uts-ios-tests"
],
"repository": "",
"engines": {
"HBuilderX": "^3.6.8"
},
"dcloudext": {
"type": "uts",
"sale": {
"regular": {
"price": "0.00"
},
"sourcecode": {
"price": "0.00"
}
},
"contact": {
"qq": ""
},
"declaration": {
"ads": "",
"data": "",
"permissions": ""
},
"npmurl": ""
},
"uni_modules": {
"dependencies": [],
"encrypt": [],
"platforms": {
"cloud": {
"tcb": "u",
"aliyun": "u",
"alipay": "u"
},
"client": {
"Vue": {
"vue2": "u",
"vue3": "u"
},
"App": {
"app-android": "u",
"app-ios": "u"
},
"H5-mobile": {
"Safari": "u",
"Android Browser": "u",
"微信浏览器(Android)": "u",
"QQ浏览器(Android)": "u"
},
"H5-pc": {
"Chrome": "u",
"IE": "u",
"Edge": "u",
"Firefox": "u",
"Safari": "u"
},
"小程序": {
"微信": "u",
"阿里": "u",
"百度": "u",
"字节跳动": "u",
"QQ": "u",
"钉钉": "u",
"快手": "u",
"飞书": "u",
"京东": "u"
},
"快应用": {
"华为": "u",
"联盟": "u"
}
}
}
}
}
\ No newline at end of file
# uts-ios-tests
### 开发文档
[UTS 语法](https://uniapp.dcloud.net.cn/tutorial/syntax-uts.html)
[UTS API插件](https://uniapp.dcloud.net.cn/plugin/uts-plugin.html)
[UTS 组件插件](https://uniapp.dcloud.net.cn/plugin/uts-component.html)
[Hello UTS](https://gitcode.net/dcloud/hello-uts)
\ No newline at end of file
import { Options } from '../interface.uts';
export function testTypeFromAppJs(options : Options) {
return options instanceof Options
}
export {
Options
}
\ No newline at end of file
export type Options = {
num: number
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册