mirror of
https://github.com/priyanshujain/sanderling.git
synced 2026-10-04 12:07:09 +00:00
fix(driver): skip pre-erase for replace-on-input drivers
The web driver's InputText already replaces content via select-all, so the runner's unconditional EraseText was a redundant round-trip on every InputText. A new optional TextReplacer capability lets a driver assert replace semantics; the runner skips the erase when asserted.
This commit is contained in:
1 parent
6009adac48
commit
29ec13adcd
5 files changed
+64
-3
No files matched your search
@@ -63,6 +63,10 @@ type Driver struct {
|
||||
MetricsData driver.Metrics
|
||||
Failures map[ActionKind]error
|
||||
|
||||
// ReplacesText makes the mock assert the TextReplacer capability, so
|
||||
// tests cover both the erase-before-type and replace-on-input paths.
|
||||
ReplacesText bool
|
||||
|
||||
// ForegroundResults is consumed one entry per ForegroundApp call (the
|
||||
// last entry repeats). Empty yields "", which disables the runner's
|
||||
// app-scope guard so tests that don't care are unaffected.
|
||||
@@ -212,6 +216,12 @@ func (d *Driver) InputText(ctx context.Context, text string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (d *Driver) ReplacesTextOnInput() bool {
|
||||
d.mutex.Lock()
|
||||
defer d.mutex.Unlock()
|
||||
return d.ReplacesText
|
||||
}
|
||||
|
||||
func (d *Driver) EraseText(ctx context.Context, characterCount int) error {
|
||||
if err := d.failure(ActionEraseText); err != nil {
|
||||
return err
|
||||
|
||||
Reference in new issue
Block a user