init push

This commit is contained in:
2026-07-16 22:16:45 +07:00
commit 8b068bdb10
1021 changed files with 332816 additions and 0 deletions

View File

@@ -0,0 +1,98 @@
package service
import (
"context"
"testing"
"time"
beforeflightinspection "wucher/internal/domain/before_flight_inspection"
"wucher/internal/shared/pkg/appctx"
)
type beforeFlightInspectionRepoStub struct {
exists bool
caps *beforeflightinspection.HelicopterCapabilities
existing *beforeflightinspection.BeforeFlightInspection
upserted *beforeflightinspection.BeforeFlightInspection
upsertCallCount int
lookupCallCount int
existsCallCount int
capabilityChecked int
}
func (r *beforeFlightInspectionRepoStub) Upsert(_ context.Context, row *beforeflightinspection.BeforeFlightInspection) error {
r.upsertCallCount++
r.upserted = row
return nil
}
func (r *beforeFlightInspectionRepoStub) GetByFlightInspectionID(_ context.Context, _ []byte) (*beforeflightinspection.BeforeFlightInspection, error) {
r.lookupCallCount++
return r.existing, nil
}
func (r *beforeFlightInspectionRepoStub) FlightInspectionExists(_ context.Context, _ []byte) (bool, error) {
r.existsCallCount++
return r.exists, nil
}
func (r *beforeFlightInspectionRepoStub) GetHelicopterCapabilities(_ context.Context, _ []byte) (*beforeflightinspection.HelicopterCapabilities, error) {
r.capabilityChecked++
return r.caps, nil
}
func TestBeforeFlightInspectionServiceUpsertUsesExistingID(t *testing.T) {
t.Parallel()
flightInspectionID := []byte{0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25}
existingID := []byte{0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45}
createdBy := []byte{0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65}
updatedBy := []byte{0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85}
createdAt := time.Date(2026, time.April, 16, 8, 30, 0, 0, time.UTC)
repo := &beforeFlightInspectionRepoStub{
exists: true,
caps: &beforeflightinspection.HelicopterCapabilities{},
existing: &beforeflightinspection.BeforeFlightInspection{
ID: existingID,
FlightInspectionID: flightInspectionID,
CreatedBy: createdBy,
CreatedAt: createdAt,
},
}
svc := NewBeforeFlightInspectionService(repo)
fuelUnit := "lt"
req := &beforeflightinspection.UpsertRequest{FuelUnit: &fuelUnit}
ctx := appctx.WithUserID(context.Background(), updatedBy)
out, err := svc.Upsert(ctx, flightInspectionID, req)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if out == nil {
t.Fatal("expected non-nil output")
}
if repo.upsertCallCount != 1 {
t.Fatalf("expected Upsert to be called once, got %d", repo.upsertCallCount)
}
if repo.upserted == nil {
t.Fatal("expected upserted payload to be captured")
}
if string(repo.upserted.ID) != string(existingID) {
t.Fatalf("expected existing ID to be reused, got %q", string(repo.upserted.ID))
}
if string(repo.upserted.CreatedBy) != string(createdBy) {
t.Fatalf("expected existing CreatedBy to be preserved, got %q", string(repo.upserted.CreatedBy))
}
if !repo.upserted.CreatedAt.Equal(createdAt) {
t.Fatalf("expected CreatedAt to be preserved, got %v", repo.upserted.CreatedAt)
}
if string(repo.upserted.UpdatedBy) != string(updatedBy) {
t.Fatalf("expected UpdatedBy to be set from context, got %q", string(repo.upserted.UpdatedBy))
}
if repo.upserted.FuelUnit != "LT" {
t.Fatalf("expected fuel unit normalized to LT, got %q", repo.upserted.FuelUnit)
}
}