35 lines
3.4 KiB
JavaScript
35 lines
3.4 KiB
JavaScript
const path=require('path'),assert=require('assert');
|
|
const root=path.resolve(__dirname,'../../../.local-acceptance');
|
|
const auto=require(path.join(root,'automation/node_modules/miniprogram-automator'));
|
|
const timer=setTimeout(()=>{console.error('Timeout');process.exit(2)},55000);
|
|
(async()=>{const mp=await auto.connect({wsEndpoint:'ws://127.0.0.1:19420'});try{
|
|
await mp.evaluate(()=>{wx.__acceptanceMessages=[];if(!wx.__savedToast)wx.__savedToast=wx.showToast;if(!wx.__savedModal)wx.__savedModal=wx.showModal;wx.showToast=function(o){wx.__acceptanceMessages.push(o.title);return undefined};wx.showModal=function(o){wx.__acceptanceMessages.push(o.content);if(o.success)o.success({confirm:true,cancel:false})}});
|
|
let p=await mp.navigateTo('/pages/users/upgradeVIP');await p.waitFor(1200);
|
|
assert.strictEqual(await p.data('purchaseEnabled'),false);await (await p.$('.payBtn')).tap();await p.waitFor(250);
|
|
await mp.screenshot({path:path.join(root,'logs/membership-closed-click.png')});
|
|
await mp.evaluate(()=>{const u=wx.getStorageSync('userInfo')||{};wx.removeStorageSync('virtual-member-order:'+(u.id||u.user_id||'anonymous'))});
|
|
await (await p.$('.recent-member-order')).tap();await p.waitFor(250);
|
|
await mp.screenshot({path:path.join(root,'logs/order-empty.png')});
|
|
for(const state of ['PENDING','FULFILLED']){
|
|
await mp.evaluate(s=>{const u=wx.getStorageSync('userInfo')||{};wx.setStorageSync('virtual-member-order:'+(u.id||u.user_id||'anonymous'),'LOCAL-ACCEPTANCE-'+s)},state);
|
|
await (await p.$('.recent-member-order')).tap();await p.waitFor(500);
|
|
const stored=await mp.evaluate(()=>{const u=wx.getStorageSync('userInfo')||{};return wx.getStorageSync('virtual-member-order:'+(u.id||u.user_id||'anonymous'))});
|
|
assert.equal(!!stored,state==='PENDING');
|
|
}
|
|
await mp.evaluate(()=>{const u=wx.getStorageSync('userInfo')||{};wx.setStorageSync('virtual-member-order:'+(u.id||u.user_id||'anonymous'),'LOCAL-ACCEPTANCE-UNKNOWN')});
|
|
await (await p.$('.recent-member-order')).tap();await p.waitFor(500);
|
|
await mp.evaluate(()=>{const u=wx.getStorageSync('userInfo')||{};wx.removeStorageSync('virtual-member-order:'+(u.id||u.user_id||'anonymous'))});
|
|
p=await mp.navigateTo('/pages/users/upgradeVIP2');await p.waitFor(1000);
|
|
assert.equal((await p.data('rankList')).length,0);assert.match(await p.data('specialVIP.discount_desc'),/暂无/);
|
|
const b=await p.$('.payBtn');assert(b,'Single-service closed button missing');await b.tap();await p.waitFor(250);
|
|
await mp.screenshot({path:path.join(root,'logs/single-service-closed.png')});
|
|
await mp.evaluate(()=>wx.__loveAcceptance.scenario('failure',true));
|
|
const failed=await mp.navigateTo('/pages/users/upgradeVIP2');await failed.waitFor(800);
|
|
assert.match(await failed.data('specialVIP.discount_desc'),/加载失败/);
|
|
await mp.evaluate(()=>wx.__loveAcceptance.scenario('failure',false));
|
|
await mp.navigateBack();
|
|
const messages=await mp.evaluate(()=>wx.__acceptanceMessages);
|
|
for(const expected of ['会员购买暂不可用','暂无待查询订单','支付结果仍在确认中','会员权益已到账','单项服务暂不可购买'])assert(messages.some(s=>s.includes(expected)),expected);
|
|
console.log(JSON.stringify({passed:true,messages:[...new Set(messages)]}));
|
|
}finally{await mp.evaluate(()=>{wx.__loveAcceptance.scenario('failure',false);if(wx.__savedToast)wx.showToast=wx.__savedToast;if(wx.__savedModal)wx.showModal=wx.__savedModal});await mp.disconnect();clearTimeout(timer)}})().catch(e=>{console.error(e.message);clearTimeout(timer);process.exitCode=1});
|