Merge pull request #130204 from Luflosi/postcss-cli-add-tests

nodePackages.postcss-cli: add passthru.tests
This commit is contained in:
Robert Hensing 2021-07-18 19:07:26 +02:00 committed by GitHub
commit 03a17d756a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 50 additions and 0 deletions

View file

@ -276,6 +276,11 @@ let
--prefix NODE_PATH : ${self.postcss}/lib/node_modules \
--prefix NODE_PATH : ${self.autoprefixer}/lib/node_modules
'';
passthru.tests = {
simple-execution = pkgs.callPackage ./package-tests/postcss-cli.nix {
inherit (self) postcss-cli;
};
};
meta.mainProgram = "postcss";
};

View file

@ -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
''