node build fixed

This commit is contained in:
ra_ma
2025-09-20 14:08:38 +01:00
parent c6ebbe069d
commit 3d298fa434
1516 changed files with 535727 additions and 2 deletions

View File

@@ -0,0 +1,200 @@
package debrid_client
import (
"fmt"
"github.com/stretchr/testify/require"
"os"
"path/filepath"
"testing"
)
func PrintPathStructure(path string, indent string) error {
entries, err := os.ReadDir(path)
if err != nil {
return fmt.Errorf("failed to read directory %s: %w", path, err)
}
for _, entry := range entries {
fmt.Println(indent + entry.Name())
if entry.IsDir() {
newIndent := indent + " "
newPath := filepath.Join(path, entry.Name())
if err := PrintPathStructure(newPath, newIndent); err != nil {
return err
}
} else {
}
}
return nil
}
func TestCreateTempDir(t *testing.T) {
files := []string{
"/12345/Anime/Ep1.mkv",
"/12345/Anime/Ep2.mkv",
}
root := "./root"
for _, file := range files {
path := filepath.Join(root, file)
if err := os.MkdirAll(filepath.Dir(path), 0755); err != nil {
t.Fatalf("failed to create directory: %v", err)
}
if err := os.WriteFile(path, []byte("dummy content"), 0644); err != nil {
t.Fatalf("failed to create file %s: %v", path, err)
}
}
defer os.RemoveAll(root)
err := PrintPathStructure(root, "")
require.NoError(t, err)
}
func TestMoveContentsTo(t *testing.T) {
tests := []struct {
name string
files []string
dest string
expected string
expectErr bool
}{
{
name: "Case 1: Move folder with files",
files: []string{
"/Anime/Ep1.mkv",
"/Anime/Ep2.mkv",
},
dest: "./dest",
expected: "./dest/Anime",
expectErr: false,
},
{
name: "Case 2: Move folder with single hash directory",
files: []string{
"/12345/Anime/Ep1.mkv",
"/12345/Anime/Ep2.mkv",
},
dest: "./dest",
expected: "./dest/Anime",
expectErr: false,
},
{
name: "Case 3: Move single file",
files: []string{
"/12345/Anime/Ep1.mkv",
},
dest: "./dest",
expected: "./dest/Ep1.mkv",
expectErr: false,
},
{
name: "Case 5: Source directory does not exist",
files: []string{},
dest: "./dest",
expected: "",
expectErr: true,
},
{
name: "Case 6: Move single file with hash directory",
files: []string{
"/12345/Anime/Ep1.mkv",
},
dest: "./dest",
expected: "./dest/Ep1.mkv",
},
{
name: "Case 7",
files: []string{
"Ep1.mkv",
},
dest: "./dest",
expected: "./dest/Ep1.mkv",
},
{
name: "Case 8",
files: []string{
"Ep1.mkv",
"Ep2.mkv",
},
dest: "./dest",
expected: "./dest/Ep2.mkv",
},
{
name: "Case 9",
files: []string{
"/12345/Anime/Anime 1/Ep1.mkv",
"/12345/Anime/Anime 1/Ep2.mkv",
"/12345/Anime/Anime 2/Ep1.mkv",
"/12345/Anime/Anime 2/Ep2.mkv",
"/12345/Anime 2/Anime 3/Ep1.mkv",
"/12345/Anime 2/Anime 3/Ep2.mkv",
},
dest: "./dest",
expected: "./dest/12345",
expectErr: false,
},
{
name: "Case 10",
files: []string{
"/Users/r/Downloads/b6aa416f662a2df83c6f5f79da95004ced59b8ef/Tsue to Tsurugi no Wistoria S01 1080p WEBRip DD+ x265-EMBER/[EMBER] Tsue to Tsurugi no Wistoria - 01.mkv",
"/Users/r/Downloads/b6aa416f662a2df83c6f5f79da95004ced59b8ef/Tsue to Tsurugi no Wistoria S01 1080p WEBRip DD+ x265-EMBER/[EMBER] Tsue to Tsurugi no Wistoria - 02.mkv",
},
dest: "./dest",
expected: "./dest/Tsue to Tsurugi no Wistoria S01 1080p WEBRip DD+ x265-EMBER",
expectErr: false,
},
{
name: "Case 11",
files: []string{
"/Users/rahim/Downloads/80431b4f9a12f4e06616062d3d3973b9ef99b5e6/[SubsPlease] Bocchi the Rock! - 01 (1080p) [E04F4EFB]/[SubsPlease] Bocchi the Rock! - 01 (1080p) [E04F4EFB].mkv",
},
dest: "./dest",
expected: "./dest/[SubsPlease] Bocchi the Rock! - 01 (1080p) [E04F4EFB].mkv",
expectErr: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
// Create the source directory structure
root := "./root"
for _, file := range tt.files {
path := filepath.Join(root, file)
if err := os.MkdirAll(filepath.Dir(path), 0755); err != nil {
t.Fatalf("failed to create directory: %v", err)
}
if err := os.WriteFile(path, []byte("dummy content"), 0644); err != nil {
t.Fatalf("failed to create file %s: %v", path, err)
}
}
defer os.RemoveAll(root) // Cleanup temp dir after test
PrintPathStructure(root, "")
println("-----------------------------")
// Create the destination directory
if err := os.MkdirAll(tt.dest, 0755); err != nil {
t.Fatalf("failed to create dest directory: %v", err)
}
defer os.RemoveAll(tt.dest) // Cleanup dest after test
// Move the contents
err := moveContentsTo(root, tt.dest)
if (err != nil) != tt.expectErr {
t.Errorf("unexpected error: %v", err)
}
if !tt.expectErr {
if _, err := os.Stat(tt.expected); os.IsNotExist(err) {
t.Errorf("expected directory or file does not exist: %s", tt.expected)
}
PrintPathStructure(tt.dest, "")
}
})
}
}