同步小程序与管理端更新,完善抽烟记录和解绑冷静期
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
const test=require('node:test');
|
||||
const assert=require('node:assert/strict');
|
||||
const path=require('node:path');
|
||||
const createLoader=require('./load-module.cjs');
|
||||
function load(wx,api) {return createLoader({wx,Date,Promise},{'./request':{api}})(path.join(__dirname,'../utils/user-location.js'));}
|
||||
test('current address uses live coordinates first and shares concurrent lookups',async()=>{
|
||||
let reports=0;const {currentUserLocation}=load({getStorageSync:()=>1,getFuzzyLocation:o=>o.success({latitude:25,longitude:102})},{updateIpLocation:async data=>{reports++;assert.equal(data.lat,25);return {location:'云南省 昆明市 盘龙区'};}});
|
||||
const [a,b]=await Promise.all([currentUserLocation(),currentUserLocation()]);assert.equal(a.location,'云南省 昆明市 盘龙区');assert.equal(b.location,a.location);assert.equal(reports,1);await currentUserLocation();assert.equal(reports,1);
|
||||
});
|
||||
test('location permission failure falls back to current user, never partner',async()=>{
|
||||
const {currentUserLocation}=load({getStorageSync:()=>2,getFuzzyLocation:o=>o.fail()},{updateIpLocation:async()=>{throw Error('offline');},coupleInfo:async()=>({partner1:{id:1,location:'对方地址'},partner2:{id:2,location:'我的地址'}})});
|
||||
assert.equal((await currentUserLocation()).location,'我的地址');
|
||||
});
|
||||
test('switching users clears address cache and unavailable coordinates do not become an address',async()=>{
|
||||
let uid=1;const {currentUserLocation}=load({getStorageSync:()=>uid},{updateIpLocation:async()=>({}),coupleInfo:async()=>({partner1:{id:uid,location:uid===1?'我的地址':'25.0,102.0'}})});
|
||||
assert.equal((await currentUserLocation()).location,'我的地址');uid=2;assert.equal((await currentUserLocation()).location,'');
|
||||
});
|
||||
Reference in New Issue
Block a user