Skip to content

Commit

Permalink
feat: added unit tests
Browse files Browse the repository at this point in the history
Signed-off-by: Asish Kumar <[email protected]>
  • Loading branch information
officialasishkumar committed May 11, 2024
1 parent 01c472b commit 0f2e6c5
Showing 1 changed file with 64 additions and 2 deletions.
66 changes: 64 additions & 2 deletions pkg/utils/utils_test.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
package utils

import (
"archive/tar"
"io"
"os"
"path"
"path/filepath"
"strings"
"testing"

"github.com/stretchr/testify/assert"
Expand Down Expand Up @@ -74,10 +78,68 @@ func TestTarDir(t *testing.T) {
if !os.IsNotExist(err) {
os.Remove(tarPath)
}
emptyArrayOfStrings := []string{}
err = TarDir(filepath.Join(testDir, "test_src"), tarPath, emptyArrayOfStrings, emptyArrayOfStrings)

testSrcDir := filepath.Join(testDir, "test_src")

getTarFileNames := func(filePath string) ([]string, error) {
file, err := os.Open(filePath)
if err != nil {
return nil, err
}
defer file.Close()

reader := tar.NewReader(file)
filePaths := []string{}

for {
header, err := reader.Next()
if err == io.EOF {
break
}
if err != nil {
return nil, err
}

if header.Typeflag != tar.TypeReg {
continue
}

fullPath := path.Join(header.Name)
fullPath = path.Join(filePath, fullPath)
fullPath = strings.Replace(fullPath, "test.tar", "test_src", 1)

filePaths = append(filePaths, fullPath)
}

return filePaths, nil
}

getNewPattern := func(ex string) string {
return testSrcDir + "/" + ex
}

err = TarDir(testSrcDir, tarPath, []string{}, []string{})
assert.Equal(t, err, nil)
_, err = os.Stat(tarPath)
assert.Equal(t, err, nil)
os.Remove(tarPath)

_ = TarDir(testSrcDir, tarPath, []string{}, []string{"*.mod"})
fileNames, _ := getTarFileNames(tarPath)
for _, fileName := range fileNames {
flag, _ := filepath.Match(getNewPattern("*.mod"), fileName)
assert.Equal(t, flag, false)
}
_, err = os.Stat(tarPath)
assert.Equal(t, err, nil)
os.Remove(tarPath)

_ = TarDir(testSrcDir, tarPath, []string{"*/*.lock", "*.mod"}, []string{})
fileNames, _ = getTarFileNames(tarPath)
for _, fileName := range fileNames {
flag, _ := filepath.Match(getNewPattern("*/*.lock"), fileName)
assert.Equal(t, flag, true)
}
_, err = os.Stat(tarPath)
assert.Equal(t, err, nil)
os.Remove(tarPath)
Expand Down

0 comments on commit 0f2e6c5

Please sign in to comment.