mirror of
https://github.com/nprasad2077/NBA_Go.git
synced 2026-09-22 05:55:13 +00:00
52 lines
1.2 KiB
Go
52 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"io"
|
|
"net/http"
|
|
"testing"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/gofiber/fiber/v2"
|
|
"github.com/nprasad2077/NBA_Go/routes"
|
|
"github.com/nprasad2077/NBA_Go/config"
|
|
)
|
|
|
|
func setupTestApp() *fiber.App {
|
|
app := fiber.New()
|
|
db := config.InitDB() // uses SQLite file; can be mocked or in-memory for advanced testing
|
|
routes.RegisterPlayerAdvancedRoutes(app, db)
|
|
return app
|
|
}
|
|
|
|
func TestGetPlayerAdvancedStats(t *testing.T) {
|
|
app := setupTestApp()
|
|
|
|
tests := []struct {
|
|
description string
|
|
route string
|
|
expectedCode int
|
|
expectInBody string
|
|
}{
|
|
{
|
|
description: "valid route",
|
|
route: "/api/playeradvancedstats",
|
|
expectedCode: 200,
|
|
expectInBody: `"data"`, // assuming a JSON object with "data"
|
|
},
|
|
{
|
|
description: "invalid route",
|
|
route: "/api/invalid",
|
|
expectedCode: 404,
|
|
expectInBody: "Cannot GET /api/invalid",
|
|
},
|
|
}
|
|
|
|
for _, tc := range tests {
|
|
req, _ := http.NewRequest("GET", tc.route, nil)
|
|
resp, err := app.Test(req, -1)
|
|
assert.Nil(t, err, tc.description)
|
|
assert.Equal(t, tc.expectedCode, resp.StatusCode, tc.description)
|
|
|
|
body, _ := io.ReadAll(resp.Body)
|
|
assert.Contains(t, string(body), tc.expectInBody, tc.description)
|
|
}
|
|
} |