From d73192b23534a7697ed5b0da62c5ea5a160aef58 Mon Sep 17 00:00:00 2001 From: PJ Date: Fri, 17 Apr 2026 22:27:32 +0700 Subject: [PATCH] test(proto): cover driver service surface Asserts the eight v0.1 RPCs are exactly the ones present and that message fields round-trip through generated getters. --- proto/driverpb/driver_test.go | 61 +++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 proto/driverpb/driver_test.go diff --git a/proto/driverpb/driver_test.go b/proto/driverpb/driver_test.go new file mode 100644 index 0000000..9794d64 --- /dev/null +++ b/proto/driverpb/driver_test.go @@ -0,0 +1,61 @@ +package driverpb + +import ( + "testing" + + "google.golang.org/grpc" +) + +func TestDriverServiceDescriptor(t *testing.T) { + var sd grpc.ServiceDesc = Driver_ServiceDesc + if sd.ServiceName != "uatu.driver.v1.Driver" { + t.Fatalf("unexpected service name: %q", sd.ServiceName) + } + + want := map[string]bool{ + "Launch": true, + "Terminate": true, + "Tap": true, + "InputText": true, + "Screenshot": true, + "Hierarchy": true, + "WaitForIdle": true, + "Health": true, + } + got := map[string]bool{} + for _, m := range sd.Methods { + got[m.MethodName] = true + } + for name := range want { + if !got[name] { + t.Errorf("missing method %q in service", name) + } + } + for name := range got { + if !want[name] { + t.Errorf("unexpected method %q in service", name) + } + } +} + +func TestMessageFields(t *testing.T) { + lr := &LaunchRequest{BundleId: "com.example", ClearState: true} + if lr.GetBundleId() != "com.example" || !lr.GetClearState() { + t.Fatalf("LaunchRequest field round-trip failed: %+v", lr) + } + + tap := &Point{X: 10, Y: 20} + if tap.GetX() != 10 || tap.GetY() != 20 { + t.Fatalf("Point field round-trip failed: %+v", tap) + } + + img := &Image{Png: []byte{1, 2, 3}, Width: 100, Height: 200} + if len(img.GetPng()) != 3 || img.GetWidth() != 100 || img.GetHeight() != 200 { + t.Fatalf("Image field round-trip failed: %+v", img) + } + + hs := &HealthStatus{Ready: true, Version: "0.0.1", Platform: "android"} + if !hs.GetReady() || hs.GetVersion() != "0.0.1" || hs.GetPlatform() != "android" { + t.Fatalf("HealthStatus field round-trip failed: %+v", hs) + } +}