package builder import ( "archive/zip" "os" "path/filepath" "testing" ) func TestZipDirectory(t *testing.T) { dir := t.TempDir() if err := os.WriteFile(filepath.Join(dir, "README.txt"), []byte("hi"), 0644); err != nil { t.Fatal(err) } zipPath := filepath.Join(t.TempDir(), "pkg.zip") if err := zipDirectory(dir, zipPath); err != nil { t.Fatal(err) } r, err := zip.OpenReader(zipPath) if err != nil { t.Fatal(err) } defer r.Close() if len(r.File) != 1 || r.File[0].Name != "README.txt" { t.Fatalf("unexpected zip contents: %+v", r.File) } } func TestFusionBundleZipName(t *testing.T) { got := fusionBundleZipName("My Title") if got != "My-Title-package.zip" { t.Fatalf("got %q", got) } } func TestZipDirectoryRejectsInsideSource(t *testing.T) { dir := t.TempDir() zipPath := filepath.Join(dir, "nested.zip") err := zipDirectory(dir, zipPath) if err == nil { t.Fatal("expected error when zip path is inside source") } }