|
@@ -165,3 +165,35 @@ func TestZoneValidationPrecedesDeviceOpening(t *testing.T) {
|
|
|
t.Errorf("OpenDevice() error = %v, want unknown zone error", err)
|
|
t.Errorf("OpenDevice() error = %v, want unknown zone error", err)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+func TestZoneValidationRunsBeforeCommandOpener(t *testing.T) {
|
|
|
|
|
+ originalTargetDevice := targetDevice
|
|
|
|
|
+ originalTargetZone := targetZone
|
|
|
|
|
+ t.Cleanup(func() {
|
|
|
|
|
+ targetDevice = originalTargetDevice
|
|
|
|
|
+ targetZone = originalTargetZone
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ cmd := Init()
|
|
|
|
|
+ openerCalled := false
|
|
|
|
|
+ cmd.AddCommand(&cobra.Command{
|
|
|
|
|
+ Use: "probe",
|
|
|
|
|
+ RunE: func(*cobra.Command, []string) error {
|
|
|
|
|
+ openerCalled = true
|
|
|
|
|
+ _, _, err := OpenDevice()
|
|
|
|
|
+ return err
|
|
|
|
|
+ },
|
|
|
|
|
+ })
|
|
|
|
|
+ cmd.SetArgs([]string{"--zone", "matrix", "probe"})
|
|
|
|
|
+
|
|
|
|
|
+ err := cmd.Execute()
|
|
|
|
|
+ if err == nil {
|
|
|
|
|
+ t.Fatal("Execute() expected zone error, got nil")
|
|
|
|
|
+ }
|
|
|
|
|
+ if !strings.Contains(err.Error(), "unknown zone") {
|
|
|
|
|
+ t.Errorf("Execute() error = %v, want unknown zone error", err)
|
|
|
|
|
+ }
|
|
|
|
|
+ if openerCalled {
|
|
|
|
|
+ t.Fatal("child command invoked OpenDevice before zone validation")
|
|
|
|
|
+ }
|
|
|
|
|
+}
|