Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions crates/agent_ui/src/acp/entry_view_state.rs
Original file line number Diff line number Diff line change
Expand Up @@ -418,7 +418,7 @@ mod tests {
use serde_json::json;
use settings::SettingsStore;
use util::path;
use workspace::Workspace;
use workspace::MultiWorkspace;

#[gpui::test]
async fn test_diff_sync(cx: &mut TestAppContext) {
Expand All @@ -433,8 +433,9 @@ mod tests {
.await;
let project = Project::test(fs, [Path::new(path!("/project"))], cx).await;

let (workspace, cx) =
cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx));
let (multi_workspace, cx) =
cx.add_window_view(|window, cx| MultiWorkspace::test_new(project.clone(), window, cx));
let workspace = multi_workspace.read_with(cx, |mw, _| mw.workspace().clone());

let tool_call = acp::ToolCall::new("tool", "Tool call")
.status(acp::ToolCallStatus::InProgress)
Expand Down
83 changes: 52 additions & 31 deletions crates/agent_ui/src/acp/message_editor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1463,7 +1463,7 @@ mod tests {
use text::Point;
use ui::{App, Context, IntoElement, Render, SharedString, Window};
use util::{path, paths::PathStyle, rel_path::rel_path};
use workspace::{AppState, Item, Workspace};
use workspace::{AppState, Item, MultiWorkspace};

use crate::acp::{
message_editor::{Mention, MessageEditor, parse_mention_links},
Expand Down Expand Up @@ -1571,8 +1571,9 @@ mod tests {
fs.insert_tree("/project", json!({"file": ""})).await;
let project = Project::test(fs, [Path::new(path!("/project"))], cx).await;

let (workspace, cx) =
cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx));
let (multi_workspace, cx) =
cx.add_window_view(|window, cx| MultiWorkspace::test_new(project.clone(), window, cx));
let workspace = multi_workspace.read_with(cx, |mw, _| mw.workspace().clone());

let thread_store = None;
let history = cx
Expand Down Expand Up @@ -1686,8 +1687,9 @@ mod tests {
// Start with no available commands - simulating Claude which doesn't support slash commands
let available_commands = Rc::new(RefCell::new(vec![]));

let (workspace, cx) =
cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx));
let (multi_workspace, cx) =
cx.add_window_view(|window, cx| MultiWorkspace::test_new(project.clone(), window, cx));
let workspace = multi_workspace.read_with(cx, |mw, _| mw.workspace().clone());
let history = cx
.update(|window, cx| cx.new(|cx| crate::acp::AcpThreadHistory::new(None, window, cx)));
let workspace_handle = workspace.downgrade();
Expand Down Expand Up @@ -1835,10 +1837,13 @@ mod tests {
});

let project = Project::test(app_state.fs.clone(), [path!("/dir").as_ref()], cx).await;
let window = cx.add_window(|window, cx| Workspace::test_new(project.clone(), window, cx));
let workspace = window.root(cx).unwrap();
let window =
cx.add_window(|window, cx| MultiWorkspace::test_new(project.clone(), window, cx));
let workspace = window
.read_with(cx, |mw, _| mw.workspace().clone())
.unwrap();

let mut cx = VisualTestContext::from_window(*window, cx);
let mut cx = VisualTestContext::from_window(window.into(), cx);

let thread_store = None;
let history = cx
Expand Down Expand Up @@ -2027,8 +2032,11 @@ mod tests {
.await;

let project = Project::test(app_state.fs.clone(), [path!("/dir").as_ref()], cx).await;
let window = cx.add_window(|window, cx| Workspace::test_new(project.clone(), window, cx));
let workspace = window.root(cx).unwrap();
let window =
cx.add_window(|window, cx| MultiWorkspace::test_new(project.clone(), window, cx));
let workspace = window
.read_with(cx, |mw, _| mw.workspace().clone())
.unwrap();

let worktree = project.update(cx, |project, cx| {
let mut worktrees = project.worktrees(cx).collect::<Vec<_>>();
Expand All @@ -2037,7 +2045,7 @@ mod tests {
});
let worktree_id = worktree.read_with(cx, |worktree, _| worktree.id());

let mut cx = VisualTestContext::from_window(*window, cx);
let mut cx = VisualTestContext::from_window(window.into(), cx);

let paths = vec![
rel_path("a/one.txt"),
Expand Down Expand Up @@ -2564,8 +2572,9 @@ mod tests {

let project = Project::test(fs, [Path::new(path!("/project"))], cx).await;

let (workspace, cx) =
cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx));
let (multi_workspace, cx) =
cx.add_window_view(|window, cx| MultiWorkspace::test_new(project.clone(), window, cx));
let workspace = multi_workspace.read_with(cx, |mw, _| mw.workspace().clone());

let thread_store = Some(cx.new(|cx| ThreadStore::new(cx)));
let history = cx
Expand Down Expand Up @@ -2664,8 +2673,9 @@ mod tests {
fs.insert_tree("/project", json!({"file": ""})).await;
let project = Project::test(fs, [Path::new(path!("/project"))], cx).await;

let (workspace, cx) =
cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx));
let (multi_workspace, cx) =
cx.add_window_view(|window, cx| MultiWorkspace::test_new(project.clone(), window, cx));
let workspace = multi_workspace.read_with(cx, |mw, _| mw.workspace().clone());

let thread_store = Some(cx.new(|cx| ThreadStore::new(cx)));
let history = cx
Expand Down Expand Up @@ -2745,8 +2755,9 @@ mod tests {
fs.insert_tree("/project", json!({"file": ""})).await;
let project = Project::test(fs, [Path::new(path!("/project"))], cx).await;

let (workspace, cx) =
cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx));
let (multi_workspace, cx) =
cx.add_window_view(|window, cx| MultiWorkspace::test_new(project.clone(), window, cx));
let workspace = multi_workspace.read_with(cx, |mw, _| mw.workspace().clone());

let thread_store = None;
let history = cx
Expand Down Expand Up @@ -2804,8 +2815,9 @@ mod tests {
fs.insert_tree("/project", json!({"file": ""})).await;
let project = Project::test(fs, [Path::new(path!("/project"))], cx).await;

let (workspace, cx) =
cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx));
let (multi_workspace, cx) =
cx.add_window_view(|window, cx| MultiWorkspace::test_new(project.clone(), window, cx));
let workspace = multi_workspace.read_with(cx, |mw, _| mw.workspace().clone());

let thread_store = None;
let history = cx
Expand Down Expand Up @@ -2858,8 +2870,9 @@ mod tests {
fs.insert_tree("/project", json!({"file": ""})).await;
let project = Project::test(fs, [Path::new(path!("/project"))], cx).await;

let (workspace, cx) =
cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx));
let (multi_workspace, cx) =
cx.add_window_view(|window, cx| MultiWorkspace::test_new(project.clone(), window, cx));
let workspace = multi_workspace.read_with(cx, |mw, _| mw.workspace().clone());

let thread_store = Some(cx.new(|cx| ThreadStore::new(cx)));
let history = cx
Expand Down Expand Up @@ -2913,8 +2926,9 @@ mod tests {
.await;
let project = Project::test(fs, [Path::new(path!("/project"))], cx).await;

let (workspace, cx) =
cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx));
let (multi_workspace, cx) =
cx.add_window_view(|window, cx| MultiWorkspace::test_new(project.clone(), window, cx));
let workspace = multi_workspace.read_with(cx, |mw, _| mw.workspace().clone());

let thread_store = Some(cx.new(|cx| ThreadStore::new(cx)));
let history = cx
Expand Down Expand Up @@ -2977,8 +2991,9 @@ mod tests {

let project = Project::test(fs, [Path::new(path!("/project"))], cx).await;

let (workspace, cx) =
cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx));
let (multi_workspace, cx) =
cx.add_window_view(|window, cx| MultiWorkspace::test_new(project.clone(), window, cx));
let workspace = multi_workspace.read_with(cx, |mw, _| mw.workspace().clone());

let thread_store = Some(cx.new(|cx| ThreadStore::new(cx)));
let history = cx
Expand Down Expand Up @@ -3098,8 +3113,11 @@ mod tests {
.await;

let project = Project::test(app_state.fs.clone(), [path!("/dir").as_ref()], cx).await;
let window = cx.add_window(|window, cx| Workspace::test_new(project.clone(), window, cx));
let workspace = window.root(cx).unwrap();
let window =
cx.add_window(|window, cx| MultiWorkspace::test_new(project.clone(), window, cx));
let workspace = window
.read_with(cx, |mw, _| mw.workspace().clone())
.unwrap();

let worktree = project.update(cx, |project, cx| {
let mut worktrees = project.worktrees(cx).collect::<Vec<_>>();
Expand All @@ -3108,7 +3126,7 @@ mod tests {
});
let worktree_id = worktree.read_with(cx, |worktree, _| worktree.id());

let mut cx = VisualTestContext::from_window(*window, cx);
let mut cx = VisualTestContext::from_window(window.into(), cx);

// Open a regular editor with the created file, and select a portion of
// the text that will be used for the selections that are meant to be
Expand Down Expand Up @@ -3250,10 +3268,13 @@ mod tests {
.await;

let project = Project::test(app_state.fs.clone(), [path!("/dir").as_ref()], cx).await;
let window = cx.add_window(|window, cx| Workspace::test_new(project.clone(), window, cx));
let workspace = window.root(cx).unwrap();
let window =
cx.add_window(|window, cx| MultiWorkspace::test_new(project.clone(), window, cx));
let workspace = window
.read_with(cx, |mw, _| mw.workspace().clone())
.unwrap();

let mut cx = VisualTestContext::from_window(*window, cx);
let mut cx = VisualTestContext::from_window(window.into(), cx);

let thread_store = cx.new(|cx| ThreadStore::new(cx));
let history = cx
Expand Down
23 changes: 13 additions & 10 deletions crates/agent_ui/src/acp/thread_view.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2470,8 +2470,9 @@ pub(crate) mod tests {

let fs = FakeFs::new(cx.executor());
let project = Project::test(fs, [], cx).await;
let (workspace, cx) =
cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx));
let (multi_workspace, cx) =
cx.add_window_view(|window, cx| MultiWorkspace::test_new(project.clone(), window, cx));
let workspace = multi_workspace.read_with(cx, |mw, _| mw.workspace().clone());

let thread_store = cx.update(|_window, cx| cx.new(|cx| ThreadStore::new(cx)));
// Create history without an initial session list - it will be set after connection
Expand Down Expand Up @@ -2542,8 +2543,9 @@ pub(crate) mod tests {
let session = AgentSessionInfo::new(SessionId::new("resume-session"));
let fs = FakeFs::new(cx.executor());
let project = Project::test(fs, [], cx).await;
let (workspace, cx) =
cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx));
let (multi_workspace, cx) =
cx.add_window_view(|window, cx| MultiWorkspace::test_new(project.clone(), window, cx));
let workspace = multi_workspace.read_with(cx, |mw, _| mw.workspace().clone());

let thread_store = cx.update(|_window, cx| cx.new(|cx| ThreadStore::new(cx)));
let history = cx.update(|window, cx| cx.new(|cx| AcpThreadHistory::new(None, window, cx)));
Expand Down Expand Up @@ -2780,8 +2782,7 @@ pub(crate) mod tests {
let project2 = Project::test(fs, [], cx).await;
multi_workspace_handle
.update(cx, |mw, window, cx| {
let workspace2 = cx.new(|cx| Workspace::test_new(project2, window, cx));
mw.activate(workspace2, cx);
mw.test_add_workspace(project2, window, cx);
})
.unwrap();

Expand Down Expand Up @@ -2922,8 +2923,9 @@ pub(crate) mod tests {
) -> (Entity<AcpServerView>, &mut VisualTestContext) {
let fs = FakeFs::new(cx.executor());
let project = Project::test(fs, [], cx).await;
let (workspace, cx) =
cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx));
let (multi_workspace, cx) =
cx.add_window_view(|window, cx| MultiWorkspace::test_new(project.clone(), window, cx));
let workspace = multi_workspace.read_with(cx, |mw, _| mw.workspace().clone());

let thread_store = cx.update(|_window, cx| cx.new(|cx| ThreadStore::new(cx)));
let history = cx.update(|window, cx| cx.new(|cx| AcpThreadHistory::new(None, window, cx)));
Expand Down Expand Up @@ -3322,8 +3324,9 @@ pub(crate) mod tests {
)
.await;
let project = Project::test(fs, [Path::new("/project")], cx).await;
let (workspace, cx) =
cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx));
let (multi_workspace, cx) =
cx.add_window_view(|window, cx| MultiWorkspace::test_new(project.clone(), window, cx));
let workspace = multi_workspace.read_with(cx, |mw, _| mw.workspace().clone());

let thread_store = cx.update(|_window, cx| cx.new(|cx| ThreadStore::new(cx)));
let history = cx.update(|window, cx| cx.new(|cx| AcpThreadHistory::new(None, window, cx)));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -599,6 +599,7 @@ mod tests {
use project::Project;
use settings::SettingsStore;
use util::path;
use workspace::MultiWorkspace;

#[gpui::test]
async fn test_save_provider_invalid_inputs(cx: &mut TestAppContext) {
Expand Down Expand Up @@ -815,8 +816,9 @@ mod tests {
let fs = FakeFs::new(cx.executor());
cx.update(|cx| <dyn Fs>::set_global(fs.clone(), cx));
let project = Project::test(fs, [path!("/dir").as_ref()], cx).await;
let (_, cx) =
cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx));
let (multi_workspace, cx) =
cx.add_window_view(|window, cx| MultiWorkspace::test_new(project.clone(), window, cx));
let _workspace = multi_workspace.read_with(cx, |mw, _| mw.workspace().clone());

cx
}
Expand Down
11 changes: 7 additions & 4 deletions crates/agent_ui/src/agent_diff.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1732,6 +1732,7 @@ mod tests {
use settings::SettingsStore;
use std::{path::Path, rc::Rc};
use util::path;
use workspace::MultiWorkspace;

#[gpui::test]
async fn test_multibuffer_agent_diff(cx: &mut TestAppContext) {
Expand Down Expand Up @@ -1768,8 +1769,9 @@ mod tests {

let action_log = cx.read(|cx| thread.read(cx).action_log().clone());

let (workspace, cx) =
cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx));
let (multi_workspace, cx) =
cx.add_window_view(|window, cx| MultiWorkspace::test_new(project.clone(), window, cx));
let workspace = multi_workspace.read_with(cx, |mw, _| mw.workspace().clone());
let agent_diff = cx.new_window_entity(|window, cx| {
AgentDiffPane::new(thread.clone(), workspace.downgrade(), window, cx)
});
Expand Down Expand Up @@ -1919,8 +1921,9 @@ mod tests {
})
.unwrap();

let (workspace, cx) =
cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx));
let (multi_workspace, cx) =
cx.add_window_view(|window, cx| MultiWorkspace::test_new(project.clone(), window, cx));
let workspace = multi_workspace.read_with(cx, |mw, _| mw.workspace().clone());

// Add the diff toolbar to the active pane
let diff_toolbar = cx.new_window_entity(|_, cx| AgentDiffToolbar::new(cx));
Expand Down
6 changes: 2 additions & 4 deletions crates/agent_ui/src/agent_panel.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3402,7 +3402,7 @@ mod tests {
use fs::FakeFs;
use gpui::{TestAppContext, VisualTestContext};
use project::Project;
use workspace::{MultiWorkspace, Workspace};
use workspace::MultiWorkspace;

#[gpui::test]
async fn test_active_thread_serialize_and_load_round_trip(cx: &mut TestAppContext) {
Expand All @@ -3429,9 +3429,7 @@ mod tests {

let workspace_b = multi_workspace
.update(cx, |multi_workspace, window, cx| {
let workspace = cx.new(|cx| Workspace::test_new(project_b.clone(), window, cx));
multi_workspace.activate(workspace.clone(), cx);
workspace
multi_workspace.test_add_workspace(project_b.clone(), window, cx)
})
.unwrap();

Expand Down
7 changes: 4 additions & 3 deletions crates/agent_ui/src/completion_provider.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2354,7 +2354,7 @@ mod tests {
use project::Project;
use serde_json::json;
use util::{path, rel_path::rel_path};
use workspace::AppState;
use workspace::{AppState, MultiWorkspace};

let app_state = cx.update(|cx| {
let state = AppState::test(cx);
Expand All @@ -2379,8 +2379,9 @@ mod tests {
.await;

let project = Project::test(app_state.fs.clone(), [path!("/root").as_ref()], cx).await;
let (workspace, cx) =
cx.add_window_view(|window, cx| workspace::Workspace::test_new(project, window, cx));
let (multi_workspace, cx) =
cx.add_window_view(|window, cx| MultiWorkspace::test_new(project, window, cx));
let workspace = multi_workspace.read_with(cx, |mw, _| mw.workspace().clone());

let worktree_id = cx.read(|cx| {
let worktrees = workspace.read(cx).worktrees(cx).collect::<Vec<_>>();
Expand Down
Loading
Loading