tj_core/classifier/
mock.rs1use super::*;
4
5pub struct MockClassifier {
6 pub canned: ClassifyOutput,
7}
8
9impl Classifier for MockClassifier {
10 fn classify(&self, _input: &ClassifyInput) -> anyhow::Result<ClassifyOutput> {
11 Ok(self.canned.clone())
12 }
13}
14
15#[cfg(test)]
16mod tests {
17 use super::*;
18 use crate::event::EventType;
19
20 #[test]
21 fn mock_returns_canned_output() {
22 let m = MockClassifier {
23 canned: ClassifyOutput {
24 event_type: EventType::Decision,
25 task_id_guess: Some("tj-x".into()),
26 confidence: 0.95,
27 evidence_strength: None,
28 suggested_text: "...".into(),
29 artifacts: None,
30 },
31 };
32 let out = m
33 .classify(&ClassifyInput {
34 text: "ignored".into(),
35 author_hint: "user".into(),
36 recent_tasks: vec![],
37 })
38 .unwrap();
39 assert_eq!(out.event_type, EventType::Decision);
40 assert_eq!(out.confidence, 0.95);
41 }
42}