Skip to content

Commit 42dc67d

Browse files
Added tests
1 parent 1e141c7 commit 42dc67d

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

demux/config_test.go

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,63 @@ func TestConfigWorks(t *testing.T) {
2727
assert.NoError(t, err)
2828
assert.NotNil(t, cfg)
2929
}
30+
31+
func TestConfigFailsOnNilCfg(t *testing.T) {
32+
cfg, err := newDemuxCfg(nil)
33+
assert.EqualError(t, err, "missing demuxer configuration")
34+
assert.Nil(t, cfg)
35+
}
36+
37+
func TestConfigFailsOnMissingFactories(t *testing.T) {
38+
externalCfg := &Cfg{
39+
Handlers: []any{
40+
func(ctx context.Context, event *events.APIGatewayProxyRequest) (
41+
*events.APIGatewayProxyResponse,
42+
error) {
43+
return nil, nil
44+
},
45+
},
46+
}
47+
48+
cfg, err := newDemuxCfg(externalCfg)
49+
assert.EqualError(t, err, "no demux factories provided")
50+
assert.Nil(t, cfg)
51+
}
52+
53+
func TestConfigFailsOnMissingHandlers(t *testing.T) {
54+
externalCfg := &Cfg{
55+
Factories: []Factory{
56+
func(ctx *EventContext) any {
57+
return nil
58+
},
59+
},
60+
}
61+
62+
cfg, err := newDemuxCfg(externalCfg)
63+
assert.EqualError(t, err, "no demux handlers provided")
64+
assert.Nil(t, cfg)
65+
}
66+
67+
func TestConfigFailsOnBadHandler(t *testing.T) {
68+
externalCfg := &Cfg{
69+
Handlers: []any{
70+
func(ctx context.Context, event error) (
71+
*events.APIGatewayProxyResponse,
72+
error) {
73+
return nil, nil
74+
},
75+
},
76+
Factories: []Factory{
77+
func(ctx *EventContext) any {
78+
return nil
79+
},
80+
},
81+
}
82+
83+
cfg, err := newDemuxCfg(externalCfg)
84+
assert.EqualError(
85+
t,
86+
err,
87+
"lambda demux handler function: expected second argument of handler function to be pointer to event struct; got func(context.Context, error) (*events.APIGatewayProxyResponse, error)")
88+
assert.Nil(t, cfg)
89+
}

0 commit comments

Comments
 (0)