Skip to content

Commit 4a06f72

Browse files
committed
template test: check for determinism
1 parent eba9c5e commit 4a06f72

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/templates/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,6 @@ mas-i18n.workspace = true
4242
mas-iana.workspace = true
4343
mas-router.workspace = true
4444
mas-spa.workspace = true
45+
46+
[dev-dependencies]
47+
rand_chacha.workspace = true

crates/templates/src/lib.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -482,14 +482,15 @@ impl Templates {
482482

483483
#[cfg(test)]
484484
mod tests {
485+
use rand::SeedableRng;
486+
485487
use super::*;
486488

487489
#[tokio::test]
488490
async fn check_builtin_templates() {
489491
#[allow(clippy::disallowed_methods)]
490492
let now = chrono::Utc::now();
491-
#[allow(clippy::disallowed_methods)]
492-
let rng = rand::thread_rng();
493+
let rng = rand_chacha::ChaCha8Rng::from_seed([42; 32]);
493494

494495
let path = Utf8Path::new(env!("CARGO_MANIFEST_DIR")).join("../../templates/");
495496
let url_builder = UrlBuilder::new("https://example.com/".parse().unwrap(), None, None);
@@ -517,6 +518,11 @@ mod tests {
517518
)
518519
.await
519520
.unwrap();
520-
templates.check_render(now, &rng).unwrap();
521+
522+
// Check the renders are deterministic, when given the same rng
523+
let render1 = templates.check_render(now, &rng).unwrap();
524+
let render2 = templates.check_render(now, &rng).unwrap();
525+
526+
assert_eq!(render1, render2);
521527
}
522528
}

0 commit comments

Comments
 (0)