feat: refresh and edit browser instances
This commit is contained in:
@@ -92,6 +92,41 @@ func TestMergeInstanceConfigPreservesExistingLaunchOptions(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestInstanceStatusRefresherChecksOnlyConfiguredRows(t *testing.T) {
|
||||
remote := &fakeRemoteDebugInspector{endpoint: browser.RemoteDebugEndpoint{Port: 9777}}
|
||||
refresher := instanceStatusRefresher{
|
||||
managedProfiles: fakeManagedProfileInspector{use: browser.ProfileUse{Occupied: true, PID: 5432, Source: "chub_registry"}},
|
||||
externalProfiles: fakeExternalProfileInspector{},
|
||||
remoteDebug: remote,
|
||||
}
|
||||
rows := []ui.InstanceRow{{ID: "managed", Browser: "Chrome", UserDataDir: `C:\profiles\managed`, RemoteDebugPort: 9777}}
|
||||
results, err := refresher.Refresh(context.Background(), rows)
|
||||
if err != nil || len(results) != 1 {
|
||||
t.Fatalf("Refresh() = %#v, %v", results, err)
|
||||
}
|
||||
got := results[0]
|
||||
if got.ID != "managed" || got.Status != "运行中" || got.PID != 5432 || got.RemoteDebugPort != 9777 || got.OccupancySource != "chub_registry" {
|
||||
t.Fatalf("refresh result = %#v", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestInstanceStatusRefresherAssociatesExternalWithoutLifecycleControl(t *testing.T) {
|
||||
remote := &fakeRemoteDebugInspector{endpoint: browser.RemoteDebugEndpoint{Port: 9668}}
|
||||
refresher := instanceStatusRefresher{
|
||||
managedProfiles: fakeManagedProfileInspector{},
|
||||
externalProfiles: fakeExternalProfileInspector{use: browser.ProfileUse{Occupied: true, PID: 16108, Source: browser.ProfileSourceMessageWindow}},
|
||||
remoteDebug: remote,
|
||||
}
|
||||
results, err := refresher.Refresh(context.Background(), []ui.InstanceRow{{ID: "external", Browser: "Edge", UserDataDir: `C:\profiles\external`}})
|
||||
if err != nil || len(results) != 1 {
|
||||
t.Fatalf("Refresh() = %#v, %v", results, err)
|
||||
}
|
||||
got := results[0]
|
||||
if got.Status != "外部已关联" || got.PID != 16108 || got.RemoteDebugPort != 9668 || got.OccupancySource != browser.ProfileSourceMessageWindow {
|
||||
t.Fatalf("external refresh result = %#v", got)
|
||||
}
|
||||
}
|
||||
|
||||
type fakeExecutableResolver struct {
|
||||
path string
|
||||
kind domain.BrowserKind
|
||||
|
||||
Reference in New Issue
Block a user