mirror of
https://github.com/thegeeklab/wp-plugin-go.git
synced 2024-11-22 10:20:39 +00:00
70 lines
1.3 KiB
Go
70 lines
1.3 KiB
Go
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)
|
|
}
|
|
})
|
|
}
|