From 1b4c8931f9ab37cda99158a0fd14e823005360f3 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 17 May 2021 19:32:10 +0100 Subject: [PATCH] apitest: Break out check_library_item Signed-off-by: Ian Jackson --- apitest/at-bundles.rs | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/apitest/at-bundles.rs b/apitest/at-bundles.rs index cc7123da..2990b4a1 100644 --- a/apitest/at-bundles.rs +++ b/apitest/at-bundles.rs @@ -7,6 +7,29 @@ use crate::*; type Ctx = UsualCtx; impl Ctx { + #[throws(Explode)] + fn check_library_item(&mut self, itemlib: &str, item: &str, + desc: &str) { + let ds = self.su().ds.also(&[ + ("itemlib", itemlib), + ("item", item ), + ]); + let command = ds.ss("library-add --lib @itemlib@ @table@ @item@")?; + let added = self.some_library_add(&command)?; + assert_eq!( added.len(), 1 ); + + let output: String = self.otter(&ds.ss("list-pieces @table@")?)?.into(); + assert!( Regex::new( + &format!( + r#"(?m)(?:[^\w-]|^){}[^\w-].*\W{}(?:\W|$)"#, + item, desc, + ) + )? + .find(&output) + .is_some(), + "got: {}", &output); + } + #[throws(Explode)] fn bundles(&mut self) { let bundle_file = self.su().ds.example_bundle(); @@ -19,17 +42,7 @@ impl Ctx { let st = Command::new("cmp").args(&[&bundle_file, "00000.zip"]).status()?; if ! st.success() { panic!("cmp failed {}", st) } - let command = ds.ss("library-add --lib lemon @table@ example-lemon")?; - let added = self.some_library_add(&command)?; - assert_eq!( added.len(), 1 ); - - let output: String = self.otter(&ds.ss("list-pieces @table@")?)?.into(); - assert!( Regex::new( - r#"(?m)(?:[^\w-]|^)example-lemon[^\w-].*\Wa lemon(?:\W|$)"# - )? - .find(&output) - .is_some(), - "got: {}", &output); + self.check_library_item("lemon","example-lemon","a lemon")?; self.otter(&ds.ss("clear-game @table@")?)?; self.otter(&ds.ss("reset @table@ demo")?)?; -- 2.30.2