获取军团列表测试用例
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
import {Application, BackendSession, pinus} from 'pinus';
|
||||
import { resResult } from '../../../pubUtils/util';
|
||||
import { STATUS } from '../../../consts';
|
||||
|
||||
export default function(app: Application) {
|
||||
return new GuildHandler(app);
|
||||
@@ -14,7 +16,19 @@ export class GuildHandler {
|
||||
}
|
||||
|
||||
//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 });
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,7 @@
|
||||
"build": "tsc",
|
||||
"start": "yarn run build && cd dist && node app",
|
||||
"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",
|
||||
"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/",
|
||||
|
||||
81
game-server/test/guild.test.ts
Normal file
81
game-server/test/guild.test.ts
Normal 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();
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -1,10 +1,8 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop, DocumentType, Ref } from '@typegoose/typegoose';
|
||||
import Role from './Role';
|
||||
export interface pvpUpdate {
|
||||
}
|
||||
|
||||
class Building {
|
||||
class Structure {
|
||||
@prop({ required: true })
|
||||
id: number;
|
||||
@prop({ required: true })
|
||||
@@ -22,41 +20,47 @@ export default class Guild extends BaseModel {
|
||||
@prop({ required: true })
|
||||
icon: number;
|
||||
|
||||
@prop({ required: true })
|
||||
@prop({ required: true, default: 1 })
|
||||
lv: number;
|
||||
|
||||
@prop({ required: true })
|
||||
@prop({ required: true, default: 0 })
|
||||
peopleNum: number;
|
||||
|
||||
@prop({ required: true })
|
||||
leader: Ref<Role>;
|
||||
|
||||
@prop({ required: true })
|
||||
@prop({ required: true, default: true })
|
||||
isAuto: boolean;
|
||||
|
||||
@prop({ required: true })
|
||||
@prop({ required: true, default: 0 })
|
||||
ceCondition: number;
|
||||
|
||||
@prop({ required: true })
|
||||
@prop({ required: true, default: '' })
|
||||
notice: string;
|
||||
|
||||
@prop({ required: true })
|
||||
@prop({ required: true, default: '' })
|
||||
introduce: string;
|
||||
|
||||
@prop({ required: true })
|
||||
@prop({ required: true, default: 0 })
|
||||
fund: number;
|
||||
|
||||
@prop({ required: true })
|
||||
@prop({ required: true, default: 0 })
|
||||
activeDaily: number;
|
||||
|
||||
@prop({ required: true })
|
||||
@prop({ required: true, default: new Date() })
|
||||
refTimeDaily: number;
|
||||
|
||||
@prop({ required: true })
|
||||
@prop({ required: true, default: new Date() })
|
||||
refTimeWeekly: number;
|
||||
|
||||
@prop({ required: true, type: Building })
|
||||
building: Building[]
|
||||
@prop({ required: true, default: 0 })
|
||||
ce: number; // 总战力
|
||||
|
||||
@prop({ required: true, type: String, default: [] })
|
||||
members: string[]; // 军团成员的roleId,用于增加战力的时候加入总战力
|
||||
|
||||
@prop({ required: true, type: Structure, default: [] })
|
||||
structure: Structure[]
|
||||
|
||||
@prop({ required: true })
|
||||
status:number;
|
||||
@@ -65,4 +69,5 @@ export default class Guild extends BaseModel {
|
||||
|
||||
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
49
shared/db/UserGuild.ts
Normal 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>; // 将所有字段变成可选项
|
||||
Reference in New Issue
Block a user