测试:添加任务测试用例
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
import { Application, BackendSession, pinus } from "pinus";
|
||||
import { resResult, parseGoodStr } from "../../../pubUtils/util";
|
||||
import { resResult, parseGoodStr, getRandEelm } from "../../../pubUtils/util";
|
||||
import { STATUS, TASK_FUN_TYPE } from "../../../consts";
|
||||
import { gameData } from "../../../pubUtils/data";
|
||||
import { UserTaskRecModel } from "../../../db/UserTaskRec";
|
||||
import { addItems } from "../../../services/rewardService";
|
||||
import { UserTaskModel } from "../../../db/UserTask";
|
||||
import { getCurWeekDate, nowSeconds } from "../../../pubUtils/timeUtil";
|
||||
import { DicDailyTask, DicAchievement } from "../../../pubUtils/dictionary/DicTask";
|
||||
import { getMainTask, refDailyTaskBox, removeHistoryTask, getDailyTask, getCurTask } from "../../../services/taskService";
|
||||
import { DicDailyTask, DicAchievement, DicMainTask } from "../../../pubUtils/dictionary/DicTask";
|
||||
import { getMainTask, refDailyTaskBox, removeHistoryTask, getDailyTask, getCurTask, checkTask } from "../../../services/taskService";
|
||||
import { TASK } from "../../../pubUtils/dicParam";
|
||||
|
||||
export default function(app: Application) {
|
||||
@@ -179,6 +179,28 @@ export class ShopHandler {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 随机完成某一个任务
|
||||
* @param {{ type: number }} msg
|
||||
* @param {BackendSession} session
|
||||
* @memberof TaskHandler
|
||||
*/
|
||||
async debugCompleteRandTask(msg: { type: number }, session: BackendSession) {
|
||||
const roleId: string = session.get('roleId');
|
||||
const sid: string = session.get('sid');
|
||||
const funcs: number[] = session.get('funcs');
|
||||
const { type } = msg
|
||||
let tasks: (DicMainTask|DicDailyTask|DicAchievement)[] = [];
|
||||
for(let [_id, task] of gameData.tasks.get(type)) {
|
||||
tasks.push(task);
|
||||
}
|
||||
let task = getRandEelm(tasks, 1)[0];
|
||||
await checkTask(roleId, sid, funcs, task.taskType, task.condition, false, { isDebug: true });
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
task
|
||||
});
|
||||
}
|
||||
|
||||
async debugRefTask(msg: { type: number }, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
let sid = session.get('sid');
|
||||
|
||||
@@ -6,7 +6,7 @@ import { ON_ADD_CHANNEL_ROUTE } from '../app/consts';
|
||||
export class Client {
|
||||
private _client;
|
||||
private _roleInfo;
|
||||
constructor(tel: string = '13911134885') {
|
||||
constructor(tel: string = '13636354764') {
|
||||
this._client = new PinusWSClient();
|
||||
|
||||
let host = '127.0.0.1';
|
||||
|
||||
120
game-server/test/task.test.ts
Normal file
120
game-server/test/task.test.ts
Normal file
@@ -0,0 +1,120 @@
|
||||
import { Client } from './Client';
|
||||
import 'mocha';
|
||||
import { PinusWSClient } from 'pinus-robot-plugin';
|
||||
import { expect } from 'chai';
|
||||
import { checkSuccessResponse, checkDisplayItems } from './CheckPatten';
|
||||
import { DEBUG_MAGIC_WORD, AUCTION_SOURCE, CURRENCY_BY_TYPE, CURRENCY_TYPE, AUCTION_STAGE, DIVIDEND_STATUS } from '../app/consts';
|
||||
import { LOT_STATUS, TASK_FUN_TYPE } from '../../shared/consts';
|
||||
import { take } from 'underscore';
|
||||
|
||||
const GOOD_ID_TIEJIAN = 1;
|
||||
const GOOD_ID_GANGJIAN = 2;
|
||||
|
||||
describe('任务测试', function () {
|
||||
let pinusClient: PinusWSClient;
|
||||
let roleInfo;
|
||||
|
||||
beforeEach(function (done) {
|
||||
const c = new Client();
|
||||
const cT = new Client('13121622738');
|
||||
const timer = setInterval(() => {
|
||||
if (c.client && cT.client) {
|
||||
pinusClient = c.client;
|
||||
roleInfo = c.roleInfo;
|
||||
clearInterval(timer);
|
||||
done();
|
||||
}
|
||||
}, 500);
|
||||
});
|
||||
|
||||
afterEach(function (done) {
|
||||
pinusClient.disconnect();
|
||||
// disconnect 后等待 500ms,供服务器清理环境、退出频道等
|
||||
setTimeout(() => {
|
||||
done();
|
||||
}, 500);
|
||||
});
|
||||
|
||||
it('检查entery中返回的任务状态', function (done) {
|
||||
checkMainTask(roleInfo.mainTask);
|
||||
checkDailyTask(roleInfo.dailyTask);
|
||||
checkAchievement(roleInfo.achievement);
|
||||
done();
|
||||
});
|
||||
|
||||
it('检查领取主线任务', function (done) {
|
||||
checkReceiveTask(pinusClient, done, TASK_FUN_TYPE.MAIN);
|
||||
});
|
||||
it('检查领取每日任务', function (done) {
|
||||
checkReceiveTask(pinusClient, done, TASK_FUN_TYPE.DAILY);
|
||||
});
|
||||
it('检查领取成就', function (done) {
|
||||
checkReceiveTask(pinusClient, done, TASK_FUN_TYPE.ACHIEVEMENT);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
// 检查领取
|
||||
function checkReceiveTask(pinusClient, done, type: number) {
|
||||
// 清空任务
|
||||
pinusClient.request('role.taskHandler.debugRefTask', { magicWord: DEBUG_MAGIC_WORD, type }, (res) => {
|
||||
checkSuccessResponse(res);
|
||||
// 完成一个任务
|
||||
pinusClient.request('role.taskHandler.debugCompleteRandTask', { magicWord: DEBUG_MAGIC_WORD, type }, (res) => {
|
||||
checkSuccessResponse(res);
|
||||
expect(res.data.task).to.be.an('object');
|
||||
expect(res.data.task.id).to.be.a('number');
|
||||
|
||||
pinusClient.request('role.taskHandler.receiveTask', { type, id: res.data.task.id }, (res) => {
|
||||
checkSuccessResponse(res);
|
||||
expect(res.data.type).to.be.a('number');
|
||||
expect(res.data.id).to.be.a('number');
|
||||
expect(res.data.count).to.be.a('number');
|
||||
expect(res.data.received).equal(true);
|
||||
expect(res.data.point).to.be.a('number');
|
||||
expect(res.data.weeklyPoint).to.be.a('number');
|
||||
checkDisplayItems(res.data.goods);
|
||||
done();
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// 检查主线任务数据
|
||||
function checkMainTask(mainTask) {
|
||||
expect(mainTask).to.be.an('object');
|
||||
expect(mainTask.stage).to.be.a('number');
|
||||
expect(mainTask.taskList).to.be.an('array');
|
||||
mainTask.taskList.forEach(task => checkSingleTask(task));
|
||||
}
|
||||
|
||||
// 检查日常任务数据
|
||||
function checkDailyTask(dailyTask) {
|
||||
expect(dailyTask).to.be.an('object');
|
||||
expect(dailyTask.point).to.be.a('number');
|
||||
expect(dailyTask.weeklyPoint).to.be.an('number');
|
||||
dailyTask.taskList.forEach(task => checkSingleTask(task));
|
||||
dailyTask.box.forEach(id => {
|
||||
expect(id).to.be.a('number');
|
||||
})
|
||||
}
|
||||
|
||||
// 检查成就
|
||||
function checkAchievement(achievement) {
|
||||
expect(achievement).to.be.an('object');
|
||||
expect(achievement.point).to.be.a('number');
|
||||
achievement.taskList.forEach(task => checkSingleTask(task));
|
||||
achievement.box.forEach(id => {
|
||||
expect(id).to.be.a('number');
|
||||
})
|
||||
}
|
||||
|
||||
// 检查在taskList中的某一个任务数据
|
||||
function checkSingleTask(task) {
|
||||
expect(task).to.be.an('object');
|
||||
expect(task.id).to.be.a('number');
|
||||
expect(task.count).to.be.a('number');
|
||||
expect(task.received).to.be.a('boolean');
|
||||
}
|
||||
@@ -22,6 +22,7 @@ export class TaskParam {
|
||||
title?: number;
|
||||
job?: number;
|
||||
aid?: number;
|
||||
isDebug?: boolean;
|
||||
}
|
||||
|
||||
export class TaskListReturn {
|
||||
|
||||
@@ -423,6 +423,9 @@ export async function checkTaskRec(roleId: string, type: number, group: number,
|
||||
break;
|
||||
}
|
||||
console.log('****isMatch', isMatch, checkHistory, type, taskType, group, count)
|
||||
if(param.isDebug) {
|
||||
isMatch = true;
|
||||
}
|
||||
|
||||
if (isMatch) {
|
||||
if (isInc) {
|
||||
|
||||
Reference in New Issue
Block a user