mirror of
https://github.com/thegeeklab/wp-plugin-go.git
synced 2024-11-23 06:40:40 +00:00
fix: fix IsDirEmpty and add tests (#76)
This commit is contained in:
parent
211b38e908
commit
d2c3493d68
@ -32,8 +32,8 @@ func IsDir(path string) (bool, error) {
|
||||
return false, err
|
||||
}
|
||||
|
||||
// IsDirEmpty returns whether the given directory path is empty.
|
||||
// If the path does not exist or is not a directory, it returns (false, err).
|
||||
// IsDirEmpty checks if the directory at the given path is empty.
|
||||
// It returns true if the directory is empty, false if not empty, or an error if there was a problem checking it.
|
||||
func IsDirEmpty(path string) (bool, error) {
|
||||
f, err := os.Open(path)
|
||||
if err != nil {
|
||||
@ -43,7 +43,7 @@ func IsDirEmpty(path string) (bool, error) {
|
||||
|
||||
_, err = f.Readdir(1)
|
||||
if err == nil {
|
||||
return true, nil
|
||||
return false, nil
|
||||
}
|
||||
|
||||
if errors.Is(err, io.EOF) {
|
||||
|
69
file/dir_test.go
Normal file
69
file/dir_test.go
Normal file
@ -0,0 +1,69 @@
|
||||
package file
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"io/fs"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestIsDirEmpty(t *testing.T) {
|
||||
t.Run("empty directory", func(t *testing.T) {
|
||||
dir, err := os.MkdirTemp("", "test")
|
||||
if err != nil {
|
||||
t.Fatalf("failed to create temp dir: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(dir)
|
||||
|
||||
isEmpty, err := IsDirEmpty(dir)
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
if !isEmpty {
|
||||
t.Error("expected directory to be empty")
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("non-empty directory", func(t *testing.T) {
|
||||
dir, err := os.MkdirTemp("", "test")
|
||||
if err != nil {
|
||||
t.Fatalf("failed to create temp dir: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(dir)
|
||||
|
||||
file, err := os.CreateTemp(dir, "test")
|
||||
if err != nil {
|
||||
t.Fatalf("failed to create temp file: %v", err)
|
||||
}
|
||||
|
||||
file.Close()
|
||||
|
||||
isEmpty, err := IsDirEmpty(dir)
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
if isEmpty {
|
||||
t.Error("expected directory to be non-empty")
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("non-existent directory", func(t *testing.T) {
|
||||
dir := filepath.Join(os.TempDir(), "non-existent")
|
||||
|
||||
isEmpty, err := IsDirEmpty(dir)
|
||||
if err == nil {
|
||||
t.Error("expected an error for non-existent directory")
|
||||
}
|
||||
|
||||
if isEmpty {
|
||||
t.Error("expected directory to be non-empty")
|
||||
}
|
||||
|
||||
if !errors.Is(err, fs.ErrNotExist) {
|
||||
t.Errorf("unexpected error: %v", err)
|
||||
}
|
||||
})
|
||||
}
|
Loading…
Reference in New Issue
Block a user