Skip to content

Commit

Permalink
add unit test for tarDirectory
Browse files Browse the repository at this point in the history
Signed-off-by: Lucas Rodriguez <lucas.rodriguez9616@gmail.com>
  • Loading branch information
lucasrod16 committed Aug 16, 2024
1 parent c8b6ec3 commit 66bf5e9
Showing 1 changed file with 78 additions and 0 deletions.
78 changes: 78 additions & 0 deletions content/file/utils_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,89 @@ limitations under the License.
package file

import (
"compress/gzip"
"context"
"errors"
"os"
"path/filepath"
"testing"
)

func Test_tarDirectory(t *testing.T) {
setup := func(t *testing.T) (tmpdir string, gz *os.File, gw *gzip.Writer) {
tmpdir = t.TempDir()

paths := []string{
filepath.Join(tmpdir, "file1.txt"),
filepath.Join(tmpdir, "file2.txt"),
}

for _, p := range paths {
err := os.WriteFile(p, []byte("test content"), 0644)
if err != nil {
t.Fatal(err)
}
}

gz, err := os.CreateTemp(tmpdir, "tarDirectory-*")
if err != nil {
t.Fatal(err)
}

return tmpdir, gz, gzip.NewWriter(gz)
}

t.Run("success", func(t *testing.T) {
tmpdir, gz, gw := setup(t)
defer func() {
if err := gw.Close(); err != nil {
t.Fatal(err)
}
if err := gz.Close(); err != nil {
t.Fatal(err)
}
}()

err := tarDirectory(context.Background(), tmpdir, "prefix", gw, false, nil)
if err != nil {
t.Fatal(err)
}

_, err = gz.Stat()
if err != nil {
t.Fatal(err)
}
})

t.Run("context cancellation", func(t *testing.T) {
tmpdir, gz, gw := setup(t)
defer func() {
if err := gw.Close(); err != nil {
t.Fatal(err)
}
if err := gz.Close(); err != nil {
t.Fatal(err)
}
}()

ctx, cancel := context.WithCancel(context.Background())
cancel()

err := tarDirectory(ctx, tmpdir, "prefix", gw, false, nil)
if err == nil {
t.Fatal("expected context cancellation error, got nil")
}
if !errors.Is(err, context.Canceled) {
t.Fatalf("expected context.Canceled error, got %v", err)
}

_, err = gz.Stat()
if err != nil {
t.Fatal(err)
}
})
}

func Test_ensureBasePath(t *testing.T) {
root := t.TempDir()
if err := os.MkdirAll(filepath.Join(root, "hello world", "foo", "bar"), 0700); err != nil {
Expand Down

0 comments on commit 66bf5e9

Please sign in to comment.