go-mockery: replace tests by versionCheckHook
This commit is contained in:
@@ -2,11 +2,7 @@
|
||||
lib,
|
||||
buildGoModule, # sync with go below, update to latest release
|
||||
fetchFromGitHub,
|
||||
|
||||
# passthru test
|
||||
go-mockery,
|
||||
runCommand,
|
||||
go,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
@@ -23,59 +19,22 @@ buildGoModule rec {
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X"
|
||||
"github.com/vektra/mockery/v${lib.versions.major version}/pkg/logging.SemVer=v${version}"
|
||||
"-X github.com/vektra/mockery/v${lib.versions.major version}/internal/logging.SemVer=v${version}"
|
||||
];
|
||||
|
||||
env.CGO_ENABLED = false;
|
||||
|
||||
proxyVendor = true;
|
||||
vendorHash = "sha256-ac9wqHmkmpb1tIkQQ7x8+X+wQ217vsNm4IIidzNlne0=";
|
||||
doInstallCheck = true;
|
||||
nativeInstallCheckInputs = [
|
||||
versionCheckHook
|
||||
];
|
||||
versionCheckProgram = "${placeholder "out"}/bin/mockery";
|
||||
versionCheckProgramArg = "version";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
preCheck = ''
|
||||
# check all paths
|
||||
unset subPackages
|
||||
|
||||
substituteInPlace ./pkg/generator_test.go --replace-fail 0.0.0-dev ${version}
|
||||
substituteInPlace ./pkg/logging/logging_test.go --replace-fail v0.0 v${lib.versions.majorMinor version}
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
generateMock =
|
||||
runCommand "${pname}-test"
|
||||
{
|
||||
nativeBuildInputs = [ go-mockery ];
|
||||
buildInputs = [ go ];
|
||||
}
|
||||
''
|
||||
if [[ $(${meta.mainProgram} --version) != *"${version}"* ]]; then
|
||||
echo "Error: program version does not match package version"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
export HOME=$TMPDIR
|
||||
|
||||
cat <<EOF > foo.go
|
||||
package main
|
||||
|
||||
type Foo interface {
|
||||
Bark() string
|
||||
}
|
||||
EOF
|
||||
|
||||
${meta.mainProgram} --name Foo --dir .
|
||||
|
||||
if [[ ! -f "mocks/Foo.go" ]]; then
|
||||
echo "Error: mocks/Foo.go was not generated by ${pname}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
touch $out
|
||||
'';
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/vektra/mockery";
|
||||
description = "Mock code autogenerator for Golang";
|
||||
|
||||
Reference in New Issue
Block a user