Files
kandev/apps/web/components/task-create-dialog-form-reset.test.ts
2026-09-19 21:26:36 +01:00

64 lines
2.2 KiB
TypeScript

import { describe, expect, it, vi } from "vitest";
import { resetTaskForm, type FormResetters } from "./task-create-dialog-form-reset";
function makeResetters(): FormResetters {
return {
setTaskName: vi.fn(),
setHasTitle: vi.fn(),
setHasDescription: vi.fn(),
setHasPendingAttachmentUploads: vi.fn(),
setRepositories: vi.fn(),
setRepositoriesDirty: vi.fn(),
setRemoteRepos: vi.fn(),
setAgentProfileId: vi.fn(),
setExecutorId: vi.fn(),
setExecutorProfileId: vi.fn(),
setSelectedWorkflowId: vi.fn(),
setWorkflowAgentOverrides: vi.fn(),
setFetchedSteps: vi.fn(),
setDiscoveredRepositories: vi.fn(),
setDiscoverReposLoaded: vi.fn(),
setUseRemote: vi.fn(),
setNoRepository: vi.fn(),
setWorkspacePath: vi.fn(),
setPreferLocalExecutor: vi.fn(),
setAutopilot: vi.fn(),
setPriority: vi.fn(),
setGitHubUrlError: vi.fn(),
setFreshBranchEnabled: vi.fn(),
setCurrentLocalBranch: vi.fn(),
setBlockedBy: vi.fn(),
};
}
describe("resetTaskForm canvas source preset", () => {
it("applies the repository-free local preference without storing a profile id", () => {
const resetters = makeResetters();
resetTaskForm(resetters, "Create a canvas", "Build a canvas", null, {
title: "Create a canvas",
description: "Build a canvas",
noRepository: true,
preferLocalExecutor: true,
});
expect(resetters.setNoRepository).toHaveBeenCalledWith(true);
expect(resetters.setWorkspacePath).toHaveBeenCalledWith("");
expect(resetters.setPreferLocalExecutor).toHaveBeenCalledWith(true);
expect(resetters.setWorkflowAgentOverrides).toHaveBeenCalledWith({});
expect(resetters.setExecutorId).toHaveBeenCalledWith("");
expect(resetters.setExecutorProfileId).toHaveBeenCalledWith("");
});
it("clears the launch-only source preference on an ordinary dialog reset", () => {
const resetters = makeResetters();
resetTaskForm(resetters, "", "", null);
expect(resetters.setNoRepository).toHaveBeenCalledWith(false);
expect(resetters.setWorkspacePath).toHaveBeenCalledWith("");
expect(resetters.setPreferLocalExecutor).toHaveBeenCalledWith(false);
expect(resetters.setWorkflowAgentOverrides).toHaveBeenCalledWith({});
});
});