@@ -19,21 +19,25 @@ func (t *testEvent) Title() string {
1919 return t .Name
2020}
2121
22+ func (t * testEvent ) Metadata () map [string ]string { return nil }
23+
2224func TestEvents (t * testing.T ) {
2325 testcases := []struct {
2426 name string
2527 app * runtime.App
2628 code string
27- test func (t * testing.T , evts []events. Event , err error )
29+ test func (t * testing.T , result any , err error )
2830 }{
2931 {
3032 name : "without params should not error" ,
3133 code : "mokapi.getEvents()" ,
3234 app : runtimetest .NewApp (
3335 runtimetest .WithEvent (events .NewTraits ().WithNamespace ("http" ), & testEvent {Name : "test-1" }),
3436 ),
35- test : func (t * testing.T , evts []events. Event , err error ) {
37+ test : func (t * testing.T , result any , err error ) {
3638 require .NoError (t , err )
39+ require .IsType (t , []events.Event {}, result )
40+ evts := result .([]events.Event )
3741 require .Len (t , evts , 1 )
3842 require .Equal (t , & testEvent {Name : "test-1" }, evts [0 ].Data )
3943 },
@@ -45,8 +49,10 @@ func TestEvents(t *testing.T) {
4549 runtimetest .WithEvent (events .NewTraits ().WithNamespace ("kafka" ), & testEvent {Name : "test-1" }),
4650 runtimetest .WithEvent (events .NewTraits ().WithNamespace ("http" ), & testEvent {Name : "test-2" }),
4751 ),
48- test : func (t * testing.T , evts []events. Event , err error ) {
52+ test : func (t * testing.T , result any , err error ) {
4953 require .NoError (t , err )
54+ require .IsType (t , []events.Event {}, result )
55+ evts := result .([]events.Event )
5056 require .Len (t , evts , 1 )
5157 require .Equal (t , & testEvent {Name : "test-2" }, evts [0 ].Data )
5258 },
@@ -58,8 +64,10 @@ func TestEvents(t *testing.T) {
5864 runtimetest .WithEvent (events .NewTraits ().WithNamespace ("http" ).WithName ("foo" ), & testEvent {Name : "test-1" }),
5965 runtimetest .WithEvent (events .NewTraits ().WithNamespace ("http" ).WithName ("bar" ), & testEvent {Name : "test-2" }),
6066 ),
61- test : func (t * testing.T , evts []events. Event , err error ) {
67+ test : func (t * testing.T , result any , err error ) {
6268 require .NoError (t , err )
69+ require .IsType (t , []events.Event {}, result )
70+ evts := result .([]events.Event )
6371 require .Len (t , evts , 1 )
6472 require .Equal (t , & testEvent {Name : "test-2" }, evts [0 ].Data )
6573 },
@@ -71,8 +79,10 @@ func TestEvents(t *testing.T) {
7179 runtimetest .WithEvent (events .NewTraits ().WithNamespace ("http" ).With ("path" , "/users" ), & testEvent {Name : "test-1" }),
7280 runtimetest .WithEvent (events .NewTraits ().WithNamespace ("http" ).With ("path" , "/pets" ), & testEvent {Name : "test-2" }),
7381 ),
74- test : func (t * testing.T , evts []events. Event , err error ) {
82+ test : func (t * testing.T , result any , err error ) {
7583 require .NoError (t , err )
84+ require .IsType (t , []events.Event {}, result )
85+ evts := result .([]events.Event )
7686 require .Len (t , evts , 1 )
7787 require .Equal (t , & testEvent {Name : "test-2" }, evts [0 ].Data )
7888 },
@@ -84,12 +94,27 @@ func TestEvents(t *testing.T) {
8494 runtimetest .WithEvent (events .NewTraits ().WithNamespace ("http" ).With ("method" , "GET" ), & testEvent {Name : "test-1" }),
8595 runtimetest .WithEvent (events .NewTraits ().WithNamespace ("http" ).With ("method" , "POST" ), & testEvent {Name : "test-2" }),
8696 ),
87- test : func (t * testing.T , evts []events. Event , err error ) {
97+ test : func (t * testing.T , result any , err error ) {
8898 require .NoError (t , err )
99+ require .IsType (t , []events.Event {}, result )
100+ evts := result .([]events.Event )
89101 require .Len (t , evts , 1 )
90102 require .Equal (t , & testEvent {Name : "test-2" }, evts [0 ].Data )
91103 },
92104 },
105+ {
106+ name : "get specific event" ,
107+ code : "mokapi.getEvent(mokapi.getEvents({ method: 'GET' })[0].id)" ,
108+ app : runtimetest .NewApp (
109+ runtimetest .WithEvent (events .NewTraits ().WithNamespace ("http" ).With ("method" , "GET" ), & testEvent {Name : "test-1" }),
110+ ),
111+ test : func (t * testing.T , result any , err error ) {
112+ require .NoError (t , err )
113+ require .IsType (t , events.Event {}, result )
114+ evt := result .(events.Event )
115+ require .Equal (t , & testEvent {Name : "test-1" }, evt .Data )
116+ },
117+ },
93118 }
94119
95120 for _ , tc := range testcases {
@@ -100,9 +125,8 @@ func TestEvents(t *testing.T) {
100125 context .Background (),
101126 mcp.RunInput {Code : tc .code },
102127 )
103- require .IsType (t , []events.Event {}, r .Result )
104128
105- tc .test (t , r .Result .([]events. Event ) , err )
129+ tc .test (t , r .Result , err )
106130 })
107131 }
108132}
0 commit comments