Skip to content

Commit 62e9f02

Browse files
committed
add tests for finding files and use variable for default filetypes
1 parent c081533 commit 62e9f02

File tree

5 files changed

+32
-1
lines changed

5 files changed

+32
-1
lines changed

digestabotctl/cmd/flags.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"errors"
55
"fmt"
66

7+
"github.com/chainguard-dev/platform-examples/digestabotctl/digestabot"
78
"github.com/chainguard-dev/platform-examples/digestabotctl/platforms"
89
"github.com/spf13/cobra"
910
"github.com/spf13/viper"
@@ -35,7 +36,7 @@ func bindFileFlags(cmd *cobra.Command) {
3536

3637
// fileFlags adds the file flags to the passed in command
3738
func fileFlags(cmd *cobra.Command) {
38-
cmd.PersistentFlags().StringSliceP("file-types", "f", []string{`*.yaml`, `*.yml`, `*.sh`, `*.tf`, `*.tfvars`, `Dockerfile*`, `Makefile*`}, "Files to update")
39+
cmd.PersistentFlags().StringSliceP("file-types", "f", digestabot.DefaultFileTypes, "Files to update")
3940
cmd.PersistentFlags().StringP("directory", "d", ".", "Directory to update files")
4041
}
4142

digestabotctl/digestabot/digestabot.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414

1515
var regex = regexp.MustCompile(`[a-z0-9]+([._-][a-z0-9]+)*(/[a-z0-9]+([._-][a-z0-9]+)*)*@sha256:[a-z0-9]+`)
1616
var shaRegex = regexp.MustCompile(`sha256:[a-z0-9]+`)
17+
var DefaultFileTypes = []string{`*.yaml`, `*.yml`, `*.sh`, `*.tf`, `*.tfvars`, `Dockerfile*`, `Makefile*`}
1718

1819
type Image struct {
1920
Name string

digestabotctl/digestabot/digestabot_test.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"io"
77
"log/slog"
88
"os"
9+
"slices"
910
"strings"
1011
"testing"
1112
)
@@ -63,3 +64,28 @@ func TestUpdateHashes(t *testing.T) {
6364
})
6465
}
6566
}
67+
68+
func TestFindFiles(t *testing.T) {
69+
tt := []struct {
70+
name string
71+
directory string
72+
fileTypes []string
73+
expected []string
74+
}{
75+
{name: "dockerfiles", directory: "../examples", fileTypes: []string{"Dockerfile*"}, expected: []string{"../examples/Dockerfile", "../examples/Dockerfile2", "../examples/nested_dir/Dockerfile"}},
76+
{name: "all", directory: "../examples", fileTypes: DefaultFileTypes, expected: []string{"../examples/Dockerfile", "../examples/Dockerfile2", "../examples/Makefile", "../examples/nested_dir/Dockerfile", "../examples/test.yaml"}},
77+
}
78+
79+
for _, v := range tt {
80+
t.Run(v.name, func(t *testing.T) {
81+
files, err := FindFiles(v.fileTypes, v.directory)
82+
if err != nil {
83+
t.Fatal(err)
84+
}
85+
86+
if !slices.Equal(v.expected, files) {
87+
t.Errorf("expected \n%v \n but got \n%v", v.expected, files)
88+
}
89+
})
90+
}
91+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
FROM cgr.dev/chainguard/busybox:latest@sha256:257157f6c6aa88dd934dcf6c2f140e42c2653207302788c0ed3bebb91c5311e1 as build
2+

digestabotctl/examples/test.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
image: cgr.dev/chainguard/busybox:latest@sha256:257157f6c6aa88dd934dcf6c2f140e42c2653207302788c0ed3bebb91c5311e1

0 commit comments

Comments
 (0)