|
|
@@ -281,6 +281,34 @@ describe("CatalogV2", () => {
|
|
|
}),
|
|
|
)
|
|
|
|
|
|
+ it.effect("ignores a configured default on a disabled provider", () =>
|
|
|
+ Effect.gen(function* () {
|
|
|
+ const catalog = yield* Catalog.Service
|
|
|
+ const disabledProvider = ProviderV2.ID.make("disabled")
|
|
|
+ const enabledProvider = ProviderV2.ID.make("enabled")
|
|
|
+ const disabledModel = ModelV2.ID.make("configured")
|
|
|
+ const fallbackModel = ModelV2.ID.make("fallback")
|
|
|
+ const transform = yield* catalog.transform()
|
|
|
+
|
|
|
+ yield* transform((catalog) => {
|
|
|
+ catalog.provider.update(disabledProvider, (provider) => {
|
|
|
+ provider.enabled = false
|
|
|
+ })
|
|
|
+ catalog.model.update(disabledProvider, disabledModel, () => {})
|
|
|
+ catalog.provider.update(enabledProvider, (provider) => {
|
|
|
+ provider.enabled = { via: "custom", data: {} }
|
|
|
+ })
|
|
|
+ catalog.model.update(enabledProvider, fallbackModel, () => {})
|
|
|
+ catalog.model.default.set(disabledProvider, disabledModel)
|
|
|
+ })
|
|
|
+
|
|
|
+ expect(Option.getOrUndefined(yield* catalog.model.default())).toMatchObject({
|
|
|
+ providerID: enabledProvider,
|
|
|
+ id: fallbackModel,
|
|
|
+ })
|
|
|
+ }),
|
|
|
+ )
|
|
|
+
|
|
|
it.effect("small model prefers small keyword candidates before cost scoring", () =>
|
|
|
Effect.gen(function* () {
|
|
|
const catalog = yield* Catalog.Service
|