huskies: merge 962
This commit is contained in:
@@ -147,7 +147,7 @@ pub fn set_name(story_id: &str, name: Option<&str>) -> bool {
|
||||
/// other fields to be known.
|
||||
///
|
||||
/// Returns `true` if the item was found and the write was performed.
|
||||
pub fn set_agent(story_id: &str, agent: Option<&str>) -> bool {
|
||||
pub fn set_agent(story_id: &str, agent: Option<crate::config::AgentName>) -> bool {
|
||||
let Some(state_mutex) = get_crdt() else {
|
||||
return false;
|
||||
};
|
||||
@@ -157,7 +157,7 @@ pub fn set_agent(story_id: &str, agent: Option<&str>) -> bool {
|
||||
let Some(&idx) = state.index.get(story_id) else {
|
||||
return false;
|
||||
};
|
||||
let value = agent.unwrap_or("").to_string();
|
||||
let value = agent.map(|a| a.as_str().to_string()).unwrap_or_default();
|
||||
apply_and_persist(&mut state, |s| {
|
||||
s.crdt.doc.items[idx].agent.set(value.clone())
|
||||
});
|
||||
|
||||
@@ -213,7 +213,7 @@ fn migrate_story_ids_to_numeric_preserves_stage_and_name() {
|
||||
let item = read_item("45").expect("item must be accessible by numeric ID");
|
||||
assert!(matches!(item.stage, crate::pipeline_state::Stage::Coding));
|
||||
assert_eq!(item.name, "Crash Bug");
|
||||
assert_eq!(item.agent.as_deref(), Some("coder-1"));
|
||||
assert_eq!(item.agent.map(|a| a.as_str()), Some("coder-1"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
@@ -356,12 +356,15 @@ fn set_agent_some_writes_name() {
|
||||
None,
|
||||
);
|
||||
|
||||
let found = set_agent("871_story_set_agent_write", Some("coder-1"));
|
||||
let found = set_agent(
|
||||
"871_story_set_agent_write",
|
||||
Some(crate::config::AgentName::Coder1),
|
||||
);
|
||||
assert!(found, "set_agent should return true for an existing item");
|
||||
|
||||
let item = read_item("871_story_set_agent_write").expect("item must exist");
|
||||
assert_eq!(
|
||||
item.agent.as_deref(),
|
||||
item.agent.map(|a| a.as_str()),
|
||||
Some("coder-1"),
|
||||
"agent should be written to CRDT register"
|
||||
);
|
||||
@@ -385,7 +388,7 @@ fn set_agent_none_clears_register() {
|
||||
|
||||
// Confirm agent is set.
|
||||
let before = read_item("871_story_set_agent_clear").expect("item must exist");
|
||||
assert_eq!(before.agent.as_deref(), Some("coder-2"));
|
||||
assert_eq!(before.agent.map(|a| a.as_str()), Some("coder-2"));
|
||||
|
||||
// Clear it.
|
||||
let found = set_agent("871_story_set_agent_clear", None);
|
||||
@@ -393,8 +396,8 @@ fn set_agent_none_clears_register() {
|
||||
|
||||
let after = read_item("871_story_set_agent_clear").expect("item must exist");
|
||||
assert!(
|
||||
after.agent.as_deref().unwrap_or("").is_empty(),
|
||||
"agent should be cleared (empty string) after set_agent(None)"
|
||||
after.agent.is_none(),
|
||||
"agent should be cleared after set_agent(None)"
|
||||
);
|
||||
}
|
||||
|
||||
@@ -402,7 +405,10 @@ fn set_agent_none_clears_register() {
|
||||
fn set_agent_returns_false_for_unknown_story() {
|
||||
init_for_test();
|
||||
|
||||
let found = set_agent("999_story_nonexistent", Some("coder-1"));
|
||||
let found = set_agent(
|
||||
"999_story_nonexistent",
|
||||
Some(crate::config::AgentName::Coder1),
|
||||
);
|
||||
assert!(
|
||||
!found,
|
||||
"set_agent should return false when story is not in the CRDT"
|
||||
|
||||
Reference in New Issue
Block a user