@@ -38,9 +38,9 @@ describe('eval utils', () => {
38
38
expect ( Object . keys ( extractors ) . sort ( ) ) . toEqual (
39
39
[ 'input' , 'output' , 'context' ] . sort ( )
40
40
) ;
41
- expect ( extractors . input ( trace ) ) . toEqual ( JSON . stringify ( 'My input' ) ) ;
42
- expect ( extractors . output ( trace ) ) . toEqual ( JSON . stringify ( 'My output' ) ) ;
43
- expect ( extractors . context ( trace ) ) . toEqual ( JSON . stringify ( [ ] ) ) ;
41
+ expect ( extractors . input ( trace ) ) . toEqual ( 'My input' ) ;
42
+ expect ( extractors . output ( trace ) ) . toEqual ( 'My output' ) ;
43
+ expect ( extractors . context ( trace ) ) . toEqual ( [ ] ) ;
44
44
} ) ;
45
45
} ) ;
46
46
@@ -63,9 +63,9 @@ describe('eval utils', () => {
63
63
expect ( Object . keys ( extractors ) . sort ( ) ) . toEqual (
64
64
[ 'input' , 'output' , 'context' ] . sort ( )
65
65
) ;
66
- expect ( extractors . input ( trace ) ) . toEqual ( JSON . stringify ( 'My input' ) ) ;
67
- expect ( extractors . output ( trace ) ) . toEqual ( JSON . stringify ( 'My output' ) ) ;
68
- expect ( extractors . context ( trace ) ) . toEqual ( JSON . stringify ( CONTEXT_TEXTS ) ) ;
66
+ expect ( extractors . input ( trace ) ) . toEqual ( 'My input' ) ;
67
+ expect ( extractors . output ( trace ) ) . toEqual ( 'My output' ) ;
68
+ expect ( extractors . context ( trace ) ) . toEqual ( CONTEXT_TEXTS ) ;
69
69
} ) ;
70
70
71
71
it ( 'returns custom extractors by stepName' , async ( ) => {
@@ -100,11 +100,9 @@ describe('eval utils', () => {
100
100
101
101
const extractors = await getEvalExtractors ( '/flow/multiSteps' ) ;
102
102
103
- expect ( extractors . input ( trace ) ) . toEqual ( JSON . stringify ( 'My input' ) ) ;
104
- expect ( extractors . output ( trace ) ) . toEqual (
105
- JSON . stringify ( { out : 'my-object-output' } )
106
- ) ;
107
- expect ( extractors . context ( trace ) ) . toEqual ( JSON . stringify ( CONTEXT_TEXTS ) ) ;
103
+ expect ( extractors . input ( trace ) ) . toEqual ( 'My input' ) ;
104
+ expect ( extractors . output ( trace ) ) . toEqual ( { out : 'my-object-output' } ) ;
105
+ expect ( extractors . context ( trace ) ) . toEqual ( CONTEXT_TEXTS ) ;
108
106
} ) ;
109
107
110
108
it ( 'returns custom extractors by stepSelector' , async ( ) => {
@@ -146,11 +144,9 @@ describe('eval utils', () => {
146
144
147
145
const extractors = await getEvalExtractors ( '/flow/multiSteps' ) ;
148
146
149
- expect ( extractors . input ( trace ) ) . toEqual ( JSON . stringify ( 'My input' ) ) ;
150
- expect ( extractors . output ( trace ) ) . toEqual ( JSON . stringify ( 'step2-input' ) ) ;
151
- expect ( extractors . context ( trace ) ) . toEqual (
152
- JSON . stringify ( [ 'Hello' , 'World' ] )
153
- ) ;
147
+ expect ( extractors . input ( trace ) ) . toEqual ( 'My input' ) ;
148
+ expect ( extractors . output ( trace ) ) . toEqual ( 'step2-input' ) ;
149
+ expect ( extractors . context ( trace ) ) . toEqual ( [ 'Hello' , 'World' ] ) ;
154
150
} ) ;
155
151
156
152
it ( 'returns custom extractors by trace function' , async ( ) => {
@@ -160,23 +156,21 @@ describe('eval utils', () => {
160
156
actionRef : '/flow/multiSteps' ,
161
157
extractors : {
162
158
input : ( trace : TraceData ) => {
163
- return JSON . stringify (
164
- Object . values ( trace . spans )
165
- . filter (
166
- ( s ) =>
167
- s . attributes [ 'genkit:type' ] === 'action' &&
168
- s . attributes [ 'genkit:metadata:subtype' ] !== 'retriever'
169
- )
170
- . map ( ( s ) => {
171
- const inputValue = JSON . parse (
172
- s . attributes [ 'genkit:input' ] as string
173
- ) . start . input ;
174
- if ( ! inputValue ) {
175
- return '' ;
176
- }
177
- return inputValue + ' TEST TEST TEST' ;
178
- } )
179
- ) ;
159
+ return Object . values ( trace . spans )
160
+ . filter (
161
+ ( s ) =>
162
+ s . attributes [ 'genkit:type' ] === 'action' &&
163
+ s . attributes [ 'genkit:metadata:subtype' ] !== 'retriever'
164
+ )
165
+ . map ( ( s ) => {
166
+ const inputValue = JSON . parse (
167
+ s . attributes [ 'genkit:input' ] as string
168
+ ) . start . input ;
169
+ if ( ! inputValue ) {
170
+ return '' ;
171
+ }
172
+ return inputValue + ' TEST TEST TEST' ;
173
+ } ) ;
180
174
} ,
181
175
output : { inputOf : 'step2' } ,
182
176
context : { outputOf : 'step3-array' } ,
@@ -211,13 +205,9 @@ describe('eval utils', () => {
211
205
212
206
const extractors = await getEvalExtractors ( '/flow/multiSteps' ) ;
213
207
214
- expect ( extractors . input ( trace ) ) . toEqual (
215
- JSON . stringify ( [ 'My input TEST TEST TEST' ] )
216
- ) ;
217
- expect ( extractors . output ( trace ) ) . toEqual ( JSON . stringify ( 'step2-input' ) ) ;
218
- expect ( extractors . context ( trace ) ) . toEqual (
219
- JSON . stringify ( [ 'Hello' , 'World' ] )
220
- ) ;
208
+ expect ( extractors . input ( trace ) ) . toEqual ( [ 'My input TEST TEST TEST' ] ) ;
209
+ expect ( extractors . output ( trace ) ) . toEqual ( 'step2-input' ) ;
210
+ expect ( extractors . context ( trace ) ) . toEqual ( [ 'Hello' , 'World' ] ) ;
221
211
} ) ;
222
212
223
213
it ( 'returns runs default extractors when trace fails' , async ( ) => {
@@ -239,8 +229,8 @@ describe('eval utils', () => {
239
229
expect ( Object . keys ( extractors ) . sort ( ) ) . toEqual (
240
230
[ 'input' , 'output' , 'context' ] . sort ( )
241
231
) ;
242
- expect ( extractors . input ( trace ) ) . toEqual ( JSON . stringify ( 'My input' ) ) ;
243
- expect ( extractors . output ( trace ) ) . toEqual ( JSON . stringify ( '' ) ) ;
244
- expect ( extractors . context ( trace ) ) . toEqual ( JSON . stringify ( CONTEXT_TEXTS ) ) ;
232
+ expect ( extractors . input ( trace ) ) . toEqual ( 'My input' ) ;
233
+ expect ( extractors . output ( trace ) ) . toEqual ( '' ) ;
234
+ expect ( extractors . context ( trace ) ) . toEqual ( CONTEXT_TEXTS ) ;
245
235
} ) ;
246
236
} ) ;
0 commit comments