Skip to content

Commit b7e6bb8

Browse files
committed
fix: Retry the file deletion to prevent flakies for issue #938
1 parent a07eac0 commit b7e6bb8

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

src/internal/handle_file_operation_test.go

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,21 @@ func TestCompressSelectedFiles(t *testing.T) {
141141
p.SendKey(common.Hotkeys.ExtractFile[0])
142142
// File extraction is supposedly async. So function's return doesn't means its done.
143143
extractedDir := filepath.Join(tt.startDir, tt.extractedDirName)
144+
145+
// Setup cleanup to run even if test fails
146+
t.Cleanup(func() {
147+
var rmExtractErr error
148+
require.Eventually(t, func() bool {
149+
rmExtractErr = os.RemoveAll(extractedDir)
150+
return rmExtractErr == nil
151+
}, DefaultTestTimeout, DefaultTestTick, "Failed to remove extracted directory %q: %v", extractedDir, rmExtractErr)
152+
153+
var rmZipErr error
154+
require.Eventually(t, func() bool {
155+
rmZipErr = os.RemoveAll(zipFile)
156+
return rmZipErr == nil
157+
}, DefaultTestTimeout, DefaultTestTick, "Failed to remove zip file %q: %v", zipFile, rmZipErr)
158+
})
144159
assert.Eventually(t, func() bool {
145160
for _, f := range tt.expectedFilesAfterExtract {
146161
_, err := os.Stat(filepath.Join(extractedDir, f))
@@ -151,9 +166,6 @@ func TestCompressSelectedFiles(t *testing.T) {
151166
return true
152167
}, DefaultTestTimeout, DefaultTestTick, "Extraction of files failed Required - [%s]+%v",
153168
extractedDir, tt.expectedFilesAfterExtract)
154-
155-
require.NoError(t, os.RemoveAll(extractedDir))
156-
require.NoError(t, os.RemoveAll(zipFile))
157169
})
158170
}
159171

0 commit comments

Comments
 (0)