Skip to content

Commit a0a8fd9

Browse files
committed
og_image: Extract generate_image() test helper fn
1 parent af43eeb commit a0a8fd9

File tree

1 file changed

+27
-52
lines changed
  • crates/crates_io_og_image/src

1 file changed

+27
-52
lines changed

crates/crates_io_og_image/src/lib.rs

Lines changed: 27 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,21 @@ mod tests {
411411
.is_err()
412412
}
413413

414+
async fn generate_image(data: OgImageData<'_>) -> Option<Vec<u8>> {
415+
if skip_if_typst_unavailable() {
416+
return None;
417+
}
418+
419+
let generator = OgImageGenerator::default();
420+
421+
let temp_file = generator
422+
.generate(data)
423+
.await
424+
.expect("Failed to generate image");
425+
426+
Some(std::fs::read(temp_file.path()).expect("Failed to read generated image"))
427+
}
428+
414429
#[test]
415430
fn test_generate_template_snapshot() {
416431
let generator = OgImageGenerator::default();
@@ -452,77 +467,37 @@ mod tests {
452467

453468
#[tokio::test]
454469
async fn test_generate_og_image_snapshot() {
455-
if skip_if_typst_unavailable() {
456-
return;
457-
}
458-
459-
let generator = OgImageGenerator::default();
460470
let data = create_simple_test_data();
461471

462-
let temp_file = generator
463-
.generate(data)
464-
.await
465-
.expect("Failed to generate image");
466-
let image_data = std::fs::read(temp_file.path()).expect("Failed to read generated image");
467-
468-
// Use insta to create a binary snapshot of the generated PNG
469-
insta::assert_binary_snapshot!("generated_og_image.png", image_data);
472+
if let Some(image_data) = generate_image(data).await {
473+
insta::assert_binary_snapshot!("generated_og_image.png", image_data);
474+
}
470475
}
471476

472477
#[tokio::test]
473478
async fn test_generate_og_image_overflow_snapshot() {
474-
if skip_if_typst_unavailable() {
475-
return;
476-
}
477-
478-
let generator = OgImageGenerator::default();
479479
let data = create_overflow_test_data();
480480

481-
let temp_file = generator
482-
.generate(data)
483-
.await
484-
.expect("Failed to generate image");
485-
let image_data = std::fs::read(temp_file.path()).expect("Failed to read generated image");
486-
487-
// Use insta to create a binary snapshot of the generated PNG
488-
insta::assert_binary_snapshot!("generated_og_image_overflow.png", image_data);
481+
if let Some(image_data) = generate_image(data).await {
482+
insta::assert_binary_snapshot!("generated_og_image_overflow.png", image_data);
483+
}
489484
}
490485

491486
#[tokio::test]
492487
async fn test_generate_og_image_minimal_snapshot() {
493-
if skip_if_typst_unavailable() {
494-
return;
495-
}
496-
497-
let generator = OgImageGenerator::default();
498488
let data = create_minimal_test_data();
499489

500-
let temp_file = generator
501-
.generate(data)
502-
.await
503-
.expect("Failed to generate image");
504-
let image_data = std::fs::read(temp_file.path()).expect("Failed to read generated image");
505-
506-
// Use insta to create a binary snapshot of the generated PNG
507-
insta::assert_binary_snapshot!("generated_og_image_minimal.png", image_data);
490+
if let Some(image_data) = generate_image(data).await {
491+
insta::assert_binary_snapshot!("generated_og_image_minimal.png", image_data);
492+
}
508493
}
509494

510495
#[tokio::test]
511496
async fn test_generate_og_image_escaping_snapshot() {
512-
if skip_if_typst_unavailable() {
513-
return;
514-
}
515-
516-
let generator = OgImageGenerator::default();
517497
let data = create_escaping_test_data();
518498

519-
let temp_file = generator
520-
.generate(data)
521-
.await
522-
.expect("Failed to generate image");
523-
let image_data = std::fs::read(temp_file.path()).expect("Failed to read generated image");
524-
525-
// Use insta to create a binary snapshot of the generated PNG
526-
insta::assert_binary_snapshot!("generated_og_image_escaping.png", image_data);
499+
if let Some(image_data) = generate_image(data).await {
500+
insta::assert_binary_snapshot!("generated_og_image_escaping.png", image_data);
501+
}
527502
}
528503
}

0 commit comments

Comments
 (0)