MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / test_full_lifecycle

Function test_full_lifecycle

atomic-agent/src/turn/session.rs:1283–1329  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1281
1282 #[test]
1283 fn test_full_lifecycle() {
1284 let (_dir, store) = make_store();
1285
1286 // Create session
1287 let mut session = AgentSession::new("lifecycle-test", "claude-code", "Claude Code");
1288 session.set_model_info("anthropic", "claude-sonnet-4");
1289 store.save(&session).unwrap();
1290
1291 // Turn 1
1292 session.begin_turn();
1293 session.phase = Phase::Active;
1294 store.save(&session).unwrap();
1295
1296 let turn_num = session.end_turn();
1297 assert_eq!(turn_num, 1);
1298 session.phase = Phase::Idle;
1299 session.add_files_touched(&["src/main.rs".to_string()]);
1300 store.save(&session).unwrap();
1301
1302 // Turn 2
1303 session.begin_turn();
1304 session.phase = Phase::Active;
1305 let turn_num = session.end_turn();
1306 assert_eq!(turn_num, 2);
1307 session.phase = Phase::Idle;
1308 session.add_files_touched(&["src/lib.rs".to_string()]);
1309 store.save(&session).unwrap();
1310
1311 // End session
1312 session.phase = Phase::Ended;
1313 session.ended_at = Some(Utc::now());
1314 store.save(&session).unwrap();
1315
1316 // Verify final state
1317 let loaded = store.load("lifecycle-test").unwrap().unwrap();
1318 assert_eq!(loaded.turn_count, 2);
1319 assert_eq!(loaded.phase, Phase::Ended);
1320 assert_eq!(loaded.files_touched, vec!["src/main.rs", "src/lib.rs"]);
1321 assert!(loaded.ended_at.is_some());
1322 assert_eq!(loaded.agent_vendor, "anthropic");
1323 assert_eq!(loaded.model, "claude-sonnet-4");
1324
1325 // Verify it shows up in find_ended
1326 let ended = store.find_ended().unwrap();
1327 assert_eq!(ended.len(), 1);
1328 assert_eq!(ended[0].session_id, "lifecycle-test");
1329 }
1330}

Callers

nothing calls this directly

Calls 9

make_storeFunction · 0.85
set_model_infoMethod · 0.80
add_files_touchedMethod · 0.80
find_endedMethod · 0.80
unwrapMethod · 0.45
saveMethod · 0.45
begin_turnMethod · 0.45
end_turnMethod · 0.45
loadMethod · 0.45

Tested by

no test coverage detected