Commit 6a968a50 authored by nanahira's avatar nanahira

fix pos of UsingService dec

parent eccf0a6f
...@@ -84,7 +84,13 @@ export function DefinePlugin<T = any>( ...@@ -84,7 +84,13 @@ export function DefinePlugin<T = any>(
((options.schema as Schema).type ((options.schema as Schema).type
? (options.schema as Schema<Partial<T>, T>) ? (options.schema as Schema<Partial<T>, T>)
: SchemaClass(options.schema as ClassType<T>)); : SchemaClass(options.schema as ClassType<T>));
static using = _.uniq([...(options.using || []), ...addUsingList]); static get using() {
const list = reflector
.getArray(KoishiAddUsingList, originalClass)
.concat(options.using || [])
.concat(reflector.getArray(KoishiAddUsingList, newClass));
return _.uniq(list);
}
__ctx: Context; __ctx: Context;
__config: T; __config: T;
__pluginOptions: KoishiPluginRegistrationOptions<T>; __pluginOptions: KoishiPluginRegistrationOptions<T>;
......
import { Inject, DefinePlugin } from '..'; import { Inject, DefinePlugin, UsingService } from '..';
import { Cache, Assets, Bot, Context } from 'koishi'; import { Cache, Assets, Bot, Context } from 'koishi';
describe('InjectUsing', () => { describe('InjectUsing', () => {
@UsingService('router')
@DefinePlugin({ using: ['database'] }) @DefinePlugin({ using: ['database'] })
class MyPlugin { class MyPlugin {
@Inject(true) @Inject(true)
...@@ -17,10 +18,11 @@ describe('InjectUsing', () => { ...@@ -17,10 +18,11 @@ describe('InjectUsing', () => {
it('Should include injected using services', () => { it('Should include injected using services', () => {
const usingList = (MyPlugin as any).using as (keyof Context.Services)[]; const usingList = (MyPlugin as any).using as (keyof Context.Services)[];
expect(usingList).toBeInstanceOf(Array); expect(usingList).toBeInstanceOf(Array);
expect(usingList.length).toEqual(3); expect(usingList.length).toEqual(4);
expect(usingList.includes('database')).toEqual(true); expect(usingList.includes('database')).toEqual(true);
expect(usingList.includes('assets')).toEqual(true); expect(usingList.includes('assets')).toEqual(true);
expect(usingList.includes('cache')).toEqual(true); expect(usingList.includes('cache')).toEqual(true);
expect(usingList.includes('router')).toEqual(true);
expect(usingList.includes('bots')).toEqual(false); expect(usingList.includes('bots')).toEqual(false);
}); });
}); });
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment