mirror of
https://github.com/priyanshujain/sanderling.git
synced 2026-10-02 19:17:10 +00:00
fix(runtime): surface unresolved action targets instead of dropping silently
serializeAction emitted {x:0,y:0} via `?? 0` whenever a Tap/InputText/Swipe
target failed to resolve to coordinates. The runner then collapsed those
to ErrNoAction, so every selector typo became a silent no-op tick.
Have the runtime return null on unresolved targets and log a console
warning (visible via chromedp's runtime listener). Drop the now-redundant
{0,0} -> ErrNoAction guard so a deliberate Tap at the origin actually
fires.
This commit is contained in:
1 parent
372fd23d87
commit
57101df48d
2 files changed
+17
-8
No files matched your search
@@ -471,20 +471,32 @@ function serializeAction(action: unknown): unknown {
|
||||
switch (obj.kind) {
|
||||
case "Tap": {
|
||||
const point = pointOf(obj.on);
|
||||
return { kind: "Tap", x: point?.x ?? 0, y: point?.y ?? 0 };
|
||||
if (!point) {
|
||||
console.warn("[sanderling] Tap target did not resolve to coordinates");
|
||||
return null;
|
||||
}
|
||||
return { kind: "Tap", x: point.x, y: point.y };
|
||||
}
|
||||
case "InputText": {
|
||||
const point = pointOf(obj.into);
|
||||
if (!point) {
|
||||
console.warn("[sanderling] InputText target did not resolve to coordinates");
|
||||
return null;
|
||||
}
|
||||
return {
|
||||
kind: "InputText",
|
||||
x: point?.x ?? 0,
|
||||
y: point?.y ?? 0,
|
||||
x: point.x,
|
||||
y: point.y,
|
||||
text: obj.text ?? "",
|
||||
};
|
||||
}
|
||||
case "Swipe": {
|
||||
const from = pointOf(obj.from) ?? { x: 0, y: 0 };
|
||||
const to = pointOf(obj.to) ?? { x: 0, y: 0 };
|
||||
const from = pointOf(obj.from);
|
||||
const to = pointOf(obj.to);
|
||||
if (!from || !to) {
|
||||
console.warn("[sanderling] Swipe endpoints did not resolve to coordinates");
|
||||
return null;
|
||||
}
|
||||
return {
|
||||
kind: "Swipe",
|
||||
from_x: from.x,
|
||||
|
||||
Reference in new issue
Block a user