Commit 6a968a50 authored by nanahira's avatar nanahira

fix pos of UsingService dec

parent eccf0a6f
......@@ -84,7 +84,13 @@ export function DefinePlugin<T = any>(
((options.schema as Schema).type
? (options.schema as Schema<Partial<T>, 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;
__config: T;
__pluginOptions: KoishiPluginRegistrationOptions<T>;
......
import { Inject, DefinePlugin } from '..';
import { Inject, DefinePlugin, UsingService } from '..';
import { Cache, Assets, Bot, Context } from 'koishi';
describe('InjectUsing', () => {
@UsingService('router')
@DefinePlugin({ using: ['database'] })
class MyPlugin {
@Inject(true)
......@@ -17,10 +18,11 @@ describe('InjectUsing', () => {
it('Should include injected using services', () => {
const usingList = (MyPlugin as any).using as (keyof Context.Services)[];
expect(usingList).toBeInstanceOf(Array);
expect(usingList.length).toEqual(3);
expect(usingList.length).toEqual(4);
expect(usingList.includes('database')).toEqual(true);
expect(usingList.includes('assets')).toEqual(true);
expect(usingList.includes('cache')).toEqual(true);
expect(usingList.includes('router')).toEqual(true);
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