@@ -314,7 +314,8 @@ mod tests {
314314 use crate :: config:: HtmlConfig ;
315315 use crate :: theme:: Theme ;
316316 use crate :: utils:: fs:: write_file;
317- use std:: io:: Read ;
317+ use tempfile:: TempDir ;
318+
318319 #[ test]
319320 fn test_write_directive ( ) {
320321 let theme = Theme {
@@ -339,40 +340,30 @@ mod tests {
339340 fonts_css : None ,
340341 font_files : Vec :: new ( ) ,
341342 } ;
342- let reference_js = PathBuf :: from ( "target/static-files-test-case-reference.js" ) ;
343- let test_case = PathBuf :: from ( "target/ static-files-test-case") ;
343+ let temp_dir = TempDir :: with_prefix ( "mdbook-" ) . unwrap ( ) ;
344+ let reference_js = Path :: new ( " static-files-test-case-reference.js ") ;
344345 let mut html_config = HtmlConfig :: default ( ) ;
345- html_config. additional_js . push ( reference_js. clone ( ) ) ;
346+ html_config. additional_js . push ( reference_js. to_owned ( ) ) ;
346347 write_file (
347- & Path :: new ( "." ) ,
348- & reference_js,
348+ temp_dir . path ( ) ,
349+ reference_js,
349350 br#"{{ resource "book.js" }}"# ,
350351 )
351352 . unwrap ( ) ;
352- let mut static_files = StaticFiles :: new ( & theme, & html_config, & Path :: new ( "." ) ) . unwrap ( ) ;
353+ let mut static_files = StaticFiles :: new ( & theme, & html_config, temp_dir . path ( ) ) . unwrap ( ) ;
353354 static_files. hash_files ( ) . unwrap ( ) ;
354- static_files. write_files ( & test_case ) . unwrap ( ) ;
355+ static_files. write_files ( temp_dir . path ( ) ) . unwrap ( ) ;
355356 // custom JS winds up referencing book.js
356- let mut reference_js_dest = File :: open (
357- "target/static-files-test-case/target/static-files-test-case-reference-635c9cdc.js" ,
357+ let reference_js_content = std:: fs:: read_to_string (
358+ temp_dir
359+ . path ( )
360+ . join ( "static-files-test-case-reference-635c9cdc.js" ) ,
358361 )
359362 . unwrap ( ) ;
360- let mut reference_js_content = Vec :: new ( ) ;
361- reference_js_dest
362- . read_to_end ( & mut reference_js_content)
363- . unwrap ( ) ;
364- std:: mem:: drop ( reference_js_dest) ;
365- assert_eq ! ( br#"../book-e3b0c442.js"# , & reference_js_content[ ..] ) ;
363+ assert_eq ! ( "book-e3b0c442.js" , reference_js_content) ;
366364 // book.js winds up empty
367- let mut reference_js_dest =
368- File :: open ( "target/static-files-test-case/book-e3b0c442.js" ) . unwrap ( ) ;
369- let mut reference_js_content = Vec :: new ( ) ;
370- reference_js_dest
371- . read_to_end ( & mut reference_js_content)
372- . unwrap ( ) ;
373- std:: mem:: drop ( reference_js_dest) ;
374- assert_eq ! ( br#""# , & reference_js_content[ ..] ) ;
375- std:: fs:: remove_dir_all ( & test_case) . unwrap ( ) ;
376- std:: fs:: remove_file ( & reference_js) . unwrap ( ) ;
365+ let book_js_content =
366+ std:: fs:: read_to_string ( temp_dir. path ( ) . join ( "book-e3b0c442.js" ) ) . unwrap ( ) ;
367+ assert_eq ! ( "" , book_js_content) ;
377368 }
378369}
0 commit comments