@@ -160,7 +160,7 @@ func TestCancelRun(t *testing.T) {
160
160
}
161
161
162
162
func TestAbortChatCompletionRun (t * testing.T ) {
163
- tool := ToolDef {Instructions : "What is the capital of the united states? " }
163
+ tool := ToolDef {Instructions : "Generate a real long essay about the meaning of life. " }
164
164
165
165
run , err := g .Evaluate (context .Background (), Options {DisableCache : true , IncludeEvents : true }, tool )
166
166
if err != nil {
@@ -1404,6 +1404,53 @@ func TestPromptWithoutPromptAllowed(t *testing.T) {
1404
1404
}
1405
1405
}
1406
1406
1407
+ func TestPromptWithOptions (t * testing.T ) {
1408
+ run , err := g .Run (context .Background (), "sys.prompt" , Options {IncludeEvents : true , Prompt : true , Input : `{"fields":[{"name":"Authentication Method","description":"The authentication token for the user","options":["API Key","OAuth"]}]}` })
1409
+ if err != nil {
1410
+ t .Errorf ("Error executing tool: %v" , err )
1411
+ }
1412
+
1413
+ // Wait for the prompt event
1414
+ var promptFrame * PromptFrame
1415
+ for e := range run .Events () {
1416
+ if e .Prompt != nil {
1417
+ if e .Prompt .Type == EventTypePrompt {
1418
+ promptFrame = e .Prompt
1419
+ break
1420
+ }
1421
+ }
1422
+ }
1423
+
1424
+ if promptFrame == nil {
1425
+ t .Fatalf ("No prompt call event" )
1426
+ return
1427
+ }
1428
+
1429
+ if len (promptFrame .Fields ) != 1 {
1430
+ t .Fatalf ("Unexpected number of fields: %d" , len (promptFrame .Fields ))
1431
+ }
1432
+
1433
+ if promptFrame .Fields [0 ].Name != "Authentication Method" {
1434
+ t .Errorf ("Unexpected field: %s" , promptFrame .Fields [0 ].Name )
1435
+ }
1436
+
1437
+ if promptFrame .Fields [0 ].Description != "The authentication token for the user" {
1438
+ t .Errorf ("Unexpected description: %s" , promptFrame .Fields [0 ].Description )
1439
+ }
1440
+
1441
+ if len (promptFrame .Fields [0 ].Options ) != 2 {
1442
+ t .Fatalf ("Unexpected number of options: %d" , len (promptFrame .Fields [0 ].Options ))
1443
+ }
1444
+
1445
+ if promptFrame .Fields [0 ].Options [0 ] != "API Key" {
1446
+ t .Errorf ("Unexpected option: %s" , promptFrame .Fields [0 ].Options [0 ])
1447
+ }
1448
+
1449
+ if promptFrame .Fields [0 ].Options [1 ] != "OAuth" {
1450
+ t .Errorf ("Unexpected option: %s" , promptFrame .Fields [0 ].Options [1 ])
1451
+ }
1452
+ }
1453
+
1407
1454
func TestGetCommand (t * testing.T ) {
1408
1455
currentEnvVar := os .Getenv ("GPTSCRIPT_BIN" )
1409
1456
t .Cleanup (func () {
0 commit comments