diff --git a/pkg/moq/moq.go b/pkg/moq/moq.go index c293e4d..adb378b 100644 --- a/pkg/moq/moq.go +++ b/pkg/moq/moq.go @@ -177,7 +177,7 @@ func (m *Mocker) Mock(w io.Writer, names ...string) error { if tpkg.Name() != m.pkgName { doc.SourcePackagePrefix = tpkg.Name() + "." - doc.Imports = append(doc.Imports, tpkg.Path()) + doc.Imports = append(doc.Imports, stripVendorPath(tpkg.Path())) } var buf bytes.Buffer diff --git a/pkg/moq/moq_test.go b/pkg/moq/moq_test.go index aa416ab..1bf02cc 100644 --- a/pkg/moq/moq_test.go +++ b/pkg/moq/moq_test.go @@ -311,6 +311,32 @@ func TestVendoredPackages(t *testing.T) { } } +func TestVendoredInterface(t *testing.T) { + m, err := New("testpackages/vendoring/vendor/github.com/matryer/somerepo", "someother") + if err != nil { + t.Fatalf("moq.New: %s", err) + } + var buf bytes.Buffer + err = m.Mock(&buf, "SomeService") + if err != nil { + t.Errorf("mock error: %s", err) + } + s := buf.String() + // assertions of things that should be mentioned + var strs = []string{ + `"github.com/matryer/somerepo"`, + } + for _, str := range strs { + if !strings.Contains(s, str) { + t.Errorf("expected but missing: \"%s\"", str) + } + } + incorrectImport := `"github.com/matryer/moq/pkg/moq/testpackages/vendoring/vendor/github.com/matryer/somerepo"` + if strings.Contains(s, incorrectImport) { + t.Errorf("unexpected import: %s", incorrectImport) + } +} + func TestVendoredBuildConstraints(t *testing.T) { m, err := New("testpackages/buildconstraints/user", "") if err != nil { diff --git a/pkg/moq/testpackages/vendoring/vendor/github.com/matryer/somerepo/code.go b/pkg/moq/testpackages/vendoring/vendor/github.com/matryer/somerepo/code.go index 706bf42..d5fbd14 100644 --- a/pkg/moq/testpackages/vendoring/vendor/github.com/matryer/somerepo/code.go +++ b/pkg/moq/testpackages/vendoring/vendor/github.com/matryer/somerepo/code.go @@ -7,3 +7,7 @@ type SomeType struct { // Truth indicates whether true is true or not. Computers. Truth bool } + +type SomeService interface { + Get() SomeType +}