basicTest.test.js 1.4 KB
Newer Older
Y
yurj26 已提交
1 2
const ERR_RE = /expected:<(.*)> but was:<(.*)>/
let result;
杜庆泉's avatar
杜庆泉 已提交
3
const resultEmptyError = '获取到 result 是空的, 请运行项目进行排查'
Y
yurj26 已提交
4 5

beforeAll(async () => {
6 7 8 9 10
  await program.reLaunch('/pages/index/basicTest')
  page = await program.currentPage()
  await page.waitFor(3000);
  const data = await page.data();
  result = data['result']
Y
yurj26 已提交
11 12 13
})

function getApiFailed(describe, api) {
杜庆泉's avatar
杜庆泉 已提交
14 15 16
  if(Object.keys(result).length === 0){
    return resultEmptyError
  }
17 18 19 20
  const failed = result[describe]?.failed?.find(item => {
    return item.split(':')[0] === api
  })
  return failed
Y
yurj26 已提交
21 22 23
}

describes.forEach(d => {
24 25 26 27
  d?.describe && describe(d.describe, () => {
    d?.tests && d.tests.forEach(api => {
      it(api, () => {
        const failed = getApiFailed(d.describe, api)
杜庆泉's avatar
杜庆泉 已提交
28 29 30
        if(failed == resultEmptyError){
          expect('').toBe(resultEmptyError)
        }else if (failed) {
31 32 33 34 35 36 37 38 39 40 41
          const parts = failed.split('\n')
          const matches = parts[1].match(ERR_RE)
          if (matches?.length) {
            expect(matches[2]).toEqual(matches[1])
          } else {
            expect(parts[1]).toEqual('')
          }
        }
      })
    })
  })
Y
yurj26 已提交
42
})
43

44
if (process.env.UNI_PROJECT_TYPE === '2.0' && process.env.uniTestPlatformInfo.toLocaleLowerCase().startsWith('ios')) {
W
wangjinxin613 已提交
45 46 47 48
  describe('testTypeFromAppJs',  () => {
    it("jest_testTypeFromAppJs", async () => {
      const res = await page.callMethod('jest_testTypeFromAppJs')
      expect(res).toEqual(true)
F
fxy060608 已提交
49
    })
50
  })
杜庆泉's avatar
杜庆泉 已提交
51
}