@@ -314,7 +314,8 @@ mod tests {
314
314
use crate :: config:: HtmlConfig ;
315
315
use crate :: theme:: Theme ;
316
316
use crate :: utils:: fs:: write_file;
317
- use std:: io:: Read ;
317
+ use tempfile:: TempDir ;
318
+
318
319
#[ test]
319
320
fn test_write_directive ( ) {
320
321
let theme = Theme {
@@ -339,40 +340,30 @@ mod tests {
339
340
fonts_css : None ,
340
341
font_files : Vec :: new ( ) ,
341
342
} ;
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 ") ;
344
345
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 ( ) ) ;
346
347
write_file (
347
- & Path :: new ( "." ) ,
348
- & reference_js,
348
+ temp_dir . path ( ) ,
349
+ reference_js,
349
350
br#"{{ resource "book.js" }}"# ,
350
351
)
351
352
. 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 ( ) ;
353
354
static_files. hash_files ( ) . unwrap ( ) ;
354
- static_files. write_files ( & test_case ) . unwrap ( ) ;
355
+ static_files. write_files ( temp_dir . path ( ) ) . unwrap ( ) ;
355
356
// 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" ) ,
358
361
)
359
362
. 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) ;
366
364
// 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) ;
377
368
}
378
369
}
0 commit comments