mirror of
https://github.com/getpaseo/paseo.git
synced 2026-07-29 12:01:31 +00:00
52 lines
1.3 KiB
TypeScript
52 lines
1.3 KiB
TypeScript
import { describe, expect, test } from "vitest";
|
|
|
|
import { validateDraftSubmission } from "./workspace-tab-core";
|
|
|
|
const baseComposerState = {
|
|
providerDefinitions: [{ id: "codewhale" }],
|
|
selectedProvider: "codewhale",
|
|
isModelLoading: false,
|
|
effectiveModelId: "",
|
|
availableModels: [],
|
|
};
|
|
|
|
function validate(overrides = {}) {
|
|
return validateDraftSubmission({
|
|
text: "hello",
|
|
allowsEmptyAutoSubmit: false,
|
|
composerState: baseComposerState,
|
|
autoSubmitConfig: null,
|
|
workspaceDirectory: "/tmp/project",
|
|
hasClient: true,
|
|
...overrides,
|
|
});
|
|
}
|
|
|
|
describe("workspace draft agent model validation", () => {
|
|
test("allows a ready provider with no models to submit without a selected model", () => {
|
|
expect(validate({})).toBeNull();
|
|
});
|
|
|
|
test("keeps waiting while model defaults are loading", () => {
|
|
expect(
|
|
validate({
|
|
composerState: {
|
|
...baseComposerState,
|
|
isModelLoading: true,
|
|
},
|
|
}),
|
|
).toBe("Model defaults are still loading");
|
|
});
|
|
|
|
test("still requires a selected model when the provider exposes models", () => {
|
|
expect(
|
|
validate({
|
|
composerState: {
|
|
...baseComposerState,
|
|
availableModels: [{ id: "deepseek/deepseek-v4-pro" }],
|
|
},
|
|
}),
|
|
).toBe("No model is available for the selected provider");
|
|
});
|
|
});
|