refactor: 确立独立子工程架构 (backend, admin, mpuniapp) 并同步更新 AGENTS.md 规范
这个提交包含在:
@@ -0,0 +1,334 @@
|
||||
jest.setTimeout(30000)
|
||||
|
||||
const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
|
||||
const isIOS = platformInfo.startsWith('ios')
|
||||
const isMP = platformInfo.startsWith('mp')
|
||||
|
||||
describe('ExtApi-StorageInfoTest', () => {
|
||||
if ( isMP) {
|
||||
it('skip', async () => {
|
||||
expect(1).toBe(1);
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
if (
|
||||
isIOS &&
|
||||
(
|
||||
platformInfo.indexOf('15.5') != -1 ||
|
||||
platformInfo.indexOf('14.5') != -1 ||
|
||||
platformInfo.indexOf('13.7') != -1 ||
|
||||
platformInfo.indexOf('12.4') != -1
|
||||
)
|
||||
) {
|
||||
// TODO: 排查 ios 不兼容版本 测试异常原因
|
||||
it('ios 15.5 14.5 13.7 12.4 测试异常', () => {
|
||||
expect(1).toBe(1)
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
const StorageKeysBlackList = [
|
||||
'$$STAT__DBDATA:__UNI__HelloUniAppX',
|
||||
'_STAT_LAST_PAGE_ROUTE',
|
||||
'UNI_STAT_DATA:__UNI__HelloUniAppX',
|
||||
'UNI_STAT_LAST_PAGE_ROUTE'
|
||||
]
|
||||
const filterStorageKeys = (keys) => {
|
||||
return keys.filter(key => {
|
||||
return !StorageKeysBlackList.includes(key)
|
||||
})
|
||||
}
|
||||
|
||||
const PAGE_PATH = '/pages/API/storage/storage'
|
||||
let page;
|
||||
|
||||
// 测试辅助函数
|
||||
async function setPageData(newData) {
|
||||
return await page.setData({ data: newData });
|
||||
}
|
||||
|
||||
function getData (key = '') {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
const data = await page.data('data')
|
||||
resolve(key ? data[key] : data)
|
||||
})
|
||||
}
|
||||
|
||||
beforeAll(async () => {
|
||||
page = await program.reLaunch(PAGE_PATH)
|
||||
await page.waitFor(600);
|
||||
});
|
||||
|
||||
it('Check async properties', async () => {
|
||||
// 异步存储测试
|
||||
await setPageData({
|
||||
key: "autotest_key_mock",
|
||||
data: "长安大道连狭斜,青牛白马七香车。玉辇纵横过主第,金鞭络绎向侯家。龙衔宝盖承朝日,凤吐流苏带晚霞。百尺游丝争绕树,一群娇鸟共啼花。游蜂戏蝶千门侧,碧树银台万种色。复道交窗作合欢,双阙连甍垂凤翼。"
|
||||
})
|
||||
await page.waitFor(600)
|
||||
const btnSetStorageButtonInfo = await page.$('.btn-setstorageAsync')
|
||||
await btnSetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
const btnGetStorageButtonInfo = await page.$('.btn-getstorageAsync')
|
||||
await btnGetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
expect(await getData('apiGetData')).toEqual("长安大道连狭斜,青牛白马七香车。玉辇纵横过主第,金鞭络绎向侯家。龙衔宝盖承朝日,凤吐流苏带晚霞。百尺游丝争绕树,一群娇鸟共啼花。游蜂戏蝶千门侧,碧树银台万种色。复道交窗作合欢,双阙连甍垂凤翼。")
|
||||
|
||||
// 测试 clear
|
||||
let btnGetStorageInfoASyncButton = await page.$('.btn-getStorageInfoASync')
|
||||
// await btnGetStorageInfoASyncButton.tap()
|
||||
// await page.waitFor(600)
|
||||
// storageInfoRet = await getData('apiGetData')
|
||||
// expect(storageInfoRet.keys[0]).toEqual("autotest_key_mock")
|
||||
|
||||
const btnClearStorageInfoASyncButton = await page.$('.btn-clearStorageInfoASync')
|
||||
await btnClearStorageInfoASyncButton.tap()
|
||||
page.waitFor(600)
|
||||
|
||||
await btnGetStorageInfoASyncButton.tap()
|
||||
await page.waitFor(600)
|
||||
storageInfoRet = await getData('apiGetData')
|
||||
expect(filterStorageKeys(storageInfoRet.keys).length).toEqual(0)
|
||||
|
||||
await setPageData({
|
||||
key: "autotest_key_mock",
|
||||
data: 1100.8989
|
||||
})
|
||||
await page.waitFor(600)
|
||||
await btnSetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
await btnGetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
expect(await getData('apiGetData')).toEqual(1100.8989)
|
||||
|
||||
// 测试 remove
|
||||
// await btnGetStorageInfoASyncButton.tap()
|
||||
// await page.waitFor(600)
|
||||
// storageInfoRet = await getData('apiGetData')
|
||||
// expect(storageInfoRet.keys[0]).toEqual("autotest_key_mock")
|
||||
|
||||
const btnRemoveStorageInfoASyncButton = await page.$('.btn-removeStorageInfoASync')
|
||||
await btnRemoveStorageInfoASyncButton.tap()
|
||||
page.waitFor(600)
|
||||
|
||||
await btnGetStorageInfoASyncButton.tap()
|
||||
await page.waitFor(600)
|
||||
storageInfoRet = await getData('apiGetData')
|
||||
expect(filterStorageKeys(storageInfoRet.keys).length).toEqual(0)
|
||||
|
||||
await setPageData({
|
||||
key: "autotest_key_mock",
|
||||
data: 123456789
|
||||
})
|
||||
await page.waitFor(600)
|
||||
await btnSetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
await btnGetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
expect(await getData('apiGetData')).toEqual(123456789)
|
||||
|
||||
let userObj = {
|
||||
name: "zhangsan",
|
||||
age: 12
|
||||
}
|
||||
await setPageData({
|
||||
key: "autotest_key_mock",
|
||||
data: userObj
|
||||
})
|
||||
await page.waitFor(600)
|
||||
await btnSetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
await btnGetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
expect(await getData('apiGetData')).toEqual(userObj)
|
||||
|
||||
await setPageData({
|
||||
key: "autotest_key_mock",
|
||||
data: {
|
||||
name: "zhangsan",
|
||||
age: 122
|
||||
}
|
||||
})
|
||||
await page.waitFor(600)
|
||||
await btnSetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
await btnGetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
let objRet = await getData('apiGetData')
|
||||
expect(objRet.age).toEqual(122)
|
||||
});
|
||||
|
||||
it('Check sync properties', async () => {
|
||||
let btnComplexStaticTest = await page.$('.btn-complexStaticTest')
|
||||
await btnComplexStaticTest.tap()
|
||||
await page.waitFor(600)
|
||||
if (!isIOS) {
|
||||
expect(await getData('staticComplexRet')).toEqual(true)
|
||||
}
|
||||
await setPageData({
|
||||
key: "autotest_key_mock",
|
||||
data: "长安大道连狭斜,青牛白马七香车。玉辇纵横过主第,金鞭络绎向侯家。龙衔宝盖承朝日,凤吐流苏带晚霞。百尺游丝争绕树,一群娇鸟共啼花。游蜂戏蝶千门侧,碧树银台万种色。复道交窗作合欢,双阙连甍垂凤翼。"
|
||||
})
|
||||
await page.waitFor(600)
|
||||
let btnSetStorageButtonInfo = await page.$('.btn-setstorageSync')
|
||||
await btnSetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
let btnGetStorageButtonInfo = await page.$('.btn-getstorageSync')
|
||||
await btnGetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
expect(await getData('apiGetData')).toEqual("长安大道连狭斜,青牛白马七香车。玉辇纵横过主第,金鞭络绎向侯家。龙衔宝盖承朝日,凤吐流苏带晚霞。百尺游丝争绕树,一群娇鸟共啼花。游蜂戏蝶千门侧,碧树银台万种色。复道交窗作合欢,双阙连甍垂凤翼。")
|
||||
|
||||
// 测试clear
|
||||
const btnGetStorageInfoSyncButton = await page.$('.btn-getStorageInfoSync')
|
||||
// await btnGetStorageInfoSyncButton.tap()
|
||||
// await page.waitFor(600)
|
||||
// let storageInfoRet = await getData('apiGetData')
|
||||
// expect(storageInfoRet.keys[0]).toEqual("autotest_key_mock")
|
||||
|
||||
const btnClearStorageInfoSyncButton = await page.$('.btn-clearStorageInfoSync')
|
||||
await btnClearStorageInfoSyncButton.tap()
|
||||
|
||||
await btnGetStorageInfoSyncButton.tap()
|
||||
await page.waitFor(600)
|
||||
storageInfoRet = await getData('apiGetData')
|
||||
expect(filterStorageKeys(storageInfoRet.keys).length).toEqual(0)
|
||||
|
||||
await setPageData({
|
||||
key: "autotest_key_mock",
|
||||
data: 12345789.235689
|
||||
})
|
||||
await page.waitFor(600)
|
||||
btnSetStorageButtonInfo = await page.$('.btn-setstorageSync')
|
||||
await btnSetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
btnGetStorageButtonInfo = await page.$('.btn-getstorageSync')
|
||||
await btnGetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
expect(await getData('apiGetData')).toEqual(12345789.235689)
|
||||
|
||||
// 测试 remove
|
||||
// await btnGetStorageInfoSyncButton.tap()
|
||||
// await page.waitFor(600)
|
||||
// storageInfoRet = await getData('apiGetData')
|
||||
// expect(storageInfoRet.keys[0]).toEqual("autotest_key_mock")
|
||||
|
||||
const btnRemoveStorageInfoSyncButton = await page.$('.btn-removeStorageInfoSync')
|
||||
await btnRemoveStorageInfoSyncButton.tap()
|
||||
page.waitFor(600)
|
||||
|
||||
await btnGetStorageInfoSyncButton.tap()
|
||||
await page.waitFor(600)
|
||||
storageInfoRet = await getData('apiGetData')
|
||||
expect(filterStorageKeys(storageInfoRet.keys).length).toEqual(0)
|
||||
|
||||
await setPageData({
|
||||
key: "autotest_key_mock",
|
||||
data: 0
|
||||
})
|
||||
await page.waitFor(600)
|
||||
btnSetStorageButtonInfo = await page.$('.btn-setstorageSync')
|
||||
await btnSetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
btnGetStorageButtonInfo = await page.$('.btn-getstorageSync')
|
||||
await btnGetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
expect(await getData('apiGetData')).toEqual(0)
|
||||
|
||||
await setPageData({
|
||||
key: "autotest_key_mock",
|
||||
data: {
|
||||
name: "tom",
|
||||
age: 10
|
||||
}
|
||||
})
|
||||
await page.waitFor(600)
|
||||
btnSetStorageButtonInfo = await page.$('.btn-setstorageSync')
|
||||
await btnSetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
btnGetStorageButtonInfo = await page.$('.btn-getstorageSync')
|
||||
await btnGetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
let objRet = await getData('apiGetData')
|
||||
expect(objRet.name).toEqual("tom")
|
||||
|
||||
await setPageData({
|
||||
key: "autotest_key_mock",
|
||||
data: JSON.stringify({
|
||||
name: "james",
|
||||
age: 12,
|
||||
from: "american"
|
||||
})
|
||||
})
|
||||
await page.waitFor(600)
|
||||
btnSetStorageButtonInfo = await page.$('.btn-setstorageSync')
|
||||
await btnSetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
btnGetStorageButtonInfo = await page.$('.btn-getstorageSync')
|
||||
await btnGetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
let jsonStr = await getData('apiGetData')
|
||||
// 顺序不能保证,验证长度和各个属性来区分
|
||||
let parseObj = JSON.parse(jsonStr)
|
||||
expect(jsonStr.length).toEqual(43)
|
||||
expect(parseObj['age']).toEqual(12)
|
||||
expect(parseObj['from']).toEqual('american')
|
||||
expect(parseObj['name']).toEqual('james')
|
||||
|
||||
await setPageData({
|
||||
key: "autotest_key_mock",
|
||||
data: "1234567890"
|
||||
})
|
||||
await page.waitFor(600)
|
||||
btnSetStorageButtonInfo = await page.$('.btn-setstorageSync')
|
||||
await btnSetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
btnGetStorageButtonInfo = await page.$('.btn-getstorageSync')
|
||||
await btnGetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
let strRet = await getData('apiGetData')
|
||||
// 顺序不能保证,验证长度和各个属性来区分
|
||||
expect(typeof strRet).toEqual("string")
|
||||
expect(strRet).toEqual("1234567890")
|
||||
|
||||
await setPageData({
|
||||
key: "autotest_key_mock",
|
||||
data: "1234567.890"
|
||||
})
|
||||
await page.waitFor(600)
|
||||
btnSetStorageButtonInfo = await page.$('.btn-setstorageSync')
|
||||
await btnSetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
btnGetStorageButtonInfo = await page.$('.btn-getstorageSync')
|
||||
await btnGetStorageButtonInfo.tap()
|
||||
await page.waitFor(600)
|
||||
let strRet2 = await getData('apiGetData')
|
||||
// 顺序不能保证,验证长度和各个属性来区分
|
||||
expect(typeof strRet2).toEqual("string")
|
||||
expect(strRet2).toEqual("1234567.890")
|
||||
});
|
||||
|
||||
it('saveUTSJSONObject', async () => {
|
||||
await page.callMethod('jest_saveUTSJSONObject')
|
||||
await page.waitFor(600)
|
||||
const {
|
||||
jest_saveUTSJSONObjectSyncResult,
|
||||
jest_saveUTSJSONObjectAsyncResult
|
||||
} = await page.data('data')
|
||||
expect(jest_saveUTSJSONObjectSyncResult).toBe(1)
|
||||
expect(jest_saveUTSJSONObjectAsyncResult).toBe(1)
|
||||
})
|
||||
|
||||
// ios js 层与原生层通信时,原始数据类型丢失
|
||||
if (!isIOS) {
|
||||
it('saveUTSJSONObjectArray', async () => {
|
||||
await page.callMethod('jest_saveUTSJSONObjectArray')
|
||||
await page.waitFor(600)
|
||||
const {
|
||||
jest_saveUTSJSONObjectArraySyncResult
|
||||
} = await page.data('data')
|
||||
expect(jest_saveUTSJSONObjectArraySyncResult).toBe(1)
|
||||
})
|
||||
}
|
||||
|
||||
});
|
||||
在新工单中引用
屏蔽一个用户