about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/node-packages/package-tests/postcss-cli.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/node-packages/package-tests/postcss-cli.nix')
-rw-r--r--nixpkgs/pkgs/development/node-packages/package-tests/postcss-cli.nix45
1 files changed, 45 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/node-packages/package-tests/postcss-cli.nix b/nixpkgs/pkgs/development/node-packages/package-tests/postcss-cli.nix
new file mode 100644
index 000000000000..521509e7f43b
--- /dev/null
+++ b/nixpkgs/pkgs/development/node-packages/package-tests/postcss-cli.nix
@@ -0,0 +1,45 @@
+{ runCommand, postcss-cli }:
+
+let
+  inherit (postcss-cli) packageName version;
+in
+
+runCommand "${packageName}-tests" { meta.timeout = 60; }
+  ''
+    # get version of installed program and compare with package version
+    claimed_version="$(${postcss-cli}/bin/postcss --version)"
+    if [[ "$claimed_version" != "${version}" ]]; then
+      echo "Error: program version does not match package version ($claimed_version != ${version})"
+      exit 1
+    fi
+
+    # run basic help command
+    ${postcss-cli}/bin/postcss --help > /dev/null
+
+    # basic autoprefixer test
+    config_dir="$(mktemp -d)"
+    clean_up() {
+      rm -rf "$config_dir"
+    }
+    trap clean_up EXIT
+    echo "
+      module.exports = {
+        plugins: {
+          'autoprefixer': { overrideBrowserslist: 'chrome 40' },
+        },
+      }
+    " > "$config_dir/postcss.config.js"
+    input='a{ user-select: none; }'
+    expected_output='a{ -webkit-user-select: none; user-select: none; }'
+    actual_output="$(echo $input | ${postcss-cli}/bin/postcss --no-map --config $config_dir)"
+    if [[ "$actual_output" != "$expected_output" ]]; then
+      echo "Error: autoprefixer did not output the correct CSS:"
+      echo "$actual_output"
+      echo "!="
+      echo "$expected_output"
+      exit 1
+    fi
+
+    # needed for Nix to register the command as successful
+    touch $out
+  ''