about summary refs log tree commit diff
path: root/pkgs/by-name/xu
diff options
context:
space:
mode:
authorRobert Hensing <robert@roberthensing.nl>2024-06-16 14:30:24 +0200
committerRobert Hensing <robert@roberthensing.nl>2024-06-16 14:30:49 +0200
commit5b8c64f198ff59b13c651ac80967f6052f6f987b (patch)
treeebf0659e51a6437a15f37f66f41612472d523dcf /pkgs/by-name/xu
parent23ab0c4be36143056181b791519eb7b94ff569c5 (diff)
xunit-viewer: Add basic tests
Diffstat (limited to 'pkgs/by-name/xu')
-rw-r--r--pkgs/by-name/xu/xunit-viewer/package.nix10
-rw-r--r--pkgs/by-name/xu/xunit-viewer/test/example.junit.xml8
-rw-r--r--pkgs/by-name/xu/xunit-viewer/test/example.nix16
3 files changed, 34 insertions, 0 deletions
diff --git a/pkgs/by-name/xu/xunit-viewer/package.nix b/pkgs/by-name/xu/xunit-viewer/package.nix
index 4978ababd1b5e..7c31b82aac7b3 100644
--- a/pkgs/by-name/xu/xunit-viewer/package.nix
+++ b/pkgs/by-name/xu/xunit-viewer/package.nix
@@ -3,6 +3,8 @@
   buildNpmPackage,
   fetchFromGitHub,
   nix-update-script,
+  callPackage,
+  testers, xunit-viewer,
 }:
 let
   version = "10.6.1";
@@ -22,6 +24,14 @@ buildNpmPackage {
 
   passthru.updateScript = nix-update-script { };
 
+  passthru.tests = {
+    version = testers.testVersion {
+      package = xunit-viewer;
+      version = "unknown"; # broken, but at least it runs
+    };
+    example = callPackage ./test/example.nix { };
+  };
+
   meta = {
     description = "View your xunit results using JavaScript";
     homepage = "https://lukejpreston.github.io/xunit-viewer";
diff --git a/pkgs/by-name/xu/xunit-viewer/test/example.junit.xml b/pkgs/by-name/xu/xunit-viewer/test/example.junit.xml
new file mode 100644
index 0000000000000..a87b270fe2f3f
--- /dev/null
+++ b/pkgs/by-name/xu/xunit-viewer/test/example.junit.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- taken from the nix test suite and then stripped down -->
+<testsuites tests="280" failures="0" disabled="2" errors="0" time="0.2" timestamp="2024-06-16T13:50:02.511" name="AllTests">
+  <testsuite name="parseShebangContent" tests="14" failures="0" disabled="0" skipped="0" errors="0" time="0.001" timestamp="2024-06-16T13:50:02.511">
+    <testcase name="basic" file="tests/unit/libutil/args.cc" line="10" status="run" result="completed" time="0." timestamp="2024-06-16T13:50:02.511" classname="parseShebangContent" />
+    <testcase name="empty" file="tests/unit/libutil/args.cc" line="18" status="run" result="completed" time="0." timestamp="2024-06-16T13:50:02.511" classname="parseShebangContent" />
+  </testsuite>
+</testsuites>
diff --git a/pkgs/by-name/xu/xunit-viewer/test/example.nix b/pkgs/by-name/xu/xunit-viewer/test/example.nix
new file mode 100644
index 0000000000000..574b9d784951e
--- /dev/null
+++ b/pkgs/by-name/xu/xunit-viewer/test/example.nix
@@ -0,0 +1,16 @@
+{ xunit-viewer, runCommand, ... }:
+
+runCommand "test-xunit-viewer" {
+  nativeBuildInputs = [ xunit-viewer ];
+} ''
+  mkdir $out
+  xunit-viewer -r ${./example.junit.xml} -o $out/index.html
+  ( set -x
+    grep '<body' $out/index.html
+    # Can't easily grep for parts of the original data, because it ends up
+    # embedded as base64 encoded data (and slightly modified?).
+    # We'd have to really dissect it or render it with a browser.
+    # Fortunately, we've already caught the most severe packaging problems
+    # with just this.
+  )
+''