diff --git a/crates/rari-tools/src/remove.rs b/crates/rari-tools/src/remove.rs index 3d2c958..d37bf39 100644 --- a/crates/rari-tools/src/remove.rs +++ b/crates/rari-tools/src/remove.rs @@ -397,6 +397,8 @@ mod test { fn test_remove_single() { let slugs = vec!["Web/API/ExampleOne".to_string()]; let _docs = DocFixtures::new(&slugs, Locale::EnUs); + // The redirects file is needed to attempt removing the redirects + let _redirects = RedirectFixtures::new(&[], Locale::EnUs); let _wikihistory = WikihistoryFixtures::new(&slugs, Locale::EnUs); let _sidebars = SidebarFixtures::default(); @@ -413,7 +415,32 @@ mod test { } #[test] - fn test_remove_single_with_redirect() { + fn test_remove_single_and_redirect() { + let slugs = vec!["Web/API/ExampleOne".to_string()]; + let redirects = vec![("Web/API/OldExampleOne".to_string(), "Web/API/ExampleOne".to_string())]; + let _docs = DocFixtures::new(&slugs, Locale::EnUs); + let _redirects = RedirectFixtures::new(&redirects, Locale::EnUs); + let _wikihistory = WikihistoryFixtures::new(&slugs, Locale::EnUs); + let _sidebars = SidebarFixtures::default(); + + let result = do_remove("Web/API/ExampleOne", Locale::EnUs, false, None, false); + assert!(result.is_ok()); + + let should_exist = vec![]; + let should_not_exist = vec!["en-us/web/api/exampleone/index.md"]; + let root_path = root_for_locale(Locale::EnUs).unwrap(); + check_file_existence(root_path, &should_exist, &should_not_exist); + + let redirects = get_redirects_map(Locale::EnUs); + assert!(!redirects.contains_key("Web/API/OldExampleOne")); + assert!(!redirects.contains_key("Web/API/exampleone")); + + let wiki_history = test_get_wiki_history(Locale::EnUs); + assert!(!wiki_history.contains_key("Web/API/ExampleOne")); + } + + #[test] + fn test_remove_single_with_redirect_target() { let slugs = vec![ "Web/API/ExampleOne".to_string(), "Web/API/RedirectTarget".to_string(),