Skip to content

Commit a179824

Browse files
committed
more test improvement
1 parent 523e8dd commit a179824

File tree

1 file changed

+28
-22
lines changed

1 file changed

+28
-22
lines changed

cmd/clean_test.go

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ import (
1212
"github.com/stretchr/testify/require"
1313
)
1414

15-
// --- Mock ConfigManager ---
15+
const testRepoRoot = "/test-repo"
16+
17+
// --- Mock ConfigManager ---.
1618
type mockConfigManager struct {
1719
bruinHomeDir string
1820
homeDirErr error
@@ -27,7 +29,7 @@ func (m *mockConfigManager) RecreateHomeDir() error {
2729
return m.recreateErr
2830
}
2931

30-
// --- Mock GitFinder ---
32+
// --- Mock GitFinder ---.
3133
type mockGitFinder struct {
3234
repo *git.Repo
3335
err error
@@ -37,7 +39,7 @@ func (m *mockGitFinder) Repo(path string) (*git.Repo, error) {
3739
return m.repo, m.err
3840
}
3941

40-
// --- Mock filesystem that fails on Remove ---
42+
// --- Mock filesystem that fails on Remove ---.
4143
type mockFailingFs struct {
4244
afero.Fs
4345
removeErr error
@@ -47,7 +49,7 @@ func (m *mockFailingFs) Remove(name string) error {
4749
return m.removeErr
4850
}
4951

50-
// --- Mock printer to capture output ---
52+
// --- Mock printer to capture output ---.
5153
type mockOutputPrinter struct {
5254
output *[]string
5355
}
@@ -63,6 +65,7 @@ func (m *mockOutputPrinter) Println(args ...interface{}) {
6365
}
6466

6567
func TestCleanCommand_Run(t *testing.T) {
68+
t.Parallel()
6669
tests := []struct {
6770
name string
6871
inputPath string
@@ -86,8 +89,8 @@ func TestCleanCommand_Run(t *testing.T) {
8689
inputPath: ".",
8790
setupMocks: func(t *testing.T) (afero.Fs, *mockConfigManager, *mockGitFinder, string) {
8891
fs := afero.NewMemMapFs()
89-
repoRoot := "/test-repo"
90-
fs.MkdirAll(path.Join(repoRoot, LogsFolder), 0755)
92+
repoRoot := testRepoRoot
93+
require.NoError(t, fs.MkdirAll(path.Join(repoRoot, LogsFolder), 0o755))
9194
return fs, &mockConfigManager{
9295
bruinHomeDir: "/test-bruin-home",
9396
recreateErr: errors.New("failed to recreate the home directory"),
@@ -112,8 +115,8 @@ func TestCleanCommand_Run(t *testing.T) {
112115
inputPath: ".",
113116
setupMocks: func(t *testing.T) (afero.Fs, *mockConfigManager, *mockGitFinder, string) {
114117
fs := afero.NewMemMapFs()
115-
repoRoot := "/test-repo"
116-
fs.MkdirAll(path.Join(repoRoot, LogsFolder), 0755)
118+
repoRoot := testRepoRoot
119+
require.NoError(t, fs.MkdirAll(path.Join(repoRoot, LogsFolder), 0o755))
117120
return fs, &mockConfigManager{
118121
bruinHomeDir: "/test-bruin-home",
119122
}, &mockGitFinder{
@@ -127,13 +130,14 @@ func TestCleanCommand_Run(t *testing.T) {
127130
inputPath: ".",
128131
setupMocks: func(t *testing.T) (afero.Fs, *mockConfigManager, *mockGitFinder, string) {
129132
fs := afero.NewMemMapFs()
130-
repoRoot := "/test-repo"
133+
repoRoot := testRepoRoot
131134
logsFolder := path.Join(repoRoot, LogsFolder)
132-
fs.MkdirAll(logsFolder, 0755)
135+
require.NoError(t, fs.MkdirAll(logsFolder, 0o755))
133136
logFiles := []string{"test1.log", "test2.log", "test3.log"}
134137
for _, f := range logFiles {
135138
file, _ := fs.Create(path.Join(logsFolder, f))
136-
file.WriteString("test log content")
139+
_, err := file.WriteString("test log content")
140+
require.NoError(t, err)
137141
file.Close()
138142
}
139143
return fs, &mockConfigManager{
@@ -155,11 +159,12 @@ func TestCleanCommand_Run(t *testing.T) {
155159
Fs: afero.NewMemMapFs(),
156160
removeErr: errors.New("permission denied"),
157161
}
158-
repoRoot := "/test-repo"
162+
repoRoot := testRepoRoot
159163
logsFolder := path.Join(repoRoot, LogsFolder)
160-
fs.MkdirAll(logsFolder, 0755)
164+
require.NoError(t, fs.MkdirAll(logsFolder, 0o755))
161165
file, _ := fs.Create(path.Join(logsFolder, "test1.log"))
162-
file.WriteString("test log content")
166+
_, err := file.WriteString("test log content")
167+
require.NoError(t, err)
163168
file.Close()
164169
return fs, &mockConfigManager{
165170
bruinHomeDir: "/test-bruin-home",
@@ -170,25 +175,26 @@ func TestCleanCommand_Run(t *testing.T) {
170175
expectedErr: "failed to remove file",
171176
},
172177
{
173-
name: "successful cleanup with uv cache",
174-
inputPath: ".",
178+
name: "successful cleanup with uv cache",
179+
inputPath: ".",
175180
cleanUvCache: true,
176181
setupMocks: func(t *testing.T) (afero.Fs, *mockConfigManager, *mockGitFinder, string) {
177182
fs := afero.NewMemMapFs()
178-
repoRoot := "/test-repo"
179-
fs.MkdirAll(path.Join(repoRoot, LogsFolder), 0755)
183+
repoRoot := testRepoRoot
184+
require.NoError(t, fs.MkdirAll(path.Join(repoRoot, LogsFolder), 0o755))
180185
return fs, &mockConfigManager{
181-
bruinHomeDir: "/test-bruin-home",
182-
}, &mockGitFinder{
183-
repo: &git.Repo{Path: repoRoot},
184-
}, repoRoot
186+
bruinHomeDir: "/test-bruin-home",
187+
}, &mockGitFinder{
188+
repo: &git.Repo{Path: repoRoot},
189+
}, repoRoot
185190
},
186191
expectedOutput: []string{"No log files found, nothing to clean up..."},
187192
},
188193
}
189194

190195
for _, tt := range tests {
191196
t.Run(tt.name, func(t *testing.T) {
197+
t.Parallel()
192198
fs, mockCM, mockGF, repoRoot := tt.setupMocks(t)
193199

194200
output := []string{}

0 commit comments

Comments
 (0)