Skip to content

Commit

Permalink
Add module list event testing to test_module_list
Browse files Browse the repository at this point in the history
  • Loading branch information
Anthony-Eid committed Feb 6, 2025
1 parent 9d67d6c commit 6475983
Showing 1 changed file with 76 additions and 0 deletions.
76 changes: 76 additions & 0 deletions crates/debugger_ui/src/tests/module_list.rs
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,82 @@ async fn test_module_list(executor: BackgroundExecutor, cx: &mut TestAppContext)
assert_eq!(modules, actual_modules);
});

// Test all module events now
// New Module
// Changed
// Removed

let new_module = dap::Module {
id: dap::ModuleId::Number(3),
name: "Third Module".into(),
address_range: None,
date_time_stamp: None,
path: None,
symbol_file_path: None,
symbol_status: None,
version: None,
is_optimized: None,
is_user_code: None,
};

client
.fake_event(dap::messages::Events::Module(dap::ModuleEvent {
reason: dap::ModuleEventReason::New,
module: new_module.clone(),
}))
.await;

cx.run_until_parked();

active_debug_panel_item(workspace, cx).update(cx, |item, cx| {
let actual_modules = item.module_list().update(cx, |list, cx| list.modules(cx));
assert_eq!(actual_modules.len(), 3);
assert!(actual_modules.contains(&new_module));
});

let changed_module = dap::Module {
id: dap::ModuleId::Number(2),
name: "Modified Second Module".into(),
address_range: None,
date_time_stamp: None,
path: None,
symbol_file_path: None,
symbol_status: None,
version: None,
is_optimized: None,
is_user_code: None,
};

client
.fake_event(dap::messages::Events::Module(dap::ModuleEvent {
reason: dap::ModuleEventReason::Changed,
module: changed_module.clone(),
}))
.await;

cx.run_until_parked();

active_debug_panel_item(workspace, cx).update(cx, |item, cx| {
let actual_modules = item.module_list().update(cx, |list, cx| list.modules(cx));
assert_eq!(actual_modules.len(), 3);
assert!(actual_modules.contains(&changed_module));
});

client
.fake_event(dap::messages::Events::Module(dap::ModuleEvent {
reason: dap::ModuleEventReason::Removed,
module: changed_module.clone(),
}))
.await;

cx.run_until_parked();

active_debug_panel_item(workspace, cx).update(cx, |item, cx| {
let actual_modules = item.module_list().update(cx, |list, cx| list.modules(cx));
assert_eq!(actual_modules.len(), 2);
assert!(!actual_modules.contains(&changed_module));
});

let shutdown_session = project.update(cx, |project, cx| {
project.dap_store().update(cx, |dap_store, cx| {
dap_store.shutdown_session(&session.read(cx).id(), cx)
Expand Down

0 comments on commit 6475983

Please sign in to comment.