获取军团列表测试用例

This commit is contained in:
luying
2021-01-18 16:42:08 +08:00
parent a8965d4185
commit 97216647b2
5 changed files with 168 additions and 19 deletions

View File

@@ -1,4 +1,6 @@
import {Application, BackendSession, pinus} from 'pinus'; import {Application, BackendSession, pinus} from 'pinus';
import { resResult } from '../../../pubUtils/util';
import { STATUS } from '../../../consts';
export default function(app: Application) { export default function(app: Application) {
return new GuildHandler(app); return new GuildHandler(app);
@@ -14,7 +16,19 @@ export class GuildHandler {
} }
//TODO 获取军团列表 //TODO 获取军团列表
async getGuildList() { async getGuildList(msg: {page: number, showPeopleMax: boolean, name: string }, session: BackendSession) {
const list = [{
code: "code",
name: "name",
icon: 1,
lv: 0,
peopleNum: 0,
leader: "leader",
ceCondition: 0,
quitTime: 0,
hasApply: true
}];
return resResult(STATUS.SUCCESS, { list });
} }
} }

View File

@@ -7,7 +7,7 @@
"build": "tsc", "build": "tsc",
"start": "yarn run build && cd dist && node app", "start": "yarn run build && cd dist && node app",
"dev": "node tsrun.js", "dev": "node tsrun.js",
"test": "yarn run build", "test": "./node_modules/mocha/bin/mocha -t 5000 -r ts-node/register ./test/*test.ts",
"cov": "nyc mocha", "cov": "nyc mocha",
"ci": "yarn run test", "ci": "yarn run test",
"gen-api-ref": "node ../../../node_modules/typedoc/bin/typedoc --mode file --hideGenerator --excludeExternals --ignoreCompilerErrors --out ../../../run/site/public/api-reference/pinus-loader lib/", "gen-api-ref": "node ../../../node_modules/typedoc/bin/typedoc --mode file --hideGenerator --excludeExternals --ignoreCompilerErrors --out ../../../run/site/public/api-reference/pinus-loader lib/",

View File

@@ -0,0 +1,81 @@
import 'mocha';
import { PinusWSClient, PinusWSClientEvent } from 'pinus-robot-plugin';
import { expect } from 'chai';
describe('军团测试', function() {
// it('异步请求应该返回一个对象', function(done){
// request
// .get('https://api.github.com')
// .end(function(err, res){
// expect(res).to.be.an('object');
// done();
// });
// });
var pinusClient;
var roleInfo;
beforeEach(function(done) {
pinusClient = new PinusWSClient();
pinusClient.on(PinusWSClientEvent.EVENT_IO_ERROR, (event) => {
// 错误处理
// console.error('error', event);
done();
});
pinusClient.on(PinusWSClientEvent.EVENT_CLOSE, function(event) {
// 关闭处理
// console.error('close', event);
done();
});
pinusClient.on(PinusWSClientEvent.EVENT_HEART_BEAT_TIMEOUT, function(event) {
// 心跳timeout
// console.error('heart beat timeout', event);
});
pinusClient.on(PinusWSClientEvent.EVENT_KICK, function(event) {
// 踢出
// console.error('kick', event);
});
let host = '127.0.0.1';
let port = '3050';
pinusClient.init({
host: host,
port: port
}, (data) => {
// 连接成功执行函数
console.log('gate连接成功', data);
// done();
pinusClient.request('connector.entryHandler.enter', {token:'mgn0njiajb6kapid3eekvt7tssxelig9zi2oq2bzkxr4zzi9w9', serverId: 1} , (ret) => {
// 消息回调
console.log('connector返回', JSON.stringify(ret));
roleInfo = ret.role;
done();
});
});
});
afterEach(function(done) {
pinusClient.disconnect();
done();
});
it('获取军团列表', function(done) {
pinusClient.request('battle.guildHandler.getGuildList', {page:1, showPeopleMax: true, name: ""} , (res) => {
console.log(JSON.stringify(res))
// 消息回调
expect(res).to.be.an('object');
expect(res.code).equal(0);
expect(res.data).to.be.an('object');
expect(res.data).to.have.deep.property('list').that.is.an('array');
res.data.list.forEach(list => {
expect(list).to.have.deep.property('code').that.is.a('string');
expect(list).to.have.deep.property('name').that.is.a('string');
expect(list).to.have.deep.property('icon').that.is.a('number');
expect(list).to.have.deep.property('lv').that.is.a('number');
expect(list).to.have.deep.property('peopleNum').that.is.a('number');
expect(list).to.have.deep.property('leader').that.is.a('string');
expect(list).to.have.deep.property('ceCondition').that.is.a('number');
expect(list).to.have.deep.property('quitTime').that.is.a('number');
expect(list).to.have.deep.property('hasApply').that.is.a('boolean');
});
done();
});
});
});

View File

@@ -1,10 +1,8 @@
import BaseModel from './BaseModel'; import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType, Ref } from '@typegoose/typegoose'; import { index, getModelForClass, prop, DocumentType, Ref } from '@typegoose/typegoose';
import Role from './Role'; import Role from './Role';
export interface pvpUpdate {
}
class Building { class Structure {
@prop({ required: true }) @prop({ required: true })
id: number; id: number;
@prop({ required: true }) @prop({ required: true })
@@ -22,41 +20,47 @@ export default class Guild extends BaseModel {
@prop({ required: true }) @prop({ required: true })
icon: number; icon: number;
@prop({ required: true }) @prop({ required: true, default: 1 })
lv: number; lv: number;
@prop({ required: true }) @prop({ required: true, default: 0 })
peopleNum: number; peopleNum: number;
@prop({ required: true }) @prop({ required: true })
leader: Ref<Role>; leader: Ref<Role>;
@prop({ required: true }) @prop({ required: true, default: true })
isAuto: boolean; isAuto: boolean;
@prop({ required: true }) @prop({ required: true, default: 0 })
ceCondition: number; ceCondition: number;
@prop({ required: true }) @prop({ required: true, default: '' })
notice: string; notice: string;
@prop({ required: true }) @prop({ required: true, default: '' })
introduce: string; introduce: string;
@prop({ required: true }) @prop({ required: true, default: 0 })
fund: number; fund: number;
@prop({ required: true }) @prop({ required: true, default: 0 })
activeDaily: number; activeDaily: number;
@prop({ required: true }) @prop({ required: true, default: new Date() })
refTimeDaily: number; refTimeDaily: number;
@prop({ required: true }) @prop({ required: true, default: new Date() })
refTimeWeekly: number; refTimeWeekly: number;
@prop({ required: true, type: Building }) @prop({ required: true, default: 0 })
building: Building[] ce: number; // 总战力
@prop({ required: true, type: String, default: [] })
members: string[]; // 军团成员的roleId用于增加战力的时候加入总战力
@prop({ required: true, type: Structure, default: [] })
structure: Structure[]
@prop({ required: true }) @prop({ required: true })
status:number; status:number;
@@ -65,4 +69,5 @@ export default class Guild extends BaseModel {
export const GuildModel = getModelForClass(Guild); export const GuildModel = getModelForClass(Guild);
export interface GuildType extends Pick<DocumentType<Guild>, keyof Guild> { }; export interface GuildType extends Pick<DocumentType<Guild>, keyof Guild> { };
export type GuildUpdateParam = Partial<GuildType>; // 将所有字段变成可选项

49
shared/db/UserGuild.ts Normal file
View File

@@ -0,0 +1,49 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType, Ref } from '@typegoose/typegoose';
import Role from './Role';
class ActiveRecord {
@prop({ required: true })
id: number;
@prop({ required: true })
count: number;
}
@index({ roleId: 1 })
export default class UserGuild extends BaseModel {
@prop({ required: true })
guildCode: string;
@prop({ required: true })
roleId: string;
@prop({ required: true })
role: Ref<Role>;
@prop({ required: true, default: 0 })
auth: number;
@prop({ required: true, default: 0 })
job: number;
@prop({ required: true, default: 0 })
honour: number;
@prop({ required: true, default: 0 })
honourWeek: number;
@prop({ required: true, default: 0 })
status: number;
@prop({ required: true, type: ActiveRecord, default: [] })
activeRecord: ActiveRecord[];
@prop({ required: true, default: new Date() })
refTimeWeekly: number;
}
export const GuildModel = getModelForClass(UserGuild);
export interface GuildType extends Pick<DocumentType<UserGuild>, keyof UserGuild> { };
export type GuildUpdateParam = Partial<GuildType>; // 将所有字段变成可选项