@@ -2,26 +2,14 @@ package demux
22
33import (
44 "context"
5+ "encoding/json"
56 "errors"
67 "github.com/aws/aws-lambda-go/events"
78 "github.com/stretchr/testify/assert"
89 "reflect"
910 "testing"
1011)
1112
12- //var handlers = []any{
13- // func(ctx context.Context, event *events.APIGatewayWebsocketProxyRequest) (
14- // *events.APIGatewayProxyResponse,
15- // error) {
16- // return nil, nil
17- // },
18- // func(ctx context.Context, event *events.APIGatewayProxyRequest) (
19- // *events.APIGatewayProxyResponse,
20- // error) {
21- // return nil, nil
22- // },
23- //}
24-
2513func TestCreateEventWorks (t * testing.T ) {
2614 eventFactories := []Factory {
2715 func (ctx * EventContext ) any {
@@ -54,10 +42,10 @@ func TestProcessEventWorks(t *testing.T) {
5442 handlerMap , err := createHandlerMap (
5543 []any {
5644 func (ctx context.Context , event * events.APIGatewayProxyRequest ) (
57- * events.APIGatewayProxyResponse ,
45+ * events.APIGatewayProxyRequest ,
5846 error ) {
5947 handlerCalled = true
60- return & events. APIGatewayProxyResponse {} , nil
48+ return event , nil
6149 }})
6250 assert .NoError (t , err )
6351 assert .NotNil (t , handlerMap )
@@ -73,13 +61,26 @@ func TestProcessEventWorks(t *testing.T) {
7361 handlerMap : handlerMap ,
7462 }
7563
64+ eventJson := `
65+ {
66+ "path": "/foo/bar",
67+ "httpMethod": "POST"
68+ }
69+ `
70+
7671 rawEvent := map [string ]any {}
72+ err = json .Unmarshal ([]byte (eventJson ), & rawEvent )
73+ assert .NoError (t , err )
7774
7875 resp , err := processEvent (cfg , context .TODO (), rawEvent )
7976 assert .NoError (t , err )
8077 assert .NotNil (t , resp )
8178 assert .True (t , handlerCalled )
8279 assert .True (t , factoryCalled )
80+ assert .IsType (t , & events.APIGatewayProxyRequest {}, resp )
81+ ev , _ := resp .(* events.APIGatewayProxyRequest )
82+ assert .Equal (t , "/foo/bar" , ev .Path )
83+ assert .Equal (t , "POST" , ev .HTTPMethod )
8384}
8485
8586func TestProcessEventWorksReturningError (t * testing.T ) {
0 commit comments