Skip to content

Commit c233bd0

Browse files
authored
feat(cicd): adding tests (#16)
adding tests
1 parent 48f7f85 commit c233bd0

File tree

14 files changed

+4362
-2
lines changed

14 files changed

+4362
-2
lines changed

filter.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ func (m *MultiFilter) Add(f any) {
2727
if j, ok := f.(Joiner); ok {
2828
joinSQL, joinArgs := j.Join()
2929
if joinArgs == nil {
30-
joinArgs = []any{}
30+
joinArgs = make([]any, 0)
3131
}
3232
m.joinSQL.WriteString(strings.TrimSpace(joinSQL))
3333
m.joinSQL.WriteString("\n")
@@ -37,7 +37,7 @@ func (m *MultiFilter) Add(f any) {
3737
if wt, okWt := f.(WhereTyper); okWt {
3838
whereSQL, whereArgs := wt.Where()
3939
if whereArgs == nil {
40-
whereArgs = []any{}
40+
whereArgs = make([]any, 0)
4141
}
4242
wtStr := WhereTypeAnd
4343
if wt.WhereType().IsValid() {

filter_test.go

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
package pagefilter
2+
3+
import (
4+
"testing"
5+
6+
"github.com/stretchr/testify/suite"
7+
)
8+
9+
type multiFilterSuite struct {
10+
suite.Suite
11+
12+
mf *MultiFilter
13+
}
14+
15+
func TestMultiFilterSuite(t *testing.T) {
16+
suite.Run(t, new(multiFilterSuite))
17+
}
18+
19+
func (s *multiFilterSuite) SetupTest() {
20+
s.mf = NewMultiFilter()
21+
}
22+
23+
func (s *multiFilterSuite) TearDownTest() {
24+
s.mf = nil
25+
}
26+
27+
func (s *multiFilterSuite) TestNewMultiFilter() {
28+
mf := NewMultiFilter()
29+
s.NotNil(mf)
30+
s.NotNil(mf.joinArgs)
31+
s.NotNil(mf.whereArgs)
32+
s.NotNil(mf.groupCols)
33+
}
34+
35+
func (s *multiFilterSuite) TestAdd_Where() {
36+
mf := s.mf
37+
s.NotNil(mf)
38+
39+
w := NewMockWherer(s.T())
40+
w.On("Where").Return("col = ?", []any{"val"})
41+
mf.Add(w)
42+
43+
s.Equal("AND col = ?\n", mf.whereSQL.String())
44+
s.Equal([]any{"val"}, mf.whereArgs)
45+
46+
w.AssertExpectations(s.T())
47+
}
48+
49+
func (s *multiFilterSuite) TestAdd_WhereTyper() {
50+
mf := s.mf
51+
s.NotNil(mf)
52+
53+
wt := NewMockWhereTyper(s.T())
54+
wt.On("Where").Return("col = ?", []any{"val"})
55+
wt.On("WhereType").Return(WhereTypeOr)
56+
mf.Add(wt)
57+
58+
s.Equal("OR col = ?\n", mf.whereSQL.String())
59+
s.Equal([]any{"val"}, mf.whereArgs)
60+
61+
wt.AssertExpectations(s.T())
62+
}
63+
64+
func (s *multiFilterSuite) TestAdd_Joiner() {
65+
mf := s.mf
66+
s.NotNil(mf)
67+
68+
j := NewMockJoiner(s.T())
69+
j.On("Join").Return("JOIN table ON table.id = other_table.id", []any{})
70+
mf.Add(j)
71+
72+
s.Equal("JOIN table ON table.id = other_table.id\n", mf.joinSQL.String())
73+
74+
j.AssertExpectations(s.T())
75+
}
76+
77+
func (s *multiFilterSuite) TestAdd_Grouper() {
78+
mf := s.mf
79+
s.NotNil(mf)
80+
81+
g := NewMockGrouper(s.T())
82+
g.On("Group").Return([]string{"col1", "col2"})
83+
mf.Add(g)
84+
85+
s.Equal([]string{"col1", "col2"}, mf.groupCols)
86+
87+
g.AssertExpectations(s.T())
88+
}
89+
90+
func (s *multiFilterSuite) TestJoin() {
91+
mf := s.mf
92+
s.NotNil(mf)
93+
94+
mf.joinSQL.WriteString("JOIN table ON table.id = other_table.id\n")
95+
mf.joinArgs = []any{}
96+
97+
sql, args := mf.Join()
98+
s.Equal("JOIN table ON table.id = other_table.id", sql)
99+
s.Empty(args)
100+
}
101+
102+
func (s *multiFilterSuite) TestWhere() {
103+
mf := s.mf
104+
s.NotNil(mf)
105+
106+
mf.whereSQL.WriteString("AND col = ?\n")
107+
mf.whereArgs = []any{"val"}
108+
109+
sql, args := mf.Where()
110+
s.Equal("AND col = ?", sql)
111+
s.Equal([]any{"val"}, args)
112+
}
113+
114+
func (s *multiFilterSuite) TestAdd_Invalid() {
115+
mf := s.mf
116+
s.NotNil(mf)
117+
118+
mf.Add("invalid")
119+
120+
s.Empty(mf.joinSQL.String())
121+
s.Empty(mf.whereSQL.String())
122+
s.Empty(mf.groupCols)
123+
}
124+
125+
func (s *multiFilterSuite) TestAdd_InvalidWhereTyper() {
126+
mf := s.mf
127+
s.NotNil(mf)
128+
129+
mw := NewMockWhereTyper(s.T())
130+
mw.On("Where").Return("col = ?", []any{"val"})
131+
mw.On("WhereType").Return(WhereType("invalid"))
132+
133+
mf.Add(mw)
134+
135+
s.Empty(mf.joinSQL.String())
136+
s.Equal("AND col = ?\n", mf.whereSQL.String())
137+
s.Equal([]any{"val"}, mf.whereArgs)
138+
}
139+
140+
func (s *multiFilterSuite) TestAdd_InvalidGrouper() {
141+
mf := s.mf
142+
s.NotNil(mf)
143+
144+
mf.Add("invalid")
145+
146+
s.Empty(mf.joinSQL.String())
147+
s.Empty(mf.whereSQL.String())
148+
s.Empty(mf.groupCols)
149+
}
150+
151+
func (s *multiFilterSuite) TestAdd_InvalidJoiner() {
152+
mf := s.mf
153+
s.NotNil(mf)
154+
155+
mf.Add("invalid")
156+
157+
s.Empty(mf.joinSQL.String())
158+
s.Empty(mf.whereSQL.String())
159+
s.Empty(mf.groupCols)
160+
}

vendor/github.com/stretchr/testify/require/doc.go

Lines changed: 29 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/stretchr/testify/require/forward_requirements.go

Lines changed: 16 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)