From 55b7c3acb0b86612d02871a70c2c7354959444e1 Mon Sep 17 00:00:00 2001 From: ellnix Date: Sat, 22 Feb 2025 18:00:50 +0100 Subject: [PATCH] Make tera_templates_are_in_sync print a diff --- rust-tooling/Cargo.lock | 9 ++++++++- rust-tooling/generate/Cargo.toml | 1 + .../generate/tests/tera_templates_are_in_sync.rs | 2 ++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/rust-tooling/Cargo.lock b/rust-tooling/Cargo.lock index 2e98226bc..7c836676e 100644 --- a/rust-tooling/Cargo.lock +++ b/rust-tooling/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "aho-corasick" @@ -322,6 +322,12 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ae2a35373c5c74340b79ae6780b498b2b183915ec5dacf263aac5a099bf485a" +[[package]] +name = "difference" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" + [[package]] name = "digest" version = "0.10.7" @@ -367,6 +373,7 @@ dependencies = [ "anyhow", "clap", "convert_case", + "difference", "glob", "inquire", "models", diff --git a/rust-tooling/generate/Cargo.toml b/rust-tooling/generate/Cargo.toml index 2525ee049..c3a6831af 100644 --- a/rust-tooling/generate/Cargo.toml +++ b/rust-tooling/generate/Cargo.toml @@ -15,6 +15,7 @@ panic = "warn" anyhow = "1.0.81" clap = { version = "4.4.8", features = ["derive"] } convert_case = "0.6.0" +difference = "2.0.0" glob = "0.3.1" inquire = "0.6.2" models = { version = "0.1.0", path = "../models" } diff --git a/rust-tooling/generate/tests/tera_templates_are_in_sync.rs b/rust-tooling/generate/tests/tera_templates_are_in_sync.rs index 3485a81ed..7272dc9cc 100644 --- a/rust-tooling/generate/tests/tera_templates_are_in_sync.rs +++ b/rust-tooling/generate/tests/tera_templates_are_in_sync.rs @@ -21,6 +21,8 @@ fn tera_templates_are_in_sync() { let on_disk = std::fs::read_to_string(test_path).unwrap(); if generated.tests != on_disk { + let diff = difference::Changeset::new(&on_disk, &generated.tests, ""); + println!("{diff}"); panic!( " The Tera template for exercise '{slug}' is not in sync.