Use insta for testing.
This commit is contained in:
@@ -101,7 +101,7 @@ impl Probe for Hitta {
|
||||
format!("https://www.hitta.se/vem-ringde/{}", number)
|
||||
}
|
||||
|
||||
fn search(&mut self, ctx: &mut Context, number: &str) -> Result<(), ()> {
|
||||
fn search(&mut self, ctx: &mut Context, number: &str) -> Result<Entry, ()> {
|
||||
let body = if let Some(cache) = ctx.cache_get("hitta", &number) {
|
||||
String::from_utf8(cache.data).unwrap()
|
||||
} else {
|
||||
@@ -113,22 +113,13 @@ impl Probe for Hitta {
|
||||
body
|
||||
};
|
||||
|
||||
match from_html(&body) {
|
||||
Ok(entry) => {
|
||||
println!("hitta.se:");
|
||||
print!("{}", entry);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
Err(_) => Err(()),
|
||||
}
|
||||
from_html(&body)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use chrono::DateTime;
|
||||
use pretty_assertions::assert_eq;
|
||||
use insta::assert_yaml_snapshot_matches;
|
||||
|
||||
use super::*;
|
||||
|
||||
@@ -136,236 +127,159 @@ mod tests {
|
||||
fn test_0104754350() {
|
||||
let document = include_str!("../../fixtures/hitta/0104754350.html");
|
||||
|
||||
let expected = Entry {
|
||||
messages: vec![],
|
||||
history: vec!["42 andra har rapporterat detta nummer".to_string()],
|
||||
comments: vec![
|
||||
probe::Comment {
|
||||
datetime: "2019-01-17T17:29:22Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Varmsälj från Folksam".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-12-14T13:45:28Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Folksam".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-11-28T07:30:18Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Höglandschskt".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-11-20T19:18:09Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Försäljare ".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-11-19T17:38:34Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "mögg från Folksam".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-11-12T16:00:41Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Folksam försäkringsförsäljare".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-10-25T10:28:36Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "folksam".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-10-10T07:30:40Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Telefonförsäljare".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-10-04T10:04:55Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Folksam säljare".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-10-03T13:55:19Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Sa inget.".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-08-24T16:56:46Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Folksam".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-08-24T09:42:43Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Achmati azmut från folksam".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-08-21T18:29:29Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Folksam".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-08-16T18:56:56Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Säljare från Folksam.".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-08-16T14:48:59Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Folksam ".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-08-09T16:30:28Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Folksam".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-08-02T16:29:32Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Folksam ".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-08-02T15:33:38Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Folksam ".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-07-25T08:28:27Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Säljare Folksam".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-07-17T21:20:51Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Inga Hansson ".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-07-16T18:11:46Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Folksam".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-07-06T15:45:46Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Folksam ".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-07-05T17:24:07Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "folksam".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-07-05T11:15:02Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Vesran".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-07-04T13:30:49Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Folksam".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-06-29T10:52:51Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "folksam".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-06-28T13:33:01Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Säljare folksam".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-06-28T07:42:42Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Folksam försäkringar".to_string(),
|
||||
},
|
||||
probe::Comment {
|
||||
datetime: "2018-06-26T12:59:33Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
title: None,
|
||||
message: "Säljare Folksam".to_string(),
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
assert_eq!(from_html(&document), Ok(expected));
|
||||
assert_yaml_snapshot_matches!(from_html(&document), @r###"Ok:
|
||||
messages: []
|
||||
history:
|
||||
- 42 andra har rapporterat detta nummer
|
||||
comments:
|
||||
- datetime: "2019-01-17T17:29:22Z"
|
||||
title: ~
|
||||
message: Varmsälj från Folksam
|
||||
- datetime: "2018-12-14T13:45:28Z"
|
||||
title: ~
|
||||
message: Folksam
|
||||
- datetime: "2018-11-28T07:30:18Z"
|
||||
title: ~
|
||||
message: Höglandschskt
|
||||
- datetime: "2018-11-20T19:18:09Z"
|
||||
title: ~
|
||||
message: "Försäljare "
|
||||
- datetime: "2018-11-19T17:38:34Z"
|
||||
title: ~
|
||||
message: mögg från Folksam
|
||||
- datetime: "2018-11-12T16:00:41Z"
|
||||
title: ~
|
||||
message: Folksam försäkringsförsäljare
|
||||
- datetime: "2018-10-25T10:28:36Z"
|
||||
title: ~
|
||||
message: folksam
|
||||
- datetime: "2018-10-10T07:30:40Z"
|
||||
title: ~
|
||||
message: Telefonförsäljare
|
||||
- datetime: "2018-10-04T10:04:55Z"
|
||||
title: ~
|
||||
message: Folksam säljare
|
||||
- datetime: "2018-10-03T13:55:19Z"
|
||||
title: ~
|
||||
message: Sa inget.
|
||||
- datetime: "2018-08-24T16:56:46Z"
|
||||
title: ~
|
||||
message: Folksam
|
||||
- datetime: "2018-08-24T09:42:43Z"
|
||||
title: ~
|
||||
message: Achmati azmut från folksam
|
||||
- datetime: "2018-08-21T18:29:29Z"
|
||||
title: ~
|
||||
message: Folksam
|
||||
- datetime: "2018-08-16T18:56:56Z"
|
||||
title: ~
|
||||
message: Säljare från Folksam.
|
||||
- datetime: "2018-08-16T14:48:59Z"
|
||||
title: ~
|
||||
message: "Folksam "
|
||||
- datetime: "2018-08-09T16:30:28Z"
|
||||
title: ~
|
||||
message: Folksam
|
||||
- datetime: "2018-08-02T16:29:32Z"
|
||||
title: ~
|
||||
message: "Folksam "
|
||||
- datetime: "2018-08-02T15:33:38Z"
|
||||
title: ~
|
||||
message: "Folksam "
|
||||
- datetime: "2018-07-25T08:28:27Z"
|
||||
title: ~
|
||||
message: Säljare Folksam
|
||||
- datetime: "2018-07-17T21:20:51Z"
|
||||
title: ~
|
||||
message: "Inga Hansson "
|
||||
- datetime: "2018-07-16T18:11:46Z"
|
||||
title: ~
|
||||
message: Folksam
|
||||
- datetime: "2018-07-06T15:45:46Z"
|
||||
title: ~
|
||||
message: "Folksam "
|
||||
- datetime: "2018-07-05T17:24:07Z"
|
||||
title: ~
|
||||
message: folksam
|
||||
- datetime: "2018-07-05T11:15:02Z"
|
||||
title: ~
|
||||
message: Vesran
|
||||
- datetime: "2018-07-04T13:30:49Z"
|
||||
title: ~
|
||||
message: Folksam
|
||||
- datetime: "2018-06-29T10:52:51Z"
|
||||
title: ~
|
||||
message: folksam
|
||||
- datetime: "2018-06-28T13:33:01Z"
|
||||
title: ~
|
||||
message: Säljare folksam
|
||||
- datetime: "2018-06-28T07:42:42Z"
|
||||
title: ~
|
||||
message: Folksam försäkringar
|
||||
- datetime: "2018-06-26T12:59:33Z"
|
||||
title: ~
|
||||
message: Säljare Folksam"###);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_0313908905() {
|
||||
let document = include_str!("../../fixtures/hitta/0313908905.html");
|
||||
|
||||
let expected = Entry {
|
||||
messages: vec![],
|
||||
history: vec![],
|
||||
comments: vec![],
|
||||
};
|
||||
|
||||
assert_eq!(from_html(&document), Ok(expected));
|
||||
assert_yaml_snapshot_matches!(from_html(&document), @r###"Ok:
|
||||
messages: []
|
||||
history: []
|
||||
comments: []"###);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_0702269893() {
|
||||
let document = include_str!("../../fixtures/hitta/0702269893.html");
|
||||
|
||||
let expected = Entry {
|
||||
messages: vec![],
|
||||
history: vec!["Tre andra har också sökt på detta nummer".to_string()],
|
||||
comments: vec![],
|
||||
};
|
||||
|
||||
assert_eq!(from_html(&document), Ok(expected));
|
||||
assert_yaml_snapshot_matches!(from_html(&document), @r###"Ok:
|
||||
messages: []
|
||||
history:
|
||||
- Tre andra har också sökt på detta nummer
|
||||
comments: []"###);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_0726443387() {
|
||||
let document = include_str!("../../fixtures/hitta/0726443387.html");
|
||||
|
||||
let expected = Entry {
|
||||
messages: vec![],
|
||||
history: vec!["1299 andra har också sökt på detta nummer".to_string()],
|
||||
comments: vec![],
|
||||
};
|
||||
|
||||
assert_eq!(from_html(&document), Ok(expected));
|
||||
assert_yaml_snapshot_matches!(from_html(&document), @r###"Ok:
|
||||
messages: []
|
||||
history:
|
||||
- 1299 andra har också sökt på detta nummer
|
||||
comments: []"###);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_0751793426() {
|
||||
let document = include_str!("../../fixtures/hitta/0751793426.html");
|
||||
|
||||
let expected = Entry {
|
||||
messages: vec![],
|
||||
history: vec![],
|
||||
comments: vec![],
|
||||
};
|
||||
|
||||
assert_eq!(from_html(&document), Ok(expected));
|
||||
assert_yaml_snapshot_matches!(from_html(&document), @r###"Ok:
|
||||
messages: []
|
||||
history: []
|
||||
comments: []"###);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_0751793483() {
|
||||
let document = include_str!("../../fixtures/hitta/0751793483.html");
|
||||
|
||||
let expected = Entry {
|
||||
messages: vec![],
|
||||
history: vec![],
|
||||
comments: vec![],
|
||||
};
|
||||
|
||||
assert_eq!(from_html(&document), Ok(expected));
|
||||
assert_yaml_snapshot_matches!(from_html(&document), @r###"Ok:
|
||||
messages: []
|
||||
history: []
|
||||
comments: []"###);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_0751793499() {
|
||||
let document = include_str!("../../fixtures/hitta/0751793499.html");
|
||||
|
||||
let expected = Entry {
|
||||
messages: vec![],
|
||||
history: vec![],
|
||||
comments: vec![],
|
||||
};
|
||||
|
||||
assert_eq!(from_html(&document), Ok(expected));
|
||||
assert_yaml_snapshot_matches!(from_html(&document), @r###"Ok:
|
||||
messages: []
|
||||
history: []
|
||||
comments: []"###);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user