Integrate monitoring server for observability, adding health and metrics endpoints. Update configuration to enable monitoring features and enhance README with deployment examples for Kubernetes and systemd. Refactor application initialization to include monitoring server setup and improve error handling in message processing metrics.

This commit is contained in:
windyboy
2025-11-15 16:30:29 +08:00
parent c3f98e9c7c
commit 53208997e8
17 changed files with 1092 additions and 182 deletions
+51
View File
@@ -0,0 +1,51 @@
package domain
import (
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
)
var _ = Describe("ScheduleLine", func() {
var base ScheduleLine
BeforeEach(func() {
base = ScheduleLine{
Index: "001",
Date: "30OCT",
Task: "H/G",
FlightNumber: []string{
"CA1014",
},
AircraftReg: "B2458",
PassengerConfig: "1/1",
ILS: "ILS(0)",
Waypoints: []WayPoint{
{Airport: "ZBTJ", DepartureTime: "0100", ArrivalTime: "0200"},
},
Comments: "all green",
}
})
It("passes validation when all required fields exist", func() {
Expect(base.Validate()).To(Succeed())
})
DescribeTable("required field validation",
func(mutator func(line *ScheduleLine), expected string) {
line := base
mutator(&line)
err := line.Validate()
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(ContainSubstring(expected))
},
Entry("missing date", func(line *ScheduleLine) {
line.Date = ""
}, "date is required"),
Entry("missing flight number", func(line *ScheduleLine) {
line.FlightNumber = nil
}, "flight number is required"),
Entry("missing aircraft registration", func(line *ScheduleLine) {
line.AircraftReg = ""
}, "aircraft registration is required"),
)
})