auto-generate cache if it does not exist
All checks were successful
CI/CD Pipeline / test (push) Successful in 1m55s

This commit is contained in:
philipp 2024-02-15 12:28:39 +01:00
parent a9316ee398
commit a32b3a66c7

View File

@ -115,28 +115,32 @@ fn fetch_page(overview_id: usize, page: usize) -> Result<String, Error> {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use crate::overview::parse; use crate::{config::Config, overview::parse};
use pretty_assertions::assert_eq; use pretty_assertions::assert_eq;
use std::fs; use std::fs;
#[test] #[test]
fn overview() { fn overview() {
let paths = fs::read_dir("./data/expected/overview/") let configs = fs::read_dir("./data/configs").expect("No folder with config files");
.expect("No folder with expected overview files");
for path in paths { for config in configs {
let path = path.unwrap(); let path = format!("{}", config.unwrap().path().display());
let file_path = format!("{}", path.path().display());
let law_id = path.file_name().into_string().unwrap().to_string();
let law_id: usize = law_id
.parse()
.expect("Filename needs to be usize (= law_id in RIS)");
let expected = fs::read_to_string(file_path).expect("Could not read file {file_path}."); let (law_id, _, _) = Config::load(&path).unwrap();
let expected = expected.trim().split('\n').collect::<Vec<&str>>();
let actual = parse(law_id).unwrap(); let actual = parse(law_id).unwrap();
let expected_path = format!("./data/expected/overview/{law_id}");
match fs::read_to_string(&expected_path) {
Ok(expected) => {
let expected = expected.trim().split('\n').collect::<Vec<&str>>();
assert_eq!(actual, expected); assert_eq!(actual, expected);
} }
Err(_) => {
let to_write = actual.join("\n");
fs::write(expected_path, to_write).expect("Unable to write file");
}
}
}
} }
} }