1- import { describe , expect , it , vi } from "vitest" ;
1+ import { afterEach , beforeEach , describe , expect , it , vi } from "vitest" ;
22
33vi . mock ( "@cursor/sdk" , ( ) => ( {
44 Agent : {
@@ -14,6 +14,14 @@ vi.mock("@cursor/sdk", () => ({
1414import { runAgent } from "../../scripts/eval_skills/agent.js" ;
1515
1616describe ( "runAgent" , ( ) => {
17+ beforeEach ( ( ) => {
18+ vi . stubEnv ( "CURSOR_API_KEY" , "test-key" ) ;
19+ } ) ;
20+
21+ afterEach ( ( ) => {
22+ vi . unstubAllEnvs ( ) ;
23+ } ) ;
24+
1725 it ( "returns a validated AgentResult on a successful call" , async ( ) => {
1826 const r = await runAgent ( {
1927 skillPath : "skills/x/SKILL.md" ,
@@ -59,4 +67,54 @@ describe("runAgent", () => {
5967 expect ( r . ok ) . toBe ( false ) ;
6068 if ( ! r . ok ) expect ( r . error ) . toContain ( "api down" ) ;
6169 } ) ;
70+
71+ it ( "returns ok:false when the run was cancelled" , async ( ) => {
72+ const sdk = await import ( "@cursor/sdk" ) ;
73+ vi . mocked ( sdk . Agent . prompt ) . mockResolvedValueOnce ( {
74+ id : "run-3" ,
75+ status : "cancelled" ,
76+ } ) ;
77+ const r = await runAgent ( {
78+ skillPath : "skills/x/SKILL.md" ,
79+ skillContent : "x" ,
80+ siblingIndexJson : "[]" ,
81+ promptTemplate : "x" ,
82+ repoRulesExcerpt : "" ,
83+ rubric : "" ,
84+ } ) ;
85+ expect ( r . ok ) . toBe ( false ) ;
86+ if ( ! r . ok ) expect ( r . error ) . toContain ( "cancelled" ) ;
87+ } ) ;
88+
89+ it ( "returns ok:false when the run errored" , async ( ) => {
90+ const sdk = await import ( "@cursor/sdk" ) ;
91+ vi . mocked ( sdk . Agent . prompt ) . mockResolvedValueOnce ( {
92+ id : "run-4" ,
93+ status : "error" ,
94+ } ) ;
95+ const r = await runAgent ( {
96+ skillPath : "skills/x/SKILL.md" ,
97+ skillContent : "x" ,
98+ siblingIndexJson : "[]" ,
99+ promptTemplate : "x" ,
100+ repoRulesExcerpt : "" ,
101+ rubric : "" ,
102+ } ) ;
103+ expect ( r . ok ) . toBe ( false ) ;
104+ if ( ! r . ok ) expect ( r . error ) . toContain ( "error" ) ;
105+ } ) ;
106+
107+ it ( "returns ok:false when CURSOR_API_KEY is not set" , async ( ) => {
108+ vi . stubEnv ( "CURSOR_API_KEY" , "" ) ;
109+ const r = await runAgent ( {
110+ skillPath : "skills/x/SKILL.md" ,
111+ skillContent : "x" ,
112+ siblingIndexJson : "[]" ,
113+ promptTemplate : "x" ,
114+ repoRulesExcerpt : "" ,
115+ rubric : "" ,
116+ } ) ;
117+ expect ( r . ok ) . toBe ( false ) ;
118+ if ( ! r . ok ) expect ( r . error ) . toContain ( "CURSOR_API_KEY" ) ;
119+ } ) ;
62120} ) ;
0 commit comments