kt-template-online-api/test/modules/qqbot/plugin-platform/builtin-plugin-package-loader.spec.ts

35 lines
1.2 KiB
TypeScript

import { mkdtempSync, rmSync } from 'node:fs';
import { tmpdir } from 'node:os';
import { join } from 'node:path';
import { QqbotBuiltinPluginPackageLoaderService } from '@/modules/qqbot/plugin-platform/infrastructure/integration/package/builtin-plugin-package-loader.service';
describe('QqbotBuiltinPluginPackageLoaderService', () => {
const createLoader = () =>
new QqbotBuiltinPluginPackageLoaderService(
{} as any,
{} as any,
{} as any,
{} as any,
{} as any,
{} as any,
) as any;
it('resolves built-in plugin manifests from compiled qqbot plugin package root', () => {
const originalCwd = process.cwd();
const sandbox = mkdtempSync(join(tmpdir(), 'kt-plugin-loader-'));
try {
process.chdir(sandbox);
const pluginRoot = createLoader().resolvePluginRoot('bangdream') as string;
const normalized = pluginRoot.replace(/\\/g, '/');
expect(normalized).toMatch(/modules\/qqbot\/plugins\/bangdream$/);
expect(normalized).not.toContain('/plugin-platform/plugins/');
} finally {
process.chdir(originalCwd);
rmSync(sandbox, { recursive: true, force: true });
}
});
});