From 207f3c9315a45cc504c07cf1cd99905fbcf3ec36 Mon Sep 17 00:00:00 2001 From: Nicolas Bonamy Date: Fri, 17 May 2024 11:20:56 -0500 Subject: [PATCH] plugins tests --- src/plugins/plugins.ts | 11 +++ src/plugins/python.ts | 2 +- src/plugins/tavily.ts | 2 +- src/services/engine.ts | 10 +- src/settings/SettingsPlugins.vue | 2 +- tests/mocks/plugins.ts | 88 +++++++++++++++++ tests/unit/engine_plugins.test.ts | 117 +++++++++++------------ tests/unit/engine_plugins_mocked.test.ts | 76 +++++++++++++++ 8 files changed, 236 insertions(+), 72 deletions(-) create mode 100644 src/plugins/plugins.ts create mode 100644 tests/mocks/plugins.ts create mode 100644 tests/unit/engine_plugins_mocked.test.ts diff --git a/src/plugins/plugins.ts b/src/plugins/plugins.ts new file mode 100644 index 0000000..875a71e --- /dev/null +++ b/src/plugins/plugins.ts @@ -0,0 +1,11 @@ + +import { anyDict } from '../types/index.d' +import BrowsePlugin from '../plugins/browse' +import TavilyPlugin from '../plugins/tavily' +import PythonPlugin from '../plugins/python' + +export const availablePlugins: anyDict = { + browse: BrowsePlugin, + python: PythonPlugin, + tavily: TavilyPlugin, +} diff --git a/src/plugins/python.ts b/src/plugins/python.ts index 44dca6a..76eaa9f 100644 --- a/src/plugins/python.ts +++ b/src/plugins/python.ts @@ -10,7 +10,7 @@ export default class extends Plugin { } isEnabled(): boolean { - return this.config.enabled && this.config.binpath + return this.config.enabled && this.config.binpath != null } getName(): string { diff --git a/src/plugins/tavily.ts b/src/plugins/tavily.ts index a3218e9..3862dbc 100644 --- a/src/plugins/tavily.ts +++ b/src/plugins/tavily.ts @@ -12,7 +12,7 @@ export default class extends Plugin { } isEnabled(): boolean { - return this.config.enabled && this.config.apiKey + return this.config.enabled && this.config.apiKey != null } getName(): string { diff --git a/src/services/engine.ts b/src/services/engine.ts index 4c501cc..bf0a2d3 100644 --- a/src/services/engine.ts +++ b/src/services/engine.ts @@ -4,18 +4,10 @@ import { LlmResponse, LlmCompletionOpts, LLmCompletionPayload, LlmStream, LlmChu import { Configuration, Model } from '../types/config.d' import { getFileContents } from './download' import Plugin from '../plugins/plugin' -import BrowsePlugin from '../plugins/browse' -import TavilyPlugin from '../plugins/tavily' -import PythonPlugin from '../plugins/python' +import { availablePlugins } from '../plugins/plugins' import { PluginParameter } from '../types/plugin.d' import { minimatch } from 'minimatch' -export const availablePlugins: anyDict = { - browse: BrowsePlugin, - python: PythonPlugin, - tavily: TavilyPlugin, -} - export default class LlmEngine { config: Configuration diff --git a/src/settings/SettingsPlugins.vue b/src/settings/SettingsPlugins.vue index 2417d0c..7231746 100644 --- a/src/settings/SettingsPlugins.vue +++ b/src/settings/SettingsPlugins.vue @@ -17,7 +17,7 @@