From b951fed7bfb8bb2e967d6f852a9b9f06c58e2b47 Mon Sep 17 00:00:00 2001 From: zhaofengliang Date: Mon, 12 Aug 2024 16:50:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0getLocation=E7=A4=BA=E4=BE=8B?= =?UTF-8?q?=E7=9A=84=E8=87=AA=E5=8A=A8=E5=8C=96=E8=84=9A=E6=9C=AC=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/API/get-location/get-location.test.js | 170 ++++++++ pages/API/get-location/get-location.uvue | 429 +++++++++++--------- 2 files changed, 400 insertions(+), 199 deletions(-) create mode 100644 pages/API/get-location/get-location.test.js diff --git a/pages/API/get-location/get-location.test.js b/pages/API/get-location/get-location.test.js new file mode 100644 index 00000000..73bf95ab --- /dev/null +++ b/pages/API/get-location/get-location.test.js @@ -0,0 +1,170 @@ +const PAGE_PATH = "/pages/API/get-location/get-location"; +const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase() +const isAndroid = platformInfo.startsWith('android') +const isIos = platformInfo.startsWith('ios') +const isApp = isAndroid || isIos +const isWeb = platformInfo.startsWith('web') + +describe("get-location", () => { + beforeAll(async () => { + page = await program.reLaunch(PAGE_PATH) + await page.waitFor(600) + }); + + //system 定位 + it("system+type=wgs84+success", async () => { + + await page.setData({ + jest_provider: 'system', + jest_type: 'wgs84', + jest_isAltitude: true, + jest_isGeocode: false, + jest_isHighAccuracy: false + }) + await page.callMethod('jestGetLocation') + await page.waitFor(async () => { + return await page.data('jest_complete') === true; + }); + + const data = await page.data() + const jest_errCode = data['jest_errCode'] + + if (jest_errCode > 0) { + expect((await page.data())['jest_errCode']).toEqual(expect.any(Number)); + } else { + //判断经纬度是否在正常范围 + expect((await page.data())['jest_longitude']).toBeGreaterThanOrEqual(-180); + expect((await page.data())['jest_longitude']).toBeLessThanOrEqual(180); + expect((await page.data())['jest_latitude']).toBeGreaterThanOrEqual(-90); + expect((await page.data())['jest_latitude']).toBeLessThanOrEqual(90); + //判断海拔是否正确 + expect((await page.data())['jest_altitude']).toEqual(expect.any(Number)); + expect((await page.data())['jest_altitude']).not.toEqual('0'); + } + }); + + //system 定位 + it("system+type=wgs84+success+geocode=true", async () => { + + await page.setData({ + jest_provider: 'system', + jest_type: 'wgs84', + jest_isAltitude: true, + jest_isGeocode: true, + jest_isHighAccuracy: false + }) + await page.callMethod('jestGetLocation') + await page.waitFor(async () => { + return await page.data('jest_complete') === true; + }); + + const data = await page.data() + const jest_errCode = data['jest_errCode'] + + if (jest_errCode > 0) { + if (isIos) { + expect((await page.data())['jest_errCode']).toEqual(1505603); + } else if (isAndroid) { + expect((await page.data())['jest_errCode']).toEqual(1505700); + } else { + expect((await page.data())['jest_errCode']).toEqual(expect.any(Number)); + } + } + }); + + //system 定位 + it("system+type=wgs84+success+altitude=false", async () => { + + await page.setData({ + jest_provider: 'system', + jest_type: 'wgs84', + jest_isAltitude: false, + jest_isGeocode: true, + jest_isHighAccuracy: false + }) + await page.callMethod('jestGetLocation') + await page.waitFor(async () => { + return await page.data('jest_complete') === true; + }); + + const data = await page.data() + const jest_errCode = data['jest_errCode'] + + if (jest_errCode > 0) { + //如果定位出错 + expect((await page.data())['jest_errCode']).toEqual(expect.any(Number)); + } else { + expect((await page.data())['jest_altitude']).toEqual('0'); + } + }); + + //system 定位 + it("system+type=gcj02+fail", async () => { + await page.setData({ + jest_provider: 'system', + jest_type: 'gcj02', + jest_isAltitude: true, + jest_isGeocode: true, + jest_isHighAccuracy: false + }) + await page.callMethod('jestGetLocation') + await page.waitFor(async () => { + return await page.data('jest_complete') === true; + }); + + expect((await page.data())['jest_errCode']).toEqual(1505601); + }); + + + //tencent 定位 + it("tencent+type=gcj02+success", async () => { + await page.setData({ + jest_provider: 'tencent', + jest_type: 'gcj02', + jest_isAltitude: true, + jest_isGeocode: true, + jest_isHighAccuracy: true + }) + await page.callMethod('jestGetLocation') + await page.waitFor(async () => { + return await page.data('jest_complete') === true; + }); + + const data = await page.data() + const jest_errCode = data['jest_errCode'] + + if (jest_errCode > 0) { + //如果定位出错 + expect((await page.data())['jest_errCode']).toEqual(expect.any(Number)); + } else { + //判断逆地理编码是否正确 + expect((await page.data())['jest_address']).toEqual(expect.any(String)); + //判断经纬度是否在正常范围 + expect((await page.data())['jest_longitude']).toBeGreaterThanOrEqual(-180); + expect((await page.data())['jest_longitude']).toBeLessThanOrEqual(180); + expect((await page.data())['jest_latitude']).toBeGreaterThanOrEqual(-90); + expect((await page.data())['jest_latitude']).toBeLessThanOrEqual(90); + //判断海拔是否正确 + expect((await page.data())['jest_altitude']).toEqual(expect.any(Number)); + expect((await page.data())['jest_altitude']).not.toEqual('0'); + } + }); + + //tencent 定位 + it("tencent+type=wgs84+fail", async () => { + await page.setData({ + jest_provider: 'tencent', + jest_type: 'wgs84', + jest_isAltitude: true, + jest_isGeocode: true, + jest_isHighAccuracy: true + }) + await page.callMethod('jestGetLocation') + await page.waitFor(async () => { + return await page.data('jest_complete') === true; + }); + if (isApp) { + expect((await page.data())['jest_errCode']).toEqual(1505607); + } + }); +}); diff --git a/pages/API/get-location/get-location.uvue b/pages/API/get-location/get-location.uvue index 01056972..e1891a24 100644 --- a/pages/API/get-location/get-location.uvue +++ b/pages/API/get-location/get-location.uvue @@ -1,200 +1,231 @@ - - -- GitLab