init push
This commit is contained in:
243
internal/app/api/routes_test.go
Normal file
243
internal/app/api/routes_test.go
Normal file
@@ -0,0 +1,243 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"testing"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
)
|
||||
|
||||
func TestRegisterRoutes(t *testing.T) {
|
||||
app := fiber.New()
|
||||
RegisterRoutes(app, buildRouteDependenciesForTest())
|
||||
|
||||
routes := app.GetRoutes(true)
|
||||
required := []struct {
|
||||
method string
|
||||
path string
|
||||
}{
|
||||
{method: http.MethodGet, path: "/health"},
|
||||
{method: http.MethodGet, path: "/version"},
|
||||
{method: http.MethodGet, path: "/api/version"},
|
||||
{method: http.MethodGet, path: "/api/build-info"},
|
||||
{method: http.MethodGet, path: "/metrics"},
|
||||
{method: http.MethodPost, path: "/api/v1/auth/register"},
|
||||
{method: http.MethodPost, path: "/api/v1/auth/forgot-password"},
|
||||
{method: http.MethodPost, path: "/api/v1/users/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/users/events"},
|
||||
{method: http.MethodPost, path: "/api/v1/contacts/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/contacts/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/contacts/get-all/dt"},
|
||||
{method: http.MethodPost, path: "/api/v1/roles/create"},
|
||||
{method: http.MethodPost, path: "/api/v1/helicopters/create"},
|
||||
{method: http.MethodPost, path: "/api/v1/helicopter-usage/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/helicopter-usage/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/helicopter-usage/get-all/dt"},
|
||||
{method: http.MethodGet, path: "/api/v1/helicopter-usage/get/:uuid"},
|
||||
{method: http.MethodPatch, path: "/api/v1/helicopter-usage/update/:uuid"},
|
||||
{method: http.MethodDelete, path: "/api/v1/helicopter-usage/delete/:uuid"},
|
||||
{method: http.MethodPost, path: "/api/v1/helicopters/:id/reports/next-number"},
|
||||
{method: http.MethodPost, path: "/api/v1/helicopter-files/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/helicopter-files/events"},
|
||||
{method: http.MethodPost, path: "/api/v1/helicopter-files/upload"},
|
||||
{method: http.MethodPost, path: "/api/v1/helicopter-files/cancel-upload"},
|
||||
{method: http.MethodGet, path: "/api/v1/helicopter-files/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/helicopter-files/get/:helicopter_id"},
|
||||
{method: http.MethodPatch, path: "/api/v1/helicopter-files/update"},
|
||||
{method: http.MethodDelete, path: "/api/v1/helicopter-files/delete"},
|
||||
{method: http.MethodGet, path: "/api/v1/flights/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/flights/get"},
|
||||
{method: http.MethodGet, path: "/api/v1/fm-reports/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/fm-reports/get/:flight_id"},
|
||||
{method: http.MethodPatch, path: "/api/v1/fm-reports/update/:flight_id"},
|
||||
{method: http.MethodPost, path: "/api/v1/fm-reports/complete/:flight_id"},
|
||||
{method: http.MethodPost, path: "/api/v1/flight-data/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/flight-data/get/:uuid"},
|
||||
{method: http.MethodGet, path: "/api/v1/flight-data/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/flight-data/get-all/dt"},
|
||||
{method: http.MethodGet, path: "/api/v1/flights-data/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/flights-data/get-all/dt"},
|
||||
{method: http.MethodGet, path: "/api/v1/mission-type/get-all"},
|
||||
{method: http.MethodDelete, path: "/api/v1/mission/delete-by-id/:mission_id"},
|
||||
{method: http.MethodPost, path: "/api/v1/reserve-acs/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/reserve-acs/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/reserve-acs/get-all/dt"},
|
||||
{method: http.MethodGet, path: "/api/v1/reserve-acs/get/:id"},
|
||||
{method: http.MethodPatch, path: "/api/v1/reserve-acs/update"},
|
||||
{method: http.MethodDelete, path: "/api/v1/reserve-acs/delete"},
|
||||
{method: http.MethodGet, path: "/api/v1/after-flight-inspection/get"},
|
||||
{method: http.MethodPost, path: "/api/v1/after-flight-inspection/create"},
|
||||
{method: http.MethodPatch, path: "/api/v1/after-flight-inspection/update"},
|
||||
{method: http.MethodDelete, path: "/api/v1/after-flight-inspection/delete"},
|
||||
{method: http.MethodPost, path: "/api/v1/facilities/create"},
|
||||
{method: http.MethodPost, path: "/api/v1/bases/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/bases/events"},
|
||||
{method: http.MethodPost, path: "/api/v1/medicine/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/medicine/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/medicine/get-all/dt"},
|
||||
{method: http.MethodPatch, path: "/api/v1/medicine/update/:uuid"},
|
||||
{method: http.MethodDelete, path: "/api/v1/medicine/delete/:uuid"},
|
||||
{method: http.MethodPost, path: "/api/v1/medicine-group/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/medicine-group/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/medicine-group/get-all/dt"},
|
||||
{method: http.MethodPatch, path: "/api/v1/medicine-group/update/:uuid"},
|
||||
{method: http.MethodDelete, path: "/api/v1/medicine-group/delete/:uuid"},
|
||||
{method: http.MethodPost, path: "/api/v1/motor-reaction/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/motor-reaction/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/motor-reaction/get-all/dt"},
|
||||
{method: http.MethodPatch, path: "/api/v1/motor-reaction/update/:uuid"},
|
||||
{method: http.MethodDelete, path: "/api/v1/motor-reaction/delete/:uuid"},
|
||||
{method: http.MethodPost, path: "/api/v1/vocation/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/vocation/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/vocation/get-all/dt"},
|
||||
{method: http.MethodPatch, path: "/api/v1/vocation/update/:uuid"},
|
||||
{method: http.MethodDelete, path: "/api/v1/vocation/delete/:uuid"},
|
||||
{method: http.MethodPost, path: "/api/v1/opc/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/opc/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/opc/get-all/dt"},
|
||||
{method: http.MethodPatch, path: "/api/v1/opc/update/:uuid"},
|
||||
{method: http.MethodDelete, path: "/api/v1/opc/delete/:uuid"},
|
||||
{method: http.MethodPost, path: "/api/v1/forces-present/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/forces-present/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/forces-present/get-all/dt"},
|
||||
{method: http.MethodPatch, path: "/api/v1/forces-present/update/:uuid"},
|
||||
{method: http.MethodDelete, path: "/api/v1/forces-present/delete/:uuid"},
|
||||
{method: http.MethodPost, path: "/api/v1/hospital/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/hospital/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/hospital/get-all/dt"},
|
||||
{method: http.MethodPatch, path: "/api/v1/hospital/update/:uuid"},
|
||||
{method: http.MethodDelete, path: "/api/v1/hospital/delete/:uuid"},
|
||||
{method: http.MethodPost, path: "/api/v1/health-insurance-companies/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/health-insurance-companies/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/health-insurance-companies/get-all/dt"},
|
||||
{method: http.MethodPatch, path: "/api/v1/health-insurance-companies/update/:uuid"},
|
||||
{method: http.MethodDelete, path: "/api/v1/health-insurance-companies/delete/:uuid"},
|
||||
{method: http.MethodPost, path: "/api/v1/federal-state/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/federal-state/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/federal-state/get-all/dt"},
|
||||
{method: http.MethodPatch, path: "/api/v1/federal-state/update/:id"},
|
||||
{method: http.MethodDelete, path: "/api/v1/federal-state/delete/:id"},
|
||||
{method: http.MethodPost, path: "/api/v1/icao/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/icao/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/icao/get-all/dt"},
|
||||
{method: http.MethodPatch, path: "/api/v1/icao/update/:uuid"},
|
||||
{method: http.MethodDelete, path: "/api/v1/icao/delete/:uuid"},
|
||||
{method: http.MethodPost, path: "/api/v1/land/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/land/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/land/get-all/dt"},
|
||||
{method: http.MethodPatch, path: "/api/v1/land/update/:id"},
|
||||
{method: http.MethodDelete, path: "/api/v1/land/delete/:id"},
|
||||
{method: http.MethodPost, path: "/api/v1/master-settings/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/master-settings/get"},
|
||||
{method: http.MethodPatch, path: "/api/v1/master-settings/update/:uuid"},
|
||||
{method: http.MethodDelete, path: "/api/v1/master-settings/delete/:uuid"},
|
||||
{method: http.MethodGet, path: "/api/v1/branding/logo"},
|
||||
{method: http.MethodGet, path: "/api/v1/branding/login-cover"},
|
||||
{method: http.MethodGet, path: "/api/v1/branding/login-content"},
|
||||
{method: http.MethodGet, path: "/api/v1/file-manager/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/file-manager/events"},
|
||||
{method: http.MethodGet, path: "/api/v1/file-manager/trash/get-all"},
|
||||
{method: http.MethodPatch, path: "/api/v1/file-manager/move"},
|
||||
{method: http.MethodDelete, path: "/api/v1/file-manager/delete"},
|
||||
{method: http.MethodPatch, path: "/api/v1/file-manager/restore"},
|
||||
{method: http.MethodDelete, path: "/api/v1/file-manager/purge-delete"},
|
||||
{method: http.MethodPost, path: "/api/v1/file-manager/folders/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/file-manager/folders/get/:uuid"},
|
||||
{method: http.MethodPatch, path: "/api/v1/file-manager/folders/update/:uuid"},
|
||||
{method: http.MethodPost, path: "/api/v1/file-manager/files/create"},
|
||||
{method: http.MethodPost, path: "/api/v1/file-manager/files/upload"},
|
||||
{method: http.MethodDelete, path: "/api/v1/file-manager/files/cancel-upload"},
|
||||
{method: http.MethodGet, path: "/api/v1/file-manager/files/get/:uuid"},
|
||||
{method: http.MethodPatch, path: "/api/v1/file-manager/files/update/:uuid"},
|
||||
{method: http.MethodPost, path: "/api/v1/file-manager/attachments/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/file-manager/attachments/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/file-manager/attachments/get/:uuid"},
|
||||
{method: http.MethodDelete, path: "/api/v1/file-manager/attachments/delete/:uuid"},
|
||||
{method: http.MethodPost, path: "/api/v1/duty-roster/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/duty-roster/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/duty-roster/get-all/dt"},
|
||||
{method: http.MethodPatch, path: "/api/v1/duty-roster/update"},
|
||||
{method: http.MethodDelete, path: "/api/v1/duty-roster/delete"},
|
||||
{method: http.MethodDelete, path: "/api/v1/duty-roster/crew"},
|
||||
{method: http.MethodPost, path: "/api/v1/air-rescuer-checklist/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/air-rescuer-checklist/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/air-rescuer-checklist/get-all/dt"},
|
||||
{method: http.MethodGet, path: "/api/v1/air-rescuer-checklist/get/:uuid"},
|
||||
{method: http.MethodPatch, path: "/api/v1/air-rescuer-checklist/update/:uuid"},
|
||||
{method: http.MethodDelete, path: "/api/v1/air-rescuer-checklist/delete/:uuid"},
|
||||
{method: http.MethodPost, path: "/api/v1/air-rescuer-checklist/:uuid/items/create"},
|
||||
{method: http.MethodPatch, path: "/api/v1/air-rescuer-checklist/:uuid/items/reorder"},
|
||||
{method: http.MethodPatch, path: "/api/v1/air-rescuer-checklist/items/update/:item_uuid"},
|
||||
{method: http.MethodDelete, path: "/api/v1/air-rescuer-checklist/items/delete/:item_uuid"},
|
||||
{method: http.MethodPost, path: "/api/v1/insurance-patient-data/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/insurance-patient-data/get/:uuid"},
|
||||
{method: http.MethodGet, path: "/api/v1/insurance-patient-data/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/insurance-patient-data/get-all/dt"},
|
||||
{method: http.MethodPatch, path: "/api/v1/insurance-patient-data/update/:uuid"},
|
||||
{method: http.MethodDelete, path: "/api/v1/insurance-patient-data/delete/:uuid"},
|
||||
{method: http.MethodPost, path: "/api/v1/patient-data/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/patient-data/get/:uuid"},
|
||||
{method: http.MethodGet, path: "/api/v1/patient-data/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/patient-data/get-all/dt"},
|
||||
{method: http.MethodPatch, path: "/api/v1/patient-data/update/:uuid"},
|
||||
{method: http.MethodDelete, path: "/api/v1/patient-data/delete/:uuid"},
|
||||
{method: http.MethodGet, path: "/api/v1/dul/events"},
|
||||
{method: http.MethodPost, path: "/api/v1/hems-operational-data/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/hems-operational-data/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/hems-operational-data/get-all/dt"},
|
||||
{method: http.MethodGet, path: "/api/v1/hems-operational-data/get/:uuid"},
|
||||
{method: http.MethodPatch, path: "/api/v1/hems-operational-data/update/:uuid"},
|
||||
{method: http.MethodDelete, path: "/api/v1/hems-operational-data/delete/:uuid"},
|
||||
{method: http.MethodPost, path: "/api/v1/hems-operation-category/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/hems-operation-category/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/hems-operation-category/get-all/dt"},
|
||||
{method: http.MethodGet, path: "/api/v1/hems-operation-category/get/:uuid"},
|
||||
{method: http.MethodPatch, path: "/api/v1/hems-operation-category/update/:uuid"},
|
||||
{method: http.MethodDelete, path: "/api/v1/hems-operation-category/delete/:uuid"},
|
||||
{method: http.MethodPost, path: "/api/v1/hems-operation/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/hems-operation/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/hems-operation/get-all/dt"},
|
||||
{method: http.MethodGet, path: "/api/v1/hems-operation/get/:uuid"},
|
||||
{method: http.MethodPatch, path: "/api/v1/hems-operation/update/:uuid"},
|
||||
{method: http.MethodDelete, path: "/api/v1/hems-operation/delete/:uuid"},
|
||||
{method: http.MethodGet, path: "/swagger/*"},
|
||||
}
|
||||
|
||||
for _, tc := range required {
|
||||
if !hasRoute(routes, tc.method, tc.path) {
|
||||
t.Fatalf("route %s %s not registered", tc.method, tc.path)
|
||||
}
|
||||
}
|
||||
|
||||
legacy := []struct {
|
||||
method string
|
||||
path string
|
||||
}{
|
||||
{method: http.MethodPost, path: "/api/v1/crews/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/crews/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/crews/get-all/dt"},
|
||||
{method: http.MethodGet, path: "/api/v1/crews/get/:uuid"},
|
||||
{method: http.MethodPatch, path: "/api/v1/crews/update/:uuid"},
|
||||
{method: http.MethodDelete, path: "/api/v1/crews/delete/:uuid"},
|
||||
{method: http.MethodPost, path: "/api/v1/hems-bases/create"},
|
||||
{method: http.MethodGet, path: "/api/v1/hems-bases/get-all"},
|
||||
{method: http.MethodGet, path: "/api/v1/hems-bases/get-all/dt"},
|
||||
{method: http.MethodGet, path: "/api/v1/hems-bases/get/:uuid"},
|
||||
{method: http.MethodPatch, path: "/api/v1/hems-bases/update/:uuid"},
|
||||
{method: http.MethodDelete, path: "/api/v1/hems-bases/delete/:uuid"},
|
||||
}
|
||||
for _, tc := range legacy {
|
||||
if hasRoute(routes, tc.method, tc.path) {
|
||||
t.Fatalf("legacy route %s %s should not be registered", tc.method, tc.path)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func hasRoute(routes []fiber.Route, method, path string) bool {
|
||||
for _, route := range routes {
|
||||
if route.Method == method && route.Path == path {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
Reference in New Issue
Block a user