Files
moeka-project/packages/plugin-sdk/src/plugin-host/testdata/test-injected-host-apis-plugin.ts
T
2026-08-26 19:49:58 +08:00

47 lines
1.1 KiB
TypeScript

import type { KitRef } from '../../kit'
import { defineExtension } from '../../extension'
/**
* Exercises host-injected extension kit APIs during setup.
*
* Use when:
* - Verifying that an extension can consume injected kit APIs
* - Testing end-to-end extension host bindings from a real extension entrypoint
*
* Expects:
* - The host exposes `kit.widget.test` to the extension runtime
* - The manifest grants the extension permission to use the kit
*
* Returns:
* - Resolves after persisting the observed host state into a dynamic binding config
*/
interface TestWidgetKitClient {
mount: () => void
}
export const testWidgetKit = {
createClient() {
return {
mount() {},
}
},
id: 'kit.widget.test',
version: '1.0.0',
} satisfies KitRef<TestWidgetKitClient>
export default defineExtension({
id: 'test-plugin-injected-host-apis',
async setup(ctx) {
const module = await ctx.modules.register({
id: 'test-injected-host-apis-module',
permissions: {
apis: [{ actions: ['invoke'], key: testWidgetKit.id }],
},
})
const widgets = await module.kits.use(testWidgetKit)
widgets.mount()
},
})