chiark / gitweb /
apitest: Break out check_library_item
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 17 May 2021 18:32:10 +0000 (19:32 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 17 May 2021 23:21:09 +0000 (00:21 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
apitest/at-bundles.rs

index cc7123da205490bd22df14ba42f2e1d719b3601d..2990b4a179fb1da2625fd95ae60881592fad2db2 100644 (file)
@@ -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")?)?;