Files
go-caatsm/internal/domain/pln_test.go

52 lines
1.2 KiB
Go

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"),
)
})