package actions import ( "strings" "testing" "github.com/spf13/cobra" ) func newSnapshotCmd() *cobra.Command { cmd := &cobra.Command{} cmd.Flags().Bool("interactive", false, "") cmd.Flags().Bool("compact", false, "") cmd.Flags().Bool("text", false, "") cmd.Flags().Bool("diff", false, "") cmd.Flags().String("selector", "", "") cmd.Flags().String("max-tokens", "", "") cmd.Flags().String("depth", "", "") cmd.Flags().String("tab", "", "") return cmd } func TestSnapshot(t *testing.T) { m := newMockServer() m.response = `[{"ref":"e0","role":"button","name":"Submit"}]` defer m.close() client := m.server.Client() cmd := newSnapshotCmd() _ = cmd.Flags().Set("interactive", "true") _ = cmd.Flags().Set("compact", "true") Snapshot(client, m.base(), "", cmd) if m.lastMethod != "GET" { t.Errorf("expected GET, got %s", m.lastMethod) } if m.lastPath != "/snapshot" { t.Errorf("expected /snapshot, got %s", m.lastPath) } if !strings.Contains(m.lastQuery, "filter=interactive") { t.Errorf("expected filter=interactive in query, got %s", m.lastQuery) } if !strings.Contains(m.lastQuery, "format=compact") { t.Errorf("expected format=compact in query, got %s", m.lastQuery) } } func TestSnapshotDiff(t *testing.T) { m := newMockServer() defer m.close() client := m.server.Client() cmd := newSnapshotCmd() _ = cmd.Flags().Set("diff", "true") _ = cmd.Flags().Set("selector", "main") _ = cmd.Flags().Set("max-tokens", "2000") _ = cmd.Flags().Set("depth", "5") Snapshot(client, m.base(), "", cmd) if !strings.Contains(m.lastQuery, "diff=true") { t.Errorf("expected diff=true, got %s", m.lastQuery) } if !strings.Contains(m.lastQuery, "selector=main") { t.Errorf("expected selector=main, got %s", m.lastQuery) } if !strings.Contains(m.lastQuery, "maxTokens=2000") { t.Errorf("expected maxTokens=2000, got %s", m.lastQuery) } if !strings.Contains(m.lastQuery, "depth=5") { t.Errorf("expected depth=5, got %s", m.lastQuery) } } func TestSnapshotTabId(t *testing.T) { m := newMockServer() defer m.close() client := m.server.Client() cmd := newSnapshotCmd() _ = cmd.Flags().Set("tab", "ABC123") Snapshot(client, m.base(), "", cmd) if !strings.Contains(m.lastQuery, "tabId=ABC123") { t.Errorf("expected tabId=ABC123, got %s", m.lastQuery) } }