about summary refs log tree commit diff
path: root/pkgs/development/tools/go-mockery/default.nix
diff options
context:
space:
mode:
authorSandro <sandro.jaeckel@gmail.com>2023-03-09 16:14:47 +0100
committerGitHub <noreply@github.com>2023-03-09 16:14:47 +0100
commit324ef866e213f9f697668bec431a784a48d9e66a (patch)
treee13a183fe19ae2d81de35ad5946e0b7a67106db2 /pkgs/development/tools/go-mockery/default.nix
parent6b4b347db9013b8c52626098b43653aabb4e23da (diff)
parent9670b19ce8f7c23c975a34206bb40e2ace152d09 (diff)
Merge pull request #217547 from cideM/go-migrate-tests
go-mockery: add package test
Diffstat (limited to 'pkgs/development/tools/go-mockery/default.nix')
-rw-r--r--pkgs/development/tools/go-mockery/default.nix33
1 files changed, 32 insertions, 1 deletions
diff --git a/pkgs/development/tools/go-mockery/default.nix b/pkgs/development/tools/go-mockery/default.nix
index a80249026960c..118c8f52f740d 100644
--- a/pkgs/development/tools/go-mockery/default.nix
+++ b/pkgs/development/tools/go-mockery/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, go-mockery, runCommand, go }:
 
 buildGoModule rec {
   pname = "go-mockery";
@@ -24,6 +24,37 @@ buildGoModule rec {
 
   vendorHash = "sha256-3lx3wHnPQ/slRXnlVAnI1ZqSykDXNivjwg1WUITGj64=";
 
+  passthru.tests = {
+    generateMock = runCommand "${pname}-test" {
+      nativeBuildInputs = [ go-mockery ];
+      buildInputs = [ go ];
+    } ''
+      if [[ $(mockery --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
+
+      mockery --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 = with lib; {
     homepage = "https://github.com/vektra/mockery";
     description = "A mock code autogenerator for Golang";