« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/test/lib
diff options
context:
space:
mode:
Diffstat (limited to 'test/lib')
-rw-r--r--test/lib/content-function.js22
1 files changed, 19 insertions, 3 deletions
diff --git a/test/lib/content-function.js b/test/lib/content-function.js
index a6ff64af..b6177e46 100644
--- a/test/lib/content-function.js
+++ b/test/lib/content-function.js
@@ -65,13 +65,29 @@ export function testContentFunctions(t, message, fn) {
         quickLoadContentDependencies(opts));
     };
 
-    evaluate.snapshot = (opts, fn) => {
+    evaluate.snapshot = (...args) => {
       if (!loadedContentDependencies) {
         throw new Error(`Await .load() before performing tests`);
       }
 
-      const result = (fn ? fn(evaluate(opts)) : evaluate(opts));
-      t.matchSnapshot(result.toString(), 'output');
+      const [description, opts, fn] =
+        (typeof args[0] === 'string'
+          ? args
+          : ['output', ...args]);
+
+      let result = evaluate(opts);
+
+      if (fn) {
+        result = fn(result);
+      }
+
+      if (opts.multiple) {
+        result = result.map(item => item.toString()).join('\n');
+      } else {
+        result = result.toString();
+      }
+
+      t.matchSnapshot(result, description);
     };
 
     evaluate.mock = (...opts) => {