获取军团列表测试用例
This commit is contained in:
@@ -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 });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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/",
|
||||||
|
|||||||
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 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
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