@@ -54,7 +54,7 @@ func TestGoTestDiscoverPackages(t *testing.T) {
5454 }
5555
5656 runner := NewGoTest (tmpDir )
57- packages , err := runner .DiscoverPackages (tmpDir )
57+ packages , err := runner .DiscoverPackages (tmpDir , true )
5858 if err != nil {
5959 t .Fatalf ("unexpected error: %v" , err )
6060 }
@@ -71,6 +71,45 @@ func TestGoTestDiscoverPackages(t *testing.T) {
7171 }
7272}
7373
74+ func TestGoTestDiscoverPackagesNonRecursive (t * testing.T ) {
75+ tmpDir := t .TempDir ()
76+
77+ // Create test file in root and in a subdirectory
78+ if err := os .WriteFile (filepath .Join (tmpDir , "root_test.go" ), []byte ("package root\n " ), 0644 ); err != nil {
79+ t .Fatal (err )
80+ }
81+ subDir := filepath .Join (tmpDir , "sub" )
82+ if err := os .MkdirAll (subDir , 0755 ); err != nil {
83+ t .Fatal (err )
84+ }
85+ if err := os .WriteFile (filepath .Join (subDir , "sub_test.go" ), []byte ("package sub\n " ), 0644 ); err != nil {
86+ t .Fatal (err )
87+ }
88+
89+ runner := NewGoTest (tmpDir )
90+
91+ // Non-recursive should only find root
92+ packages , err := runner .DiscoverPackages (tmpDir , false )
93+ if err != nil {
94+ t .Fatalf ("unexpected error: %v" , err )
95+ }
96+ if len (packages ) != 1 {
97+ t .Fatalf ("expected 1 package, got %d: %v" , len (packages ), packages )
98+ }
99+ if packages [0 ] != "./." {
100+ t .Errorf ("expected './.', got %s" , packages [0 ])
101+ }
102+
103+ // Recursive should find both
104+ packages , err = runner .DiscoverPackages (tmpDir , true )
105+ if err != nil {
106+ t .Fatalf ("unexpected error: %v" , err )
107+ }
108+ if len (packages ) != 2 {
109+ t .Fatalf ("expected 2 packages, got %d: %v" , len (packages ), packages )
110+ }
111+ }
112+
74113func TestGoTestPackageHasTests (t * testing.T ) {
75114 tmpDir := t .TempDir ()
76115 pkgDir := filepath .Join (tmpDir , "pkg" )
@@ -214,7 +253,7 @@ func TestExample(t *testing.T) {}
214253 }
215254
216255 runner := NewGoTest (tmpDir )
217- packages , err := runner .DiscoverPackages (tmpDir )
256+ packages , err := runner .DiscoverPackages (tmpDir , true )
218257 if err != nil {
219258 t .Fatalf ("unexpected error: %v" , err )
220259 }
0 commit comments