Git Repository
Stackyard
Stackyard scannt lokale Entwicklungsordner und bündelt Projekte, Git-Status, TODOs, Toolchains, Docker-Compose-Setups, Datei- und Launcher-Funktionen sowie Operations-Informationen in einer lokalen WebUI.
HTTPS
https://zanvex.de/git/stackyard.gitinternal/archive/archive_test.go
Zum Verzeichnispackage archive
import (
"archive/zip"
"bytes"
"os"
"path/filepath"
"testing"
)
func TestWriteZIPSkipsIgnoredDirectories(t *testing.T) {
root := filepath.Join(t.TempDir(), "demo")
if err := os.MkdirAll(filepath.Join(root, "node_modules", "pkg"), 0o755); err != nil {
t.Fatal(err)
}
if err := os.WriteFile(filepath.Join(root, "README.md"), []byte("demo"), 0o644); err != nil {
t.Fatal(err)
}
if err := os.WriteFile(filepath.Join(root, "node_modules", "pkg", "index.js"), []byte("ignored"), 0o644); err != nil {
t.Fatal(err)
}
var out bytes.Buffer
if err := Write(&out, root, FormatZIP, Options{IgnoreDirs: []string{"node_modules"}}); err != nil {
t.Fatal(err)
}
zr, err := zip.NewReader(bytes.NewReader(out.Bytes()), int64(out.Len()))
if err != nil {
t.Fatal(err)
}
if len(zr.File) != 1 || zr.File[0].Name != "demo/README.md" {
t.Fatalf("unexpected archive entries: %+v", zr.File)
}
}
func TestWriteRejectsUnknownFormat(t *testing.T) {
if err := Write(&bytes.Buffer{}, t.TempDir(), Format("rar"), Options{}); err == nil {
t.Fatal("expected unsupported format error")
}
}