Unverified Commit 987c653d authored by K900's avatar K900 Committed by GitHub
Browse files

Revert "go-mockery: 2.53.3 -> 3.2.5" (#417769)

parents 23f897b7 031d372a
Loading
Loading
Loading
Loading
+53 −12
Original line number Diff line number Diff line
@@ -2,39 +2,80 @@
  lib,
  buildGoModule, # sync with go below, update to latest release
  fetchFromGitHub,
  versionCheckHook,

  # passthru test
  go-mockery,
  runCommand,
  go,
}:

buildGoModule rec {
  pname = "go-mockery";
  version = "3.2.5";
  version = "2.53.3";

  src = fetchFromGitHub {
    owner = "vektra";
    repo = "mockery";
    tag = "v${version}";
    hash = "sha256-QtfiW9yZvqCjKb3wH+QqfD98d7FLDVBQxj2Y/GC6Yhk=";
    rev = "v${version}";
    sha256 = "sha256-X0cHpv4o6pzgjg7+ULCuFkspeff95WFtJbVHqy4LxAg=";
  };

  ldflags = [
    "-s"
    "-w"
    "-X github.com/vektra/mockery/v${lib.versions.major version}/internal/logging.SemVer=v${version}"
    "-X"
    "github.com/vektra/mockery/v${lib.versions.major version}/pkg/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";
  vendorHash = "sha256-AQY4x2bLqMwHIjoKHzEm1hebR29gRs3LJN8i00Uup5o=";

  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";