同步小程序与管理端更新,完善抽烟记录和解绑冷静期
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
const test=require('node:test');
|
||||
const assert=require('node:assert/strict');
|
||||
const path=require('node:path');
|
||||
const fs=require('node:fs');
|
||||
const createLoader=require('./load-module.cjs');
|
||||
function setup(update) {
|
||||
let definition;const calls=[],toasts=[],tabs=[];
|
||||
const api={updatePartnerProfile:async payload=>{calls.push(payload);return update(payload);}};
|
||||
const load=createLoader({Page:value=>definition=value,wx:{getStorageSync:()=>1,showToast:value=>toasts.push(value)},console,Date}, {'../../utils/request':{api,getImageUrl:value=>value},'../../utils/page-cache':{withDataCache:page=>page}});
|
||||
load(path.join(__dirname,'../pages/profile/profile.js'));
|
||||
let refreshes=0;
|
||||
const page={...definition,data:{...definition.data,hasPartner:true,partnerId:42,coupleId:2,partnerName:'TA原昵称',partnerDetail:'20岁',partnerGenderRaw:'female',partnerBirthday:'2006-01-01',tempLoveDate:'2025-07-03',loveStartDate:'2025-07-03',tempLoveStory:'原故事'},setData(value){Object.assign(this.data,value);},getTabBar:()=>({setHidden:value=>tabs.push(value)}),async loadData(){refreshes++;}};
|
||||
return {page,calls,toasts,tabs,refreshes:()=>refreshes};
|
||||
}
|
||||
test('partner card opens editing directly and saves the internal partner id with changed fields',async()=>{
|
||||
const e=setup(async()=>({success:true}));e.page.showEditPartnerModal();
|
||||
e.page.onEditPartnerNicknameInput({detail:{value:' 新昵称 '}});e.page.onEditPartnerGenderChange({detail:{value:0}});
|
||||
await e.page.savePartnerProfile();
|
||||
assert.equal(e.calls[0].partner_id,42);assert.equal(e.calls[0].nickname,'新昵称');assert.equal(e.calls[0].gender,'male');assert.equal(e.calls[0].birthday,'2006-01-01');
|
||||
assert.equal(e.page.data.showEditPartnerModal,false);assert.equal(e.refreshes(),1);assert.deepEqual(e.tabs,[true,false]);
|
||||
const markup=fs.readFileSync(path.join(__dirname,'../pages/profile/profile.wxml'),'utf8');
|
||||
assert.ok(markup.includes('class="j-relation-card" bindtap="showEditPartnerModal"'));assert.ok(!markup.includes('关系管理'));assert.ok(!markup.includes('编辑TA的资料 →'));
|
||||
});
|
||||
test('failed partner save preserves editing, repeated save is blocked, and changed relationship cannot submit',async()=>{
|
||||
let finish;const e=setup(()=>new Promise(resolve=>finish=resolve));e.page.showEditPartnerModal();
|
||||
const pending=e.page.savePartnerProfile();await e.page.savePartnerProfile();e.page.hideEditPartnerModal();
|
||||
assert.equal(e.calls.length,1);assert.equal(e.page.data.showEditPartnerModal,true);
|
||||
finish({success:false,error:'保存失败'});await pending;
|
||||
assert.equal(e.page.data.showEditPartnerModal,true);assert.equal(e.page.data.partnerSaving,false);assert.equal(e.refreshes(),0);
|
||||
e.page.data.partnerId=43;await e.page.savePartnerProfile();assert.equal(e.calls.length,1);
|
||||
});
|
||||
Reference in New Issue
Block a user