From 4871be822f6d4f3159524f5c66e100c9cc67745b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Eduardo=20Jer=C3=A9z=20Gir=C3=B3n?= Date: Mon, 20 Nov 2023 22:01:33 -0600 Subject: [PATCH] test: add glob pattern tests to sqlpath.Glob --- internal/sql/sqlpath/read_test.go | 45 +++++++++++++++++++ .../testdata/glob/sub1/queries/file1.sql | 0 .../testdata/glob/sub2/queries/file2.sql | 0 .../testdata/glob/sub3/queries/file3.sql | 0 .../testdata/glob/sub3/queries/file4.sql | 0 5 files changed, 45 insertions(+) create mode 100644 internal/sql/sqlpath/testdata/glob/sub1/queries/file1.sql create mode 100644 internal/sql/sqlpath/testdata/glob/sub2/queries/file2.sql create mode 100644 internal/sql/sqlpath/testdata/glob/sub3/queries/file3.sql create mode 100644 internal/sql/sqlpath/testdata/glob/sub3/queries/file4.sql diff --git a/internal/sql/sqlpath/read_test.go b/internal/sql/sqlpath/read_test.go index 774561057e..babb80cc80 100644 --- a/internal/sql/sqlpath/read_test.go +++ b/internal/sql/sqlpath/read_test.go @@ -206,3 +206,48 @@ func TestFollowSymlinks(t *testing.T) { t.Errorf("Expected no error, but got %v", err) } } + +func TestGlobPattern(t *testing.T) { + // Arrange + tests := []struct { + pattern string + expected []string + }{ + { + pattern: "testdata/glob/*/queries", + expected: []string{ + "testdata/glob/sub1/queries/file1.sql", + "testdata/glob/sub2/queries/file2.sql", + "testdata/glob/sub3/queries/file3.sql", + "testdata/glob/sub3/queries/file4.sql", + }, + }, + { + pattern: "testdata/glob/sub3/queries/file?.sql", + expected: []string{ + "testdata/glob/sub3/queries/file3.sql", + "testdata/glob/sub3/queries/file4.sql", + }, + }, + { + pattern: "testdata/glob/sub3/queries/file[1-5].sql", + expected: []string{ + "testdata/glob/sub3/queries/file3.sql", + "testdata/glob/sub3/queries/file4.sql", + }, + }, + } + + for _, test := range tests { + // Act + result, err := Glob([]string{test.pattern}) + + // Assert + if !cmp.Equal(result, test.expected) { + t.Errorf("Pattern %v: Expected %v, but got %v", test.pattern, test.expected, result) + } + if err != nil { + t.Errorf("Pattern %v: Expected no error, but got %v", test.pattern, err) + } + } +} diff --git a/internal/sql/sqlpath/testdata/glob/sub1/queries/file1.sql b/internal/sql/sqlpath/testdata/glob/sub1/queries/file1.sql new file mode 100644 index 0000000000..e69de29bb2 diff --git a/internal/sql/sqlpath/testdata/glob/sub2/queries/file2.sql b/internal/sql/sqlpath/testdata/glob/sub2/queries/file2.sql new file mode 100644 index 0000000000..e69de29bb2 diff --git a/internal/sql/sqlpath/testdata/glob/sub3/queries/file3.sql b/internal/sql/sqlpath/testdata/glob/sub3/queries/file3.sql new file mode 100644 index 0000000000..e69de29bb2 diff --git a/internal/sql/sqlpath/testdata/glob/sub3/queries/file4.sql b/internal/sql/sqlpath/testdata/glob/sub3/queries/file4.sql new file mode 100644 index 0000000000..e69de29bb2