Skip to content

Commit

Permalink
Merge pull request #640 from LandonTClipp/issue_632
Browse files Browse the repository at this point in the history
Fixing mockery infinitely generating its own interfaces
  • Loading branch information
LandonTClipp authored Jun 14, 2023
2 parents d667a59 + 7d5b1fc commit e85f2c0
Show file tree
Hide file tree
Showing 56 changed files with 642 additions and 2,558 deletions.
12 changes: 12 additions & 0 deletions .mockery.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,22 @@ packages:
- mockname: RequesterVariadicOneArgument
unroll-variadic: False
- mockname: RequesterVariadic
unroll-variadic: True
Expecter:
config:
with-expecter: True
configs:
- mockname: ExpecterAndRolledVariadic
unroll-variadic: False
- mockname: Expecter
unroll-variadic: True
RequesterReturnElided:
github.com/vektra/mockery/v2/pkg/fixtures/recursive_generation:
config:
recursive: True
all: True
dir: "{{.InterfaceDir}}"
filename: "{{.InterfaceName}}_mock.go"
mockname: "Mock{{.InterfaceName}}"
outpkg: "{{.PackageName}}"
inpackage: True
21 changes: 20 additions & 1 deletion Taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,15 @@ tasks:
- "**/*.go"
cmds:
- go fmt ./...

rm_mocks:
cmds:
- find . -name '*_mock.go' | xargs rm
- rm -rf mocks/

mocks:
desc: generate mockery mocks
deps: [rm_mocks]
cmds:
- go run .

Expand All @@ -51,8 +57,21 @@ tasks:
cmds:
- go run github.com/golangci/golangci-lint/cmd/golangci-lint run

test.e2e:
desc: run end-to-end tests
sources:
- "**/*.go"
- "./.mockery.yaml"
cmds:
- ./e2e/run_all.sh

test.ci:
deps: [fmt, lint, mocks, test]
deps: [fmt, lint]
cmds:
- task: mocks
- task: test
- task: test.e2e


default:
deps: [test.ci]
6 changes: 6 additions & 0 deletions e2e/run_all.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/bin/bash
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )

for file in $(ls $SCRIPT_DIR/test_*.sh); do
$file
done
21 changes: 21 additions & 0 deletions e2e/test_infinite_mocking.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/bash
# This tests https://github.com/vektra/mockery/issues/632, where
# mockery was generating mocks of its own auto-generated code.

echo "=========="
echo "RUNNING $0"
echo "=========="

# New mocks may legimitately be created, so we run mockery once first
go run .
num_files_before=$(find . -type f | wc -l)
go run .
num_files_after=$(find . -type f | wc -l)

if [ $num_files_before -ne $num_files_after ]; then
echo "ERROR: detected increased file count over multiple mockery runs."
echo "before: $num_files_before. after: $num_files_after"
exit 1
fi
echo "SUCCESS: identical number of files over multiple mockery runs"

13 changes: 13 additions & 0 deletions e2e/test_mockery_generation.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash

echo "=========="
echo "RUNNING $0"
echo "=========="

go run .
rt=$?
if [ $rt -ne 0 ]; then
echo "ERROR: non-zero return code from mockery"
exit 1
fi
echo "SUCCESS: successfully generated mocks defined in .mockery.yaml"
9 changes: 4 additions & 5 deletions mocks/github.com/vektra/mockery/v2/pkg/TypesPackage.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 4 additions & 5 deletions mocks/github.com/vektra/mockery/v2/pkg/fixtures/A.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 4 additions & 5 deletions mocks/github.com/vektra/mockery/v2/pkg/fixtures/Blank.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 4 additions & 5 deletions mocks/github.com/vektra/mockery/v2/pkg/fixtures/Example.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 4 additions & 5 deletions mocks/github.com/vektra/mockery/v2/pkg/fixtures/Fooer.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 4 additions & 5 deletions mocks/github.com/vektra/mockery/v2/pkg/fixtures/GetInt.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit e85f2c0

Please sign in to comment.