Skip to content

Commit 1953267

Browse files
committed
Add new expressions to allowed types
1 parent 13d696b commit 1953267

File tree

8 files changed

+248
-1
lines changed

8 files changed

+248
-1
lines changed

.mockery.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@ packages:
9494
config: *inpackage_config
9595
github.com/vektra/mockery/v2/pkg/fixtures/index_list_expr:
9696
config: *inpackage_config
97+
github.com/vektra/mockery/v2/pkg/fixtures/iface_new_type:
98+
config: *inpackage_config
9799
github.com/vektra/mockery/v2/pkg/fixtures/issue845:
98100
config:
99101
<<: *inpackage_config
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package iface_new_type_test
2+
3+
import (
4+
"context"
5+
"testing"
6+
7+
"github.com/stretchr/testify/require"
8+
"github.com/vektra/mockery/v2/pkg"
9+
)
10+
11+
func TestParsing(t *testing.T) {
12+
parser := pkg.NewParser(nil)
13+
ctx := context.Background()
14+
require.NoError(t, parser.ParsePackages(ctx, []string{"github.com/vektra/mockery/v2/pkg/fixtures/iface_new_type"}))
15+
require.NoError(t, parser.Load(ctx))
16+
17+
for _, ifaceName := range []string{"Interface1", "Interface2", "Interface3"} {
18+
iface, err := parser.Find(ifaceName)
19+
require.NoError(t, err)
20+
require.NotNil(t, iface)
21+
}
22+
}
23+
24+
func TestUsage(t *testing.T) {
25+
interface1 := NewMockInterface1(t)
26+
interface1.EXPECT().Method1().Return()
27+
interface1.Method1()
28+
29+
interface2 := NewMockInterface2(t)
30+
interface2.EXPECT().Method1().Return()
31+
interface2.Method1()
32+
33+
interface3 := NewMockInterface3(t)
34+
interface3.EXPECT().Method1().Return()
35+
interface3.Method1()
36+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package iface_new_type
2+
3+
import "github.com/vektra/mockery/v2/pkg/fixtures/iface_new_type/subpkg"
4+
5+
type Interface1 interface {
6+
Method1()
7+
}
8+
9+
type (
10+
Interface2 Interface1
11+
Interface3 subpkg.SubPkgInterface
12+
)

pkg/fixtures/iface_new_type/mock_interface_1_test.go

Lines changed: 64 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/fixtures/iface_new_type/mock_interface_2_test.go

Lines changed: 64 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/fixtures/iface_new_type/mock_interface_3_test.go

Lines changed: 64 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package subpkg
2+
3+
type SubPkgInterface interface {
4+
Method1()
5+
}

pkg/parse.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,7 @@ func (nv *NodeVisitor) Visit(node ast.Node) ast.Visitor {
380380
break
381381
}
382382
nv.add(nv.ctx, n)
383-
case *ast.InterfaceType, *ast.IndexExpr, *ast.IndexListExpr:
383+
case *ast.InterfaceType, *ast.IndexExpr, *ast.IndexListExpr, *ast.SelectorExpr, *ast.Ident:
384384
nv.add(nv.ctx, n)
385385
default:
386386
log.Debug().Msg("found node with unacceptable type for mocking. Rejecting.")

0 commit comments

Comments
 (0)