Fix styled switch-back repaint
This commit is contained in:
@@ -3,6 +3,7 @@ package harness
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -74,6 +75,43 @@ func runStep(s *Session, step Step, results map[string]json.RawMessage) error {
|
||||
return fmt.Errorf("screen does not contain %q:\n%s", step.Contains, screen)
|
||||
}
|
||||
return nil
|
||||
case "assert_not_contains":
|
||||
screen, err := s.Screen()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if strings.Contains(screen, step.Contains) {
|
||||
return fmt.Errorf("screen contains %q:\n%s", step.Contains, screen)
|
||||
}
|
||||
return nil
|
||||
case "mark_raw":
|
||||
if step.SaveAs == "" {
|
||||
return fmt.Errorf("mark_raw requires save_as")
|
||||
}
|
||||
raw, err := json.Marshal(s.RawOffset())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
results[step.SaveAs] = raw
|
||||
return nil
|
||||
case "assert_raw_since_regex":
|
||||
raw, ok := results[step.From]
|
||||
if !ok {
|
||||
return fmt.Errorf("no saved result %q", step.From)
|
||||
}
|
||||
var offset int
|
||||
if err := json.Unmarshal(raw, &offset); err != nil {
|
||||
return fmt.Errorf("saved result %q is not a raw offset: %w", step.From, err)
|
||||
}
|
||||
re, err := regexp.Compile(step.Regex)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
b := s.RawSince(offset)
|
||||
if !re.Match(b) {
|
||||
return fmt.Errorf("raw output since %q does not match %q:\n%s", step.From, step.Regex, string(b))
|
||||
}
|
||||
return nil
|
||||
case "assert_regex":
|
||||
return s.WaitForRegex(step.Regex, timeoutMS(step.TimeoutMS))
|
||||
case "wait_text":
|
||||
|
||||
Reference in New Issue
Block a user