Skip to content

Commit 294c1bf

Browse files
committed
test: cover MCP auth guard and database error paths
1 parent b72aa85 commit 294c1bf

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

‎api/mcp_test.go‎

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package api
2+
3+
import (
4+
"net/http/httptest"
5+
"testing"
6+
7+
"github.com/gin-gonic/gin"
8+
"github.com/gotify/server/v3/mode"
9+
"github.com/gotify/server/v3/test/testdb"
10+
"github.com/stretchr/testify/assert"
11+
)
12+
13+
func TestMCP_HandleWithoutApplication(t *testing.T) {
14+
mode.Set(mode.TestDev)
15+
recorder := httptest.NewRecorder()
16+
ctx, _ := gin.CreateTestContext(recorder)
17+
ctx.Request = httptest.NewRequest("POST", "/mcp", nil)
18+
19+
NewMCP(&MessageAPI{}, "1.0.0").Handle(ctx)
20+
21+
assert.Equal(t, 403, recorder.Code)
22+
assert.Len(t, ctx.Errors, 1)
23+
}
24+
25+
func TestMCP_ServerForRequestWithoutApplication(t *testing.T) {
26+
a := NewMCP(&MessageAPI{}, "1.0.0")
27+
assert.Nil(t, a.serverForRequest(httptest.NewRequest("POST", "/mcp", nil)))
28+
}
29+
30+
func TestMCP_SendMessageDatabaseError(t *testing.T) {
31+
mode.Set(mode.TestDev)
32+
db := testdb.NewDBWithDefaultUser(t)
33+
app := db.User(5).NewAppWithToken(3, "apptoken")
34+
db.Close()
35+
36+
a := NewMCP(&MessageAPI{DB: db}, "1.0.0")
37+
res, _, err := a.sendMessage(app, SendMessageInput{Message: "hi"})
38+
39+
assert.Nil(t, res)
40+
assert.EqualError(t, err, "failed to send message")
41+
}

0 commit comments

Comments
 (0)