返回 DeepSeek-Reasonix
remote_tab_event_log_test.go
根目录 / desktop / remote_tab_event_log_test.go
1 package main
2
3 import (
4 "encoding/json"
5 "strings"
6 "sync"
7 )
8
9 // eventLog records every emitRemoteEvent call from any goroutine.
10 type eventLog struct {
11 mu sync.Mutex
12 events []string // "name payload"
13 }
14
15 func (l *eventLog) add(name string, payload any) {
16 text, _ := json.Marshal(payload)
17 l.mu.Lock()
18 l.events = append(l.events, name+" "+string(text))
19 l.mu.Unlock()
20 }
21
22 func (l *eventLog) recorded() []string {
23 l.mu.Lock()
24 defer l.mu.Unlock()
25 out := make([]string, len(l.events))
26 copy(out, l.events)
27 return out
28 }
29
30 func (l *eventLog) count(prefix string) int {
31 l.mu.Lock()
32 defer l.mu.Unlock()
33 n := 0
34 for _, e := range l.events {
35 if strings.HasPrefix(e, prefix) {
36 n++
37 }
38 }
39 return n
40 }
41
41 lines GO