Skip to content

Commit 373f618

Browse files
committed
review: fix create/update --telemetry parity; fix append aliasing; gofmt
1 parent 4a0ba01 commit 373f618

4 files changed

Lines changed: 27 additions & 8 deletions

File tree

cmd/browsers.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -427,12 +427,14 @@ func (b BrowsersCmd) Create(ctx context.Context, in BrowsersCreateInput) error {
427427

428428
if in.Telemetry == "all" {
429429
params.Telemetry = kernel.BrowserTelemetryRequestConfigParam{Enabled: kernel.Opt(true)}
430+
} else if in.Telemetry == "off" {
431+
params.Telemetry = kernel.BrowserTelemetryRequestConfigParam{Enabled: kernel.Opt(false)}
430432
} else if in.Telemetry != "" {
431433
p, err := parseTelemetryCategories(in.Telemetry)
432434
if err != nil {
433435
return err
434436
}
435-
params.Telemetry = kernel.BrowserTelemetryRequestConfigParam{Browser: p}
437+
params.Telemetry = kernel.BrowserTelemetryRequestConfigParam{Enabled: kernel.Opt(true), Browser: p}
436438
}
437439

438440
browser, err := b.browsers.New(ctx, params)
@@ -2535,7 +2537,7 @@ func init() {
25352537
browsersCreateCmd.Flags().Bool("viewport-interactive", false, "Interactively select viewport size from list")
25362538
browsersCreateCmd.Flags().String("pool-id", "", "Browser pool ID to acquire from (mutually exclusive with --pool-name)")
25372539
browsersCreateCmd.Flags().String("pool-name", "", "Browser pool name to acquire from (mutually exclusive with --pool-id)")
2538-
browsersCreateCmd.Flags().String("telemetry", "", "Enable telemetry: --telemetry=all to enable all, --telemetry=network=on,page=off for per-category")
2540+
browsersCreateCmd.Flags().String("telemetry", "", "Configure telemetry: --telemetry=all to enable, --telemetry=off to disable, --telemetry=network=on,page=off for per-category")
25392541

25402542
// curl
25412543
curlCmd := &cobra.Command{

cmd/browsers_telemetry.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@ func parseTelemetryCategories(s string) (kernel.BrowserTelemetryCategoriesConfig
6868
// "system" is always-on and cannot be toggled, but is valid as a --categories stream filter.
6969
var settableCategories = []string{"console", "interaction", "network", "page"}
7070

71+
// streamableCategories extends settableCategories with "system" for --categories stream filtering.
72+
var streamableCategories = append(settableCategories[:len(settableCategories):len(settableCategories)], "system")
73+
7174
// eventCategory derives the category from the event type prefix.
7275
// "monitor_*" maps to "system"; all others use the prefix before the first "_".
7376
// TODO(sdk): kernel-go-sdk should surface Category directly on BrowserTelemetryEventUnion.
@@ -98,8 +101,8 @@ func (b BrowsersCmd) TelemetryStream(ctx context.Context, in BrowsersTelemetrySt
98101
return fmt.Errorf("unsupported --output value: use 'json'")
99102
}
100103
for _, c := range in.Categories {
101-
if c != "system" && !slices.Contains(settableCategories, c) {
102-
return fmt.Errorf("unknown category %q: must be one of %s", c, strings.Join(append(settableCategories, "system"), ", "))
104+
if !slices.Contains(streamableCategories, c) {
105+
return fmt.Errorf("unknown category %q: must be one of %s", c, strings.Join(streamableCategories, ", "))
103106
}
104107
}
105108
if b.telemetry == nil {

cmd/browsers_telemetry_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ func TestTelemetryStream_UnknownCategoryErrors(t *testing.T) {
2929
assert.Contains(t, err.Error(), "unknown category")
3030
}
3131

32-
3332
func makeEvent(t *testing.T, raw string) kernel.BrowserTelemetryEventUnion {
3433
t.Helper()
3534
var ev kernel.BrowserTelemetryEventUnion

cmd/browsers_test.go

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -911,7 +911,6 @@ func (f *FakeProcessService) StdoutStreamStreaming(ctx context.Context, processI
911911
return makeStream([]kernel.BrowserProcessStdoutStreamResponse{{Stream: kernel.BrowserProcessStdoutStreamResponseStreamStdout, DataB64: "aGVsbG8=", Event: ""}, {Event: "exit", ExitCode: 0}})
912912
}
913913

914-
915914
type FakeLogService struct {
916915
StreamFunc func(ctx context.Context, id string, query kernel.BrowserLogStreamParams, opts ...option.RequestOption) *ssestream.Stream[shared.LogEvent]
917916
}
@@ -1672,7 +1671,8 @@ func TestBrowsersCreate_WithTelemetryCategories(t *testing.T) {
16721671
err := b.Create(context.Background(), BrowsersCreateInput{Telemetry: "network=on,page=off"})
16731672

16741673
assert.NoError(t, err)
1675-
assert.False(t, captured.Telemetry.Enabled.Valid())
1674+
assert.True(t, captured.Telemetry.Enabled.Valid())
1675+
assert.True(t, captured.Telemetry.Enabled.Value)
16761676
assert.True(t, captured.Telemetry.Browser.Network.Enabled.Valid())
16771677
assert.True(t, captured.Telemetry.Browser.Network.Enabled.Value)
16781678
assert.True(t, captured.Telemetry.Browser.Page.Enabled.Valid())
@@ -1681,6 +1681,22 @@ func TestBrowsersCreate_WithTelemetryCategories(t *testing.T) {
16811681
assert.False(t, captured.Telemetry.Browser.Interaction.Enabled.Valid())
16821682
}
16831683

1684+
func TestBrowsersCreate_WithTelemetryOff(t *testing.T) {
1685+
setupStdoutCapture(t)
1686+
var captured kernel.BrowserNewParams
1687+
fake := &FakeBrowsersService{NewFunc: func(ctx context.Context, body kernel.BrowserNewParams, opts ...option.RequestOption) (*kernel.BrowserNewResponse, error) {
1688+
captured = body
1689+
return &kernel.BrowserNewResponse{SessionID: "session123", CdpWsURL: "ws://example"}, nil
1690+
}}
1691+
b := BrowsersCmd{browsers: fake}
1692+
1693+
err := b.Create(context.Background(), BrowsersCreateInput{Telemetry: "off"})
1694+
1695+
assert.NoError(t, err)
1696+
assert.True(t, captured.Telemetry.Enabled.Valid())
1697+
assert.False(t, captured.Telemetry.Enabled.Value)
1698+
}
1699+
16841700
func TestBrowsersCreate_WithoutTelemetry(t *testing.T) {
16851701
setupStdoutCapture(t)
16861702
var captured kernel.BrowserNewParams
@@ -1783,4 +1799,3 @@ func TestBrowsersUpdate_ForceWithProxyButNoViewport_Errors(t *testing.T) {
17831799
assert.Error(t, err)
17841800
assert.Contains(t, err.Error(), "--force requires --viewport")
17851801
}
1786-

0 commit comments

Comments
 (0)