mirror of
https://github.com/anthropics/claude-code-action.git
synced 2026-01-22 22:44:13 +08:00
- Add agent mode that always triggers without checking for mentions - Implement Mode interface with support for mode-specific tool configuration - Add getAllowedTools() and getDisallowedTools() methods to Mode interface - Simplify tests by combining related test cases - Update documentation and examples to include agent mode - Fix TypeScript imports to prevent circular dependencies Agent mode is designed for automation and workflow_dispatch scenarios where Claude should always run without requiring trigger phrases. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
import { describe, test, expect } from "bun:test";
|
|
import { getMode, isValidMode } from "../../src/modes/registry";
|
|
import type { ModeName } from "../../src/modes/types";
|
|
import { tagMode } from "../../src/modes/tag";
|
|
import { agentMode } from "../../src/modes/agent";
|
|
|
|
describe("Mode Registry", () => {
|
|
test("getMode returns tag mode by default", () => {
|
|
const mode = getMode("tag");
|
|
expect(mode).toBe(tagMode);
|
|
expect(mode.name).toBe("tag");
|
|
});
|
|
|
|
test("getMode returns agent mode", () => {
|
|
const mode = getMode("agent");
|
|
expect(mode).toBe(agentMode);
|
|
expect(mode.name).toBe("agent");
|
|
});
|
|
|
|
test("getMode throws error for invalid mode", () => {
|
|
const invalidMode = "invalid" as unknown as ModeName;
|
|
expect(() => getMode(invalidMode)).toThrow(
|
|
"Invalid mode 'invalid'. Valid modes are: 'tag', 'agent'. Please check your workflow configuration.",
|
|
);
|
|
});
|
|
|
|
test("isValidMode returns true for all valid modes", () => {
|
|
expect(isValidMode("tag")).toBe(true);
|
|
expect(isValidMode("agent")).toBe(true);
|
|
});
|
|
|
|
test("isValidMode returns false for invalid mode", () => {
|
|
expect(isValidMode("invalid")).toBe(false);
|
|
expect(isValidMode("review")).toBe(false);
|
|
});
|
|
});
|