From d2a4d388b1afa49d6ef5583bedd46d5c228173d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Arrufat?= Date: Wed, 8 Apr 2026 19:29:54 +0200 Subject: [PATCH] agent: consolidate findNodeIdByText tests --- src/agent/CommandExecutor.zig | 46 ++++++++++++++++------------------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/src/agent/CommandExecutor.zig b/src/agent/CommandExecutor.zig index 85442944..98df28a1 100644 --- a/src/agent/CommandExecutor.zig +++ b/src/agent/CommandExecutor.zig @@ -304,38 +304,34 @@ test "substituteEnvVars bare dollar" { try std.testing.expectEqualStrings("price is $ 5", result); } -test "findNodeIdByText matches name field" { - const json = +test "findNodeIdByText" { + var arena = std.heap.ArenaAllocator.init(std.testing.allocator); + defer arena.deinit(); + const a = arena.allocator(); + + // matches name field + try std.testing.expectEqual(@as(?u32, 42), findNodeIdByText(a, \\[{"backendNodeId":42,"tagName":"button","role":"button","name":"Sign In","type":"native","tabIndex":0}] - ; - try std.testing.expectEqual(@as(?u32, 42), findNodeIdByText(std.testing.allocator, json, "Sign In")); -} + , "Sign In")); -test "findNodeIdByText matches case-insensitively" { - const json = + // matches case-insensitively + try std.testing.expectEqual(@as(?u32, 7), findNodeIdByText(a, \\[{"backendNodeId":7,"tagName":"a","role":"link","name":"Login Here","type":"native","tabIndex":0}] - ; - try std.testing.expectEqual(@as(?u32, 7), findNodeIdByText(std.testing.allocator, json, "login here")); -} + , "login here")); -test "findNodeIdByText matches elementName" { - const json = + // matches elementName + try std.testing.expectEqual(@as(?u32, 10), findNodeIdByText(a, \\[{"backendNodeId":10,"tagName":"input","role":null,"name":null,"type":"native","tabIndex":0,"elementName":"username"}] - ; - try std.testing.expectEqual(@as(?u32, 10), findNodeIdByText(std.testing.allocator, json, "username")); -} + , "username")); -test "findNodeIdByText returns null on no match" { - const json = + // returns null on no match + try std.testing.expectEqual(@as(?u32, null), findNodeIdByText(a, \\[{"backendNodeId":1,"tagName":"button","role":"button","name":"Submit","type":"native","tabIndex":0}] - ; - try std.testing.expectEqual(@as(?u32, null), findNodeIdByText(std.testing.allocator, json, "Cancel")); -} + , "Cancel")); -test "findNodeIdByText handles empty array" { - try std.testing.expectEqual(@as(?u32, null), findNodeIdByText(std.testing.allocator, "[]", "anything")); -} + // handles empty array + try std.testing.expectEqual(@as(?u32, null), findNodeIdByText(a, "[]", "anything")); -test "findNodeIdByText handles invalid json" { - try std.testing.expectEqual(@as(?u32, null), findNodeIdByText(std.testing.allocator, "not json", "test")); + // handles invalid json + try std.testing.expectEqual(@as(?u32, null), findNodeIdByText(a, "not json", "test")); }