测试:添加形象影响接口测试用例
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { gameData } from "../pubUtils/data";
|
||||
import { gameData, getDicFriendByLv } from "../pubUtils/data";
|
||||
import { RoleType, RoleModel } from "../db/Role";
|
||||
import { FriendRelationType, Relation } from "../db/FriendRelation";
|
||||
import { getResStr } from "../pubUtils/util";
|
||||
@@ -16,8 +16,7 @@ import { isRoleOnline } from "./redisService";
|
||||
export async function increaseFrdCnt(role1: RoleType, role2: RoleType, originalFriendCnt: number) {
|
||||
|
||||
let { roleId, lv, friendCnt } = role1;
|
||||
let dicFriend = gameData.roleFriend.get(lv);
|
||||
|
||||
let dicFriend = getDicFriendByLv(lv);
|
||||
if(friendCnt >= dicFriend.frdCnt) return getResStr(STATUS.FRIEND_MY_CNT_MAX);
|
||||
|
||||
let { roleId: _roleId, lv: _lv, friendCnt: _friendCnt } = role2;
|
||||
|
||||
@@ -265,7 +265,7 @@ describe('寻宝创建队伍', function() {
|
||||
expect(res.data.teamCode).to.be.a('string');
|
||||
expect(res.data.roleStatus).to.be.an('array');
|
||||
res.data.roleStatus.forEach(roleSt => {
|
||||
expect(roleSt).to.have.all.keys('roleId', 'roleName', 'isCap', 'isFrd', 'headHid', 'sHid', 'topLineupCe', 'lv', 'isRobot', 'heroes', 'killed', 'totalDmg', 'frdRatio');
|
||||
expect(roleSt).to.have.all.keys('roleId', 'roleName', 'isCap', 'isFrd', 'head', 'frame', 'spine', 'topLineupCe', 'lv', 'isRobot', 'heroes', 'killed', 'totalDmg', 'frdRatio');
|
||||
});
|
||||
const roleIds = res.data.roleStatus.map(roleSt => { return roleSt.roleId });
|
||||
if (roleIds.indexOf(roleInfoT.roleId) === -1) {
|
||||
|
||||
244
game-server/test/friend.test.ts
Normal file
244
game-server/test/friend.test.ts
Normal file
@@ -0,0 +1,244 @@
|
||||
import { Client } from './Client';
|
||||
import 'mocha';
|
||||
import { PinusWSClient } from 'pinus-robot-plugin';
|
||||
import { expect } from 'chai';
|
||||
import { checkSuccessResponse } from './CheckPatten';
|
||||
import { BLOCK_OPEATE } from '../app/consts';
|
||||
|
||||
describe('pvp测试', function() {
|
||||
|
||||
let pinusClient: PinusWSClient;
|
||||
let pinusClientT: PinusWSClient; // 用做测试队友
|
||||
let roleInfo;
|
||||
let roleInfoT;
|
||||
let applyCode;
|
||||
|
||||
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;
|
||||
pinusClientT = cT.client;
|
||||
roleInfoT = cT.roleInfo;
|
||||
clearInterval(timer);
|
||||
done();
|
||||
}
|
||||
}, 500);
|
||||
});
|
||||
|
||||
afterEach(function(done) {
|
||||
pinusClient.disconnect();
|
||||
pinusClientT.disconnect();
|
||||
// disconnect 后等待 500ms,供服务器清理环境、退出频道等
|
||||
setTimeout(() => {
|
||||
done();
|
||||
}, 500);
|
||||
});
|
||||
|
||||
it('获取推荐列表', function(done) {
|
||||
pinusClient.request('role.friendHandler.getRecommend', {} , (res) => {
|
||||
checkSuccessResponse(res);
|
||||
expect(res.data.list).to.be.a('array');
|
||||
res.data.list.forEach(cur => {
|
||||
checkFriendRecommendParams(cur);
|
||||
})
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('查询好友', function(done) {
|
||||
pinusClient.request('role.friendHandler.searchUser', { value: roleInfoT.roleId } , (res) => {
|
||||
checkSuccessResponse(res);
|
||||
expect(res.data.list).to.be.a('array');
|
||||
res.data.list.forEach(cur => {
|
||||
checkFriendRecommendParams(cur);
|
||||
})
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('申请好友', function(done) {
|
||||
pinusClient.request('role.friendHandler.applyFriend', { roleIds: [roleInfoT.roleId] } , (res) => {
|
||||
checkSuccessResponse(res);
|
||||
expect(res.data.isSuccess).to.be.a('boolean');
|
||||
expect(res.data.msg).to.be.a('string');
|
||||
expect(res.data.roleIds).to.be.a('array');
|
||||
res.data.roleIds.forEach(cur => {
|
||||
expect(cur).to.be.a('string');
|
||||
})
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('获取申请列表', function(done) {
|
||||
pinusClientT.request('role.friendHandler.getApplyList', {} , (res) => {
|
||||
|
||||
checkSuccessResponse(res);
|
||||
expect(res.data.list).to.be.a('array');
|
||||
res.data.list.forEach(cur => {
|
||||
checkFriendApplyParams(cur);
|
||||
});
|
||||
|
||||
let apply = res.data.list.find(cur => cur.roleId == roleInfo.roleId);
|
||||
applyCode = apply.applyCode;
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('同意申请', function(done) {
|
||||
pinusClientT.request('role.friendHandler.handleApply', { applyCodeList: [applyCode], isPass: true } , (res) => {
|
||||
checkSuccessResponse(res);
|
||||
expect(res.data.isSuccess).to.be.a('boolean');
|
||||
expect(res.data.msg).to.be.a('string');
|
||||
expect(res.data.applyCodeList).to.be.a('array');
|
||||
res.data.applyCodeList.forEach(cur => {
|
||||
expect(cur).to.be.a('string');
|
||||
})
|
||||
|
||||
expect(res.data.list).to.be.a('array');
|
||||
res.data.list.forEach(cur => {
|
||||
checkFriendListParam(cur);
|
||||
});
|
||||
|
||||
expect(res.data.friendCnt).to.be.a('number');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('获取好友列表', function(done) {
|
||||
pinusClient.request('role.friendHandler.getFriendList', {} , (res) => {
|
||||
checkSuccessResponse(res);
|
||||
|
||||
expect(res.data.list).to.be.a('array');
|
||||
res.data.list.forEach(cur => {
|
||||
checkFriendListParam(cur);
|
||||
});
|
||||
|
||||
expect(res.data.todayReceiveCnt).to.be.a('number');
|
||||
expect(res.data.todaySendCnt).to.be.a('number');
|
||||
expect(res.data.friendCnt).to.be.a('number');
|
||||
expect(res.data.blockCnt).to.be.a('number');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('拉黑', function(done) {
|
||||
pinusClient.request('role.friendHandler.setBlackList', { roleId: roleInfoT.roleId, type: BLOCK_OPEATE.ADD } , (res) => {
|
||||
expect(res.data.frdRoleIds).to.be.a('array');
|
||||
res.data.frdRoleIds.forEach(cur => {
|
||||
expect(cur).to.be.a('string');
|
||||
});
|
||||
expect(res.data.blackRoleIds).to.be.a('array');
|
||||
res.data.blackRoleIds.forEach(cur => {
|
||||
expect(cur).to.be.a('string');
|
||||
})
|
||||
|
||||
expect(res.data.list).to.be.a('array');
|
||||
res.data.list.forEach(cur => {
|
||||
checkBlackListParam(cur);
|
||||
});
|
||||
|
||||
expect(res.data.isSuccess).to.be.a('boolean');
|
||||
expect(res.data.msg).to.be.a('string');
|
||||
expect(res.data.friendCnt).to.be.a('number');
|
||||
expect(res.data.blockCnt).to.be.a('number');
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('获取黑名单', function(done) {
|
||||
pinusClient.request('role.friendHandler.getBlackList', {} , (res) => {
|
||||
|
||||
expect(res.data.list).to.be.a('array');
|
||||
res.data.list.forEach(cur => {
|
||||
checkBlackListParam(cur);
|
||||
});
|
||||
expect(res.data.friendCnt).to.be.a('number');
|
||||
expect(res.data.blockCnt).to.be.a('number');
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('获得玩家详细信息', function(done) {
|
||||
pinusClient.request('role.friendHandler.getPlayerDetail', { roleId: roleInfoT.roleId } , (res) => {
|
||||
|
||||
// 从黑名单移除
|
||||
pinusClient.request('role.friendHandler.setBlackList', { roleId: roleInfoT.roleId, type: BLOCK_OPEATE.REMOVE_BLACK } , (res) => {
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
function checkFriendRecommendParams(data) {
|
||||
expect(data.roleId).to.be.a('string');
|
||||
expect(data.roleName).to.be.a('string');
|
||||
expect(data.lv).to.be.a('number');
|
||||
expect(data.head).to.be.a('number');
|
||||
expect(data.spine).to.be.a('number');
|
||||
expect(data.frame).to.be.a('number');
|
||||
expect(data.ce).to.be.a('number');
|
||||
expect(data.title).to.be.a('number');
|
||||
expect(data.recFrdApplyCnt).to.be.a('number');
|
||||
expect(data.type).to.be.a('number');
|
||||
expect(data.serverId).to.be.a('number');
|
||||
expect(data.serverName).to.be.a('string');
|
||||
}
|
||||
|
||||
function checkFriendApplyParams(data) {
|
||||
expect(data.applyCode).to.be.a('string');
|
||||
expect(data.roleId).to.be.a('string');
|
||||
expect(data.roleName).to.be.a('string');
|
||||
expect(data.lv).to.be.a('number');
|
||||
expect(data.head).to.be.a('number');
|
||||
expect(data.spine).to.be.a('number');
|
||||
expect(data.frame).to.be.a('number');
|
||||
expect(data.ce).to.be.a('number');
|
||||
expect(data.title).to.be.a('number');
|
||||
expect(data.friendCnt).to.be.a('number');
|
||||
expect(data.type).to.be.a('number');
|
||||
expect(data.serverId).to.be.a('number');
|
||||
expect(data.serverName).to.be.a('string');
|
||||
}
|
||||
|
||||
function checkFriendListParam(data) {
|
||||
expect(data.roleId).to.be.a('string');
|
||||
expect(data.roleName).to.be.a('string');
|
||||
expect(data.lv).to.be.a('number');
|
||||
expect(data.head).to.be.a('number');
|
||||
expect(data.spine).to.be.a('number');
|
||||
expect(data.frame).to.be.a('number');
|
||||
expect(data.ce).to.be.a('number');
|
||||
expect(data.title).to.be.a('number');
|
||||
expect(data.guildName).to.be.a('string');
|
||||
expect(data.isOnline).to.be.a('boolean');
|
||||
expect(data.quitTime).to.be.a('number');
|
||||
expect(data.friendValue).to.be.a('number');
|
||||
expect(data.friendLv).to.be.a('number');
|
||||
expect(data.canReceive).to.be.a('boolean');
|
||||
expect(data.canSend).to.be.a('boolean');
|
||||
expect(data.type).to.be.a('number');
|
||||
expect(data.serverId).to.be.a('number');
|
||||
expect(data.serverName).to.be.a('string');
|
||||
}
|
||||
|
||||
function checkBlackListParam(data) {
|
||||
expect(data.roleId).to.be.a('string');
|
||||
expect(data.roleName).to.be.a('string');
|
||||
expect(data.lv).to.be.a('number');
|
||||
expect(data.head).to.be.a('number');
|
||||
expect(data.spine).to.be.a('number');
|
||||
expect(data.frame).to.be.a('number');
|
||||
expect(data.ce).to.be.a('number');
|
||||
expect(data.title).to.be.a('number');
|
||||
expect(data.guildName).to.be.a('string');
|
||||
expect(data.isOnline).to.be.a('boolean');
|
||||
expect(data.quitTime).to.be.a('number');
|
||||
expect(data.type).to.be.a('number');
|
||||
expect(data.serverId).to.be.a('number');
|
||||
expect(data.serverName).to.be.a('string');
|
||||
}
|
||||
@@ -70,6 +70,7 @@ describe('军团测试', function() {
|
||||
expect(res.data).to.have.deep.property('leader').that.is.an('object');
|
||||
expect(res.data.leader).to.have.deep.property('roleName').that.is.an('string');
|
||||
expect(res.data.leader).to.have.deep.property('frame').that.is.an('number');
|
||||
expect(res.data.leader).to.have.deep.property('spine').that.is.an('number');
|
||||
expect(res.data.leader).to.have.deep.property('head').that.is.an('number');
|
||||
expect(res.data.leader).to.have.deep.property('lv').that.is.an('number');
|
||||
expect(res.data.leader).to.have.deep.property('ce').that.is.an('number');
|
||||
@@ -101,6 +102,7 @@ describe('军团测试', function() {
|
||||
expect(list).to.have.deep.property('roleName').that.is.a('string');
|
||||
expect(list).to.have.deep.property('ce').that.is.a('number');
|
||||
expect(list).to.have.deep.property('head').that.is.a('number');
|
||||
expect(list).to.have.deep.property('spine').that.is.a('number');
|
||||
expect(list).to.have.deep.property('frame').that.is.a('number');
|
||||
expect(list).to.have.deep.property('lv').that.is.a('number');
|
||||
expect(list).to.have.deep.property('title').that.is.a('number');
|
||||
@@ -120,6 +122,7 @@ describe('军团测试', function() {
|
||||
expect(list).to.have.deep.property('roleName').that.is.a('string');
|
||||
expect(list).to.have.deep.property('ce').that.is.a('number');
|
||||
expect(list).to.have.deep.property('head').that.is.a('number');
|
||||
expect(list).to.have.deep.property('spine').that.is.a('number');
|
||||
expect(list).to.have.deep.property('frame').that.is.a('number');
|
||||
expect(list).to.have.deep.property('lv').that.is.a('number');
|
||||
expect(list).to.have.deep.property('title').that.is.a('number');
|
||||
@@ -143,6 +146,7 @@ describe('军团测试', function() {
|
||||
expect(list).to.have.deep.property('roleName').that.is.a('string');
|
||||
expect(list).to.have.deep.property('ce').that.is.a('number');
|
||||
expect(list).to.have.deep.property('head').that.is.a('number');
|
||||
expect(list).to.have.deep.property('spine').that.is.a('number');
|
||||
expect(list).to.have.deep.property('frame').that.is.a('number');
|
||||
expect(list).to.have.deep.property('lv').that.is.a('number');
|
||||
expect(list).to.have.deep.property('title').that.is.a('number');
|
||||
|
||||
161
game-server/test/pvp.test.ts
Normal file
161
game-server/test/pvp.test.ts
Normal file
@@ -0,0 +1,161 @@
|
||||
import { Client } from './Client';
|
||||
import 'mocha';
|
||||
import { PinusWSClient } from 'pinus-robot-plugin';
|
||||
import { expect } from 'chai';
|
||||
import { checkSuccessResponse } from './CheckPatten';
|
||||
|
||||
describe('pvp测试', function() {
|
||||
let pinusClient: PinusWSClient;
|
||||
let detailRoleId;
|
||||
|
||||
beforeEach(function(done) {
|
||||
const c = new Client();
|
||||
const timer = setInterval(() => {
|
||||
if (c.client) {
|
||||
pinusClient = c.client;
|
||||
clearInterval(timer);
|
||||
done();
|
||||
}
|
||||
}, 500);
|
||||
});
|
||||
|
||||
afterEach(function(done) {
|
||||
pinusClient.disconnect();
|
||||
// disconnect 后等待 500ms,供服务器清理环境、退出频道等
|
||||
setTimeout(() => {
|
||||
done();
|
||||
}, 500);
|
||||
});
|
||||
|
||||
it('获得主界面信息', function(done) {
|
||||
getData(pinusClient, false, function(data) {
|
||||
detailRoleId = data.oppPlayers[0].roleId;
|
||||
done();
|
||||
}); // 先不结算赛季
|
||||
});
|
||||
|
||||
it('获取对手详细信息', function(done) {
|
||||
pinusClient.request('battle.pvpHandler.getPlayerDetail', { roleId: detailRoleId }, (res) => {
|
||||
checkSuccessResponse(res);
|
||||
expect(res.data.roleId).to.be.a('string');
|
||||
expect(res.data.roleName).to.be.a('string');
|
||||
expect(res.data.lv).to.be.a('number');
|
||||
expect(res.data.title).to.be.a('number');
|
||||
expect(res.data.head).to.be.a('number');
|
||||
expect(res.data.frame).to.be.a('number');
|
||||
expect(res.data.spine).to.be.a('number');
|
||||
expect(res.data.defCe).to.be.a('number');
|
||||
expect(res.data.score).to.be.a('number');
|
||||
expect(res.data.rank).to.be.a('number');
|
||||
expect(res.data.pLv).to.be.a('number');
|
||||
expect(res.data.heroes).to.be.a('array');
|
||||
res.data.heroes.forEach(hero => {
|
||||
expect(hero.actorId).to.be.a('number');
|
||||
expect(hero.lv).to.be.a('number');
|
||||
expect(hero.star).to.be.a('number');
|
||||
expect(hero.colorStar).to.be.a('number');
|
||||
expect(hero.quality).to.be.a('number');
|
||||
expect(hero.score).to.be.a('number');
|
||||
});
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('刷新对手', function(done) {
|
||||
pinusClient.request('battle.pvpHandler.refreshOppPlayer', { }, (res) => {
|
||||
checkSuccessResponse(res);
|
||||
checkOppPlayers(res.data.oppPlayers);
|
||||
expect(res.data.refOppCnt).to.be.a('number');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('获得排行榜', function(done) {
|
||||
pinusClient.request('battle.pvpHandler.getRank', { }, (res) => {
|
||||
checkSuccessResponse(res);
|
||||
expect(res.data.ranks).to.be.a('array');
|
||||
res.data.ranks.forEach(rank => {
|
||||
checkRank(rank);
|
||||
});
|
||||
checkRank(res.data.myRank);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function checkRank(rank) {
|
||||
expect(rank.rank).to.be.a('number');
|
||||
expect(rank.roleId).to.be.a('string');
|
||||
expect(rank.roleName).to.be.a('string');
|
||||
expect(rank.head).to.be.a('number');
|
||||
expect(rank.frame).to.be.a('number');
|
||||
expect(rank.spine).to.be.a('number');
|
||||
expect(rank.num).to.be.a('number');
|
||||
expect(rank.title).to.be.a('number');
|
||||
expect(rank.lv).to.be.a('number');
|
||||
}
|
||||
|
||||
function getData(pinusClient, seasonEnd: boolean, cb) {
|
||||
|
||||
pinusClient.request('battle.pvpHandler.getData', {}, (res) => {
|
||||
checkSuccessResponse(res);
|
||||
expect(res.data.warId).to.be.a('number');
|
||||
expect(res.data.seasonNum).to.be.a('number');
|
||||
expect(res.data.seasonEndTime).to.be.a('number');
|
||||
expect(res.data.myRank).to.be.a('number');
|
||||
checkOppPlayers(res.data.oppPlayers);
|
||||
expect(res.data.heroes).to.be.a('array');
|
||||
res.data.heroes.forEach(hero => {
|
||||
expect(hero.actorId).to.be.a('number');
|
||||
expect(hero.dataId).to.be.a('number');
|
||||
expect(hero.order).to.be.a('number');
|
||||
});
|
||||
expect(res.data.score).to.be.a('number');
|
||||
expect(res.data.pLv).to.be.a('number');
|
||||
expect(res.data.winStreakNum).to.be.a('number');
|
||||
expect(res.data.challengeCnt).to.be.a('number');
|
||||
expect(res.data.challengeRefTime).to.be.a('number');
|
||||
expect(res.data.receivedBox).to.be.a('array');
|
||||
res.data.receivedBox.forEach(box => {
|
||||
expect(box).to.be.a('number');
|
||||
});
|
||||
expect(res.data.hisScore).to.be.a('number');
|
||||
expect(res.data.heroScores).to.be.a('array');
|
||||
res.data.heroScores.forEach(heroScore => {
|
||||
expect(heroScore.hid).to.be.a('number');
|
||||
expect(heroScore.score).to.be.a('number');
|
||||
});
|
||||
expect(res.data.isFirstEntry).to.be.a('boolean');
|
||||
expect(res.data.isDefaultHero).to.be.a('boolean');
|
||||
expect(res.data.refOppCnt).to.be.a('number');
|
||||
if(seasonEnd) {
|
||||
checkSeasonResult(res.data.seasonResult);
|
||||
}
|
||||
cb(res.data);
|
||||
});
|
||||
}
|
||||
|
||||
function checkOppPlayers(oppPlayers) {
|
||||
expect(oppPlayers).to.be.a('array');
|
||||
oppPlayers.forEach(player => {
|
||||
expect(player.pos).to.be.a('number');
|
||||
expect(player.defCe).to.be.a('number');
|
||||
expect(player.frame).to.be.a('number');
|
||||
expect(player.head).to.be.a('number');
|
||||
expect(player.lv).to.be.a('number');
|
||||
expect(player.oppRoleId).to.be.a('string');
|
||||
expect(player.pLv).to.be.a('number');
|
||||
expect(player.rankLv).to.be.a('number');
|
||||
expect(player.roleName).to.be.a('string');
|
||||
expect(player.spine).to.be.a('number');
|
||||
expect(player.title).to.be.a('number');
|
||||
expect(player.roleId).to.be.a('string');
|
||||
expect(player.addScore).to.be.a('number');
|
||||
expect(player.plusScore).to.be.a('number');
|
||||
});
|
||||
}
|
||||
|
||||
function checkSeasonResult(resultRecord) {
|
||||
expect(resultRecord).to.be.a('object');
|
||||
}
|
||||
@@ -55,7 +55,7 @@ import { RewardInter } from "./interface";
|
||||
import { dicArmyDevelopConsume } from '../pubUtils/dictionary/DicArmyDevelopConsume';
|
||||
import { dicArmyBossRank } from '../pubUtils/dictionary/DicArmyBossRank';
|
||||
import { dicArmyDonate } from '../pubUtils/dictionary/DicArmyDonateBoxReward';
|
||||
import { dicRoleFriend } from "./dictionary/DicRoleFriend";
|
||||
import { dicRoleFriend, DicRoleFriend } from "./dictionary/DicRoleFriend";
|
||||
import { dicRoleFriendLv } from "./dictionary/DicRoleFriendLv";
|
||||
import { Attribute } from "../domain/roleField/attribute";
|
||||
|
||||
@@ -419,4 +419,19 @@ export function getFriendLvByExp(exp: number) {
|
||||
if(exp < sum) break;
|
||||
}
|
||||
return resultLv;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据主公当前经验获得当前等级
|
||||
* @param exp 累积经验
|
||||
*/
|
||||
export function getDicFriendByLv(lv: number) {
|
||||
let dicFriend: DicRoleFriend;
|
||||
let entries = gameData.roleFriend.entries();
|
||||
for (let [dicLv, dic ] of entries) {
|
||||
dicFriend = dic;
|
||||
if(lv > dicLv) break;
|
||||
}
|
||||
|
||||
return dicFriend;
|
||||
}
|
||||
Reference in New Issue
Block a user