Files
Dani Akash 290ee91a8b Add 'packages/browseros-agent/' from commit '90bd4be3008285bf3825aad3702aff98f872671a'
git-subtree-dir: packages/browseros-agent
git-subtree-mainline: 8f148d0918
git-subtree-split: 90bd4be300
2026-03-13 21:22:09 +05:30

86 lines
1.3 KiB
Go

package mcp
import (
"encoding/json"
"testing"
)
func TestExtractPageID(t *testing.T) {
tests := []struct {
name string
data map[string]any
want int
ok bool
}{
{
name: "nested page object",
data: map[string]any{
"page": map[string]any{
"pageId": float64(7),
},
},
want: 7,
ok: true,
},
{
name: "top level page id",
data: map[string]any{
"pageId": float64(3),
},
want: 3,
ok: true,
},
{
name: "nested int page id",
data: map[string]any{
"page": map[string]any{
"pageId": 11,
},
},
want: 11,
ok: true,
},
{
name: "missing page id",
data: map[string]any{
"page": map[string]any{
"tabId": float64(9),
},
},
ok: false,
},
{
name: "nil structured content",
data: nil,
ok: false,
},
{
name: "json number page id",
data: map[string]any{
"pageId": json.Number("13"),
},
want: 13,
ok: true,
},
{
name: "non whole float page id",
data: map[string]any{
"pageId": 3.5,
},
ok: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, ok := extractPageID(tt.data)
if ok != tt.ok {
t.Fatalf("extractPageID() ok = %v, want %v", ok, tt.ok)
}
if got != tt.want {
t.Fatalf("extractPageID() = %d, want %d", got, tt.want)
}
})
}
}