11import colors from "colors" ;
22import Ajv , { ErrorObject , Ajv as IAjv } from "ajv" ;
3- import { OpenRPC , MethodObject , ContentDescriptorObject } from "@open-rpc/meta-schema" ;
3+ import {
4+ OpenRPC ,
5+ MethodObject ,
6+ ContentDescriptorObject ,
7+ ExamplePairingObject ,
8+ ExampleObject ,
9+ } from "@open-rpc/meta-schema" ;
10+ import json from "./json" ;
411
512export default ( callResults : any [ ] , schema : OpenRPC ) => {
613 const ajv = new Ajv ( ) ;
@@ -31,6 +38,24 @@ export default (callResults: any[], schema: OpenRPC) => {
3138 } ;
3239 }
3340
41+ if ( methodSchema . examples && methodSchema . examples . length > 0 ) {
42+ const example = ( methodSchema . examples [ call . exampleIndex ] as ExamplePairingObject ) ;
43+ const checkParams = ( example . params as ExampleObject [ ] ) . map ( ( p : ExampleObject ) => p . value ) ;
44+ const paramsEqual = ( JSON . stringify ( checkParams ) === JSON . stringify ( call . params ) ) ;
45+ const resultEqual = JSON . stringify ( call . result ) === JSON . stringify ( ( example . result as ExampleObject ) . value )
46+ if ( paramsEqual && resultEqual ) {
47+ metrics . success ++ ;
48+ console . log ( colors . green ( "Example Success: " ) , call . method , call . params , call . result ) ;
49+ } else {
50+ console . log ( colors . red . underline ( "Example Validation Error: " ) , colors . cyan ( call . method ) ) ;
51+ console . log ( 'params: ' , call . params ) ;
52+ console . log ( 'result: ' , call . result ) ;
53+ console . log ( 'examples: ' , methodSchema . examples ) ;
54+ console . log ( 'method object' , methodSchema ) ;
55+ }
56+ return ;
57+ }
58+
3459 ajv . validate ( resultSchema , call . result ) ;
3560 const errors = ajv . errors as ErrorObject [ ] ;
3661
@@ -39,11 +64,10 @@ export default (callResults: any[], schema: OpenRPC) => {
3964 console . log ( colors . green ( "Success: " ) , call . method ) ;
4065 } else {
4166 console . log ( colors . red . underline ( "Result Validation Error: " ) , colors . cyan ( call . method ) ) ;
42- console . log ( call ) ;
43- console . log ( errors ) ;
44- console . log ( methodSchema ) ;
67+ console . log ( 'call: ' , call ) ;
68+ console . log ( 'errors: ' , errors ) ;
69+ console . log ( 'method: ' , methodSchema ) ;
4570 }
46-
4771 }
4872 } ) ;
4973 console . log ( "==========" ) ;
0 commit comments