Skip to content

Commit 1d5a5bc

Browse files
committed
refactor(tests): use a separate database webhookx_test for test
1 parent 43005d4 commit 1d5a5bc

File tree

17 files changed

+154
-131
lines changed

17 files changed

+154
-131
lines changed

db/db.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,3 +120,7 @@ func (db *DB) Truncate(table string) error {
120120
_, err := db.DB.Exec(sql)
121121
return err
122122
}
123+
124+
func (db *DB) SqlDB() *sql.DB {
125+
return db.DB.DB
126+
}

test/accesslog/accesslog_test.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ var _ = Describe("access_log", Ordered, func() {
8080
}
8181
helper.InitDB(true, &entitiesConfig)
8282
app = utils.Must(helper.Start(map[string]string{
83-
"NO_COLOR": "true",
8483
"WEBHOOKX_ACCESS_LOG_FILE": "webhookx-access.log",
8584
}))
8685
adminClient = helper.AdminClient()
@@ -164,7 +163,6 @@ var _ = Describe("access_log", Ordered, func() {
164163
}
165164
helper.InitDB(true, &entitiesConfig)
166165
app = utils.Must(helper.Start(map[string]string{
167-
"NO_COLOR": "true",
168166
"WEBHOOKX_ACCESS_LOG_FORMAT": "json",
169167
"WEBHOOKX_ACCESS_LOG_FILE": "webhookx-access.log",
170168
}))

test/anonymous/anonymous_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ var _ = Describe("anonymous reports", Ordered, func() {
1818
BeforeAll(func() {
1919
helper.InitDB(true, nil)
2020
app = utils.Must(helper.Start(map[string]string{
21-
"ANONYMOUS_REPORTS": "false",
21+
"WEBHOOKX_ANONYMOUS_REPORTS": "false",
2222
}))
2323
})
2424

@@ -27,7 +27,7 @@ var _ = Describe("anonymous reports", Ordered, func() {
2727
})
2828

2929
It("should display log when anonymous_reports is disabled", func() {
30-
matched, err := helper.FileHasLine("webhookx.log", "^.*anonymous reports is disabled$")
30+
matched, err := helper.FileHasLine(helper.LogFile, "^.*anonymous reports is disabled$")
3131
assert.Nil(GinkgoT(), err)
3232
assert.Equal(GinkgoT(), true, matched)
3333
})

test/cmd/admin_test.go

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import (
77
"github.com/stretchr/testify/assert"
88
"github.com/stretchr/testify/require"
99
"github.com/webhookx-io/webhookx/app"
10-
"github.com/webhookx-io/webhookx/cmd"
1110
"github.com/webhookx-io/webhookx/db"
1211
"github.com/webhookx-io/webhookx/plugins/webhookx_signature"
1312
"github.com/webhookx-io/webhookx/test/helper"
@@ -55,7 +54,7 @@ var _ = Describe("admin", Ordered, func() {
5554
})
5655

5756
It("sanity", func() {
58-
output, err := executeCommand(cmd.NewRootCmd(), "admin", "sync", "../fixtures/webhookx.yml")
57+
output, err := executeCommand("admin", "sync", "../fixtures/webhookx.yml", "--addr", helper.AdminHttpURL)
5958
assert.Nil(GinkgoT(), err)
6059
assert.Equal(GinkgoT(), "sync successfully\n", output)
6160

@@ -109,7 +108,7 @@ var _ = Describe("admin", Ordered, func() {
109108
err = db.Sources.Insert(context.TODO(), &source)
110109
assert.NoError(GinkgoT(), err)
111110

112-
_, err = executeCommand(cmd.NewRootCmd(), "admin", "sync", "../fixtures/webhookx.yml")
111+
_, err = executeCommand("admin", "sync", "../fixtures/webhookx.yml", "--addr", helper.AdminHttpURL)
113112
assert.Nil(GinkgoT(), err)
114113

115114
dbEndpoint, err := db.Endpoints.Get(context.TODO(), endpoint.ID)
@@ -122,14 +121,14 @@ var _ = Describe("admin", Ordered, func() {
122121
})
123122

124123
It("entities id should not be changed after multiple syncs", func() {
125-
_, err := executeCommand(cmd.NewRootCmd(), "admin", "sync", "../fixtures/webhookx.yml")
124+
_, err := executeCommand("admin", "sync", "../fixtures/webhookx.yml", "--addr", helper.AdminHttpURL)
126125
assert.Nil(GinkgoT(), err)
127126

128127
endpoint1, err := db.Endpoints.Select(context.TODO(), "name", "default-endpoint")
129128
assert.NoError(GinkgoT(), err)
130129
assert.NotNil(GinkgoT(), endpoint1)
131130

132-
_, err = executeCommand(cmd.NewRootCmd(), "admin", "sync", "../fixtures/webhookx.yml")
131+
_, err = executeCommand("admin", "sync", "../fixtures/webhookx.yml", "--addr", helper.AdminHttpURL)
133132
assert.Nil(GinkgoT(), err)
134133

135134
endpoint2, err := db.Endpoints.Select(context.TODO(), "name", "default-endpoint")
@@ -141,17 +140,17 @@ var _ = Describe("admin", Ordered, func() {
141140

142141
Context("errors", func() {
143142
It("missing filename", func() {
144-
output, err := executeCommand(cmd.NewRootCmd(), "admin", "sync")
143+
output, err := executeCommand("admin", "sync", "--addr", helper.AdminHttpURL)
145144
assert.NotNil(GinkgoT(), err)
146145
assert.Equal(GinkgoT(), "Error: accepts 1 arg(s), received 0\n", output)
147146
})
148147
It("invalid filename", func() {
149-
output, err := executeCommand(cmd.NewRootCmd(), "admin", "sync", "unknown.yaml")
148+
output, err := executeCommand("admin", "sync", "unknown.yaml", "--addr", helper.AdminHttpURL)
150149
assert.NotNil(GinkgoT(), err)
151150
assert.Equal(GinkgoT(), "Error: open unknown.yaml: no such file or directory\n", output)
152151
})
153152
It("invalid yaml", func() {
154-
output, err := executeCommand(cmd.NewRootCmd(), "admin", "sync", "../fixtures/invalid_webhookx.yml")
153+
output, err := executeCommand("admin", "sync", "../fixtures/invalid_webhookx.yml", "--addr", helper.AdminHttpURL)
155154
assert.NotNil(GinkgoT(), err)
156155
assert.Equal(GinkgoT(), "Error: invalid status code: 400 {\"message\":\"malformed yaml content: yaml: unmarshal errors:\\n line 1: cannot unmarshal !!str `webhook...` into map[string]interface {}\"}\n", output)
157156
})
@@ -163,7 +162,7 @@ var _ = Describe("admin", Ordered, func() {
163162
server := startHTTP(func(writer http.ResponseWriter, r *http.Request) {
164163
time.Sleep(time.Second * 2)
165164
}, ":9601")
166-
output, err := executeCommand(cmd.NewRootCmd(), "admin", "sync", "../fixtures/webhookx.yml", "--timeout", "1")
165+
output, err := executeCommand("admin", "sync", "../fixtures/webhookx.yml", "--timeout", "1")
167166
assert.NotNil(GinkgoT(), err)
168167
assert.Equal(GinkgoT(), "Error: Post \"http://localhost:9601/workspaces/default/config/sync\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)\n", output)
169168
assert.Nil(GinkgoT(), server.Shutdown(context.TODO()))
@@ -174,7 +173,7 @@ var _ = Describe("admin", Ordered, func() {
174173
server := startHTTP(func(writer http.ResponseWriter, r *http.Request) {
175174
url = fullURL(r)
176175
}, "127.0.0.1:9601")
177-
output, err := executeCommand(cmd.NewRootCmd(), "admin", "sync", "../fixtures/webhookx.yml", "--workspace", "foo")
176+
output, err := executeCommand("admin", "sync", "../fixtures/webhookx.yml", "--workspace", "foo")
178177
assert.Nil(GinkgoT(), err)
179178
assert.Equal(GinkgoT(), "sync successfully\n", output)
180179
assert.Equal(GinkgoT(), "http://localhost:9601/workspaces/foo/config/sync", url)
@@ -187,7 +186,7 @@ var _ = Describe("admin", Ordered, func() {
187186
server := startHTTP(func(writer http.ResponseWriter, r *http.Request) {
188187
url = fullURL(r)
189188
}, "127.0.0.1:8888")
190-
output, err := executeCommand(cmd.NewRootCmd(), "admin", "sync", "../fixtures/webhookx.yml", "--addr", "http://localhost:8888")
189+
output, err := executeCommand("admin", "sync", "../fixtures/webhookx.yml", "--addr", "http://localhost:8888")
191190
assert.Nil(GinkgoT(), err)
192191
assert.Equal(GinkgoT(), "sync successfully\n", output)
193192
assert.Equal(GinkgoT(), "http://localhost:8888/workspaces/default/config/sync", url)
@@ -235,7 +234,7 @@ var _ = Describe("admin", Ordered, func() {
235234
factory.WithPluginMetadata(map[string]string{"k": "v"}))
236235
assert.NoError(GinkgoT(), db.Plugins.Insert(context.TODO(), &plugin))
237236

238-
output, err := executeCommand(cmd.NewRootCmd(), "admin", "dump")
237+
output, err := executeCommand("admin", "dump", "--addr", helper.AdminHttpURL)
239238
assert.Nil(GinkgoT(), err)
240239
expected, err := os.ReadFile("testdata/dump.yml")
241240
require.NoError(GinkgoT(), err)

test/cmd/db_test.go

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package cmd
22

33
import (
4+
"fmt"
45
. "github.com/onsi/ginkgo/v2"
56
"github.com/stretchr/testify/assert"
6-
"github.com/webhookx-io/webhookx/cmd"
77
"github.com/webhookx-io/webhookx/db/migrator"
88
"github.com/webhookx-io/webhookx/test/helper"
99
)
@@ -48,18 +48,21 @@ var _ = Describe("db", Ordered, func() {
4848

4949
var m *migrator.Migrator
5050
BeforeAll(func() {
51-
m = migrator.New(helper.DB().DB.DB, nil)
51+
cfg, err := helper.NewConfig(nil)
52+
assert.NoError(GinkgoT(), err)
53+
m = migrator.New(helper.NewDB(cfg).SqlDB(), nil)
5254
})
5355

5456
Context("status", func() {
5557
It("sanity", func() {
5658
assert.Nil(GinkgoT(), m.Reset())
57-
output, err := executeCommand(cmd.NewRootCmd(), "db", "status")
59+
output, err := executeCommand("db", "status")
60+
fmt.Println(output)
5861
assert.Nil(GinkgoT(), err)
5962
assert.Equal(GinkgoT(), statusOutputInit, output)
6063

6164
assert.Nil(GinkgoT(), m.Up())
62-
output, err = executeCommand(cmd.NewRootCmd(), "db", "status")
65+
output, err = executeCommand("db", "status")
6366
assert.Nil(GinkgoT(), err)
6467
assert.Equal(GinkgoT(), statusOutputDone, output)
6568
})
@@ -68,26 +71,26 @@ var _ = Describe("db", Ordered, func() {
6871
Context("up", func() {
6972
It("sanity", func() {
7073
assert.Nil(GinkgoT(), m.Reset())
71-
output, err := executeCommand(cmd.NewRootCmd(), "db", "up")
74+
output, err := executeCommand("db", "up")
7275
assert.Nil(GinkgoT(), err)
7376
assert.Equal(GinkgoT(), "database is up-to-date\n", output)
7477

7578
// runs up again
76-
output, err = executeCommand(cmd.NewRootCmd(), "db", "up")
79+
output, err = executeCommand("db", "up")
7780
assert.Nil(GinkgoT(), err)
7881
assert.Equal(GinkgoT(), "database is up-to-date\n", output)
7982
})
8083
})
8184

8285
Context("reset", func() {
8386
It("with --yes flag", func() {
84-
output, err := executeCommand(cmd.NewRootCmd(), "db", "reset", "--yes")
87+
output, err := executeCommand("db", "reset", "--yes")
8588
assert.Nil(GinkgoT(), err)
8689
assert.Equal(GinkgoT(), "resetting database...\ndatabase successfully reset\n", output)
8790
})
8891

8992
It("without --yes flag", func() {
90-
output, err := executeCommand(cmd.NewRootCmd(), "db", "reset")
93+
output, err := executeCommand("db", "reset")
9194
assert.NotNil(GinkgoT(), err)
9295
assert.Equal(GinkgoT(), "canceled", err.Error())
9396
assert.Equal(GinkgoT(), "> Are you sure? This operation is irreversible. [Y/N] Error: canceled\n", output)

test/cmd/ginkgo_test.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,21 @@ import (
44
"bytes"
55
. "github.com/onsi/ginkgo/v2"
66
. "github.com/onsi/gomega"
7-
"github.com/spf13/cobra"
7+
"github.com/webhookx-io/webhookx/cmd"
8+
"github.com/webhookx-io/webhookx/test/helper"
89
"testing"
910
)
1011

11-
func executeCommand(root *cobra.Command, args ...string) (output string, err error) {
12+
func executeCommand(args ...string) (output string, err error) {
13+
helper.SetEnvironments(helper.Environments)
14+
defer helper.ClearEnvironments(helper.Environments)
15+
root := cmd.NewRootCmd()
1216
buf := new(bytes.Buffer)
1317
root.SetOut(buf)
1418
root.SetErr(buf)
1519
root.SetArgs(args)
1620

17-
_, err = root.ExecuteC()
21+
err = root.Execute()
1822
return buf.String(), err
1923
}
2024

test/cmd/version_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,11 @@ package cmd
33
import (
44
. "github.com/onsi/ginkgo/v2"
55
"github.com/stretchr/testify/assert"
6-
"github.com/webhookx-io/webhookx/cmd"
76
)
87

98
var _ = Describe("version", Ordered, func() {
109
It("outputs version", func() {
11-
output, err := executeCommand(cmd.NewRootCmd(), "version")
10+
output, err := executeCommand("version")
1211
assert.Nil(GinkgoT(), err)
1312
assert.Equal(GinkgoT(), "WebhookX dev (unknown)\n", output)
1413
})

test/delivery/acl_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ var _ = Describe("network acl", Ordered, func() {
7777
})
7878

7979
It("request denied", func() {
80-
err := helper.WaitForServer("0.0.0.0:9600", time.Second)
80+
err := helper.WaitForServer(helper.ProxyHttpURL, time.Second)
8181
assert.NoError(GinkgoT(), err)
8282

8383
resp, err := proxyClient.R().
@@ -113,7 +113,7 @@ var _ = Describe("network acl", Ordered, func() {
113113
})
114114

115115
It("request denied by hostname", func() {
116-
err := helper.WaitForServer("0.0.0.0:9600", time.Second)
116+
err := helper.WaitForServer(helper.ProxyHttpURL, time.Second)
117117
assert.NoError(GinkgoT(), err)
118118

119119
resp, err := proxyClient.R().
@@ -142,7 +142,7 @@ var _ = Describe("network acl", Ordered, func() {
142142
})
143143

144144
It("request denied by unicode hostname", func() {
145-
err := helper.WaitForServer("0.0.0.0:9600", time.Second)
145+
err := helper.WaitForServer(helper.ProxyHttpURL, time.Second)
146146
assert.NoError(GinkgoT(), err)
147147

148148
resp, err := proxyClient.R().
@@ -171,7 +171,7 @@ var _ = Describe("network acl", Ordered, func() {
171171
})
172172

173173
It("request denied by ip resolved by dns", func() {
174-
err := helper.WaitForServer("0.0.0.0:9600", time.Second)
174+
err := helper.WaitForServer(helper.ProxyHttpURL, time.Second)
175175
assert.NoError(GinkgoT(), err)
176176

177177
resp, err := proxyClient.R().

test/delivery/delivery_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ var _ = Describe("delivery", Ordered, func() {
5252
})
5353

5454
It("sanity", func() {
55-
err := helper.WaitForServer("0.0.0.0:9600", time.Second)
55+
err := helper.WaitForServer(helper.ProxyHttpURL, time.Second)
5656
assert.NoError(GinkgoT(), err)
5757
now := time.Now()
5858

@@ -139,7 +139,7 @@ var _ = Describe("delivery", Ordered, func() {
139139
})
140140

141141
It("all tries are exhausted", func() {
142-
err := helper.WaitForServer("0.0.0.0:9600", time.Second)
142+
err := helper.WaitForServer(helper.ProxyHttpURL, time.Second)
143143
assert.NoError(GinkgoT(), err)
144144

145145
resp, err := proxyClient.R().
@@ -333,7 +333,7 @@ var _ = Describe("delivery", Ordered, func() {
333333
})
334334

335335
It("rate limiting", func() {
336-
err := helper.WaitForServer("0.0.0.0:9600", time.Second)
336+
err := helper.WaitForServer(helper.ProxyHttpURL, time.Second)
337337
assert.NoError(GinkgoT(), err)
338338

339339
for i := 1; i <= 4; i++ {
@@ -345,7 +345,7 @@ var _ = Describe("delivery", Ordered, func() {
345345
}
346346

347347
assert.Eventually(GinkgoT(), func() bool {
348-
matched, err := helper.FileHasLine("webhookx.log", "^.*rate limit.*$")
348+
matched, err := helper.FileHasLine(helper.LogFile, "^.*rate limit.*$")
349349
return err == nil && matched
350350
}, time.Second*5, time.Second)
351351

@@ -385,7 +385,7 @@ var _ = Describe("delivery", Ordered, func() {
385385
})
386386

387387
It("should de-duplicate events by unique_id", func() {
388-
err := helper.WaitForServer("0.0.0.0:9600", time.Second)
388+
err := helper.WaitForServer(helper.ProxyHttpURL, time.Second)
389389
assert.NoError(GinkgoT(), err)
390390
for i := 1; i <= 2; i++ {
391391
resp, err := proxyClient.R().

test/delivery/http_proxy_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ var _ = Describe("Proxy", Ordered, func() {
145145
})
146146

147147
It("http delivery request should be proxied", func() {
148-
err := helper.WaitForServer("0.0.0.0:9600", time.Second)
148+
err := helper.WaitForServer(helper.ProxyHttpURL, time.Second)
149149
assert.NoError(GinkgoT(), err)
150150

151151
resp, err := proxyClient.R().
@@ -192,7 +192,7 @@ var _ = Describe("Proxy", Ordered, func() {
192192
})
193193

194194
It("https delivery request should be proxied", func() {
195-
err := helper.WaitForServer("0.0.0.0:9600", time.Second)
195+
err := helper.WaitForServer(helper.ProxyHttpURL, time.Second)
196196
assert.NoError(GinkgoT(), err)
197197

198198
resp, err := proxyClient.R().
@@ -238,7 +238,7 @@ var _ = Describe("Proxy", Ordered, func() {
238238
})
239239

240240
It("should be failed when connect ", func() {
241-
err := helper.WaitForServer("0.0.0.0:9600", time.Second)
241+
err := helper.WaitForServer(helper.ProxyHttpURL, time.Second)
242242
assert.NoError(GinkgoT(), err)
243243

244244
resp, err := proxyClient.R().
@@ -306,7 +306,7 @@ var _ = Describe("Proxy", Ordered, func() {
306306
})
307307

308308
It("http delivery request should be proxied", func() {
309-
err := helper.WaitForServer("0.0.0.0:9600", time.Second)
309+
err := helper.WaitForServer(helper.ProxyHttpURL, time.Second)
310310
assert.NoError(GinkgoT(), err)
311311

312312
resp, err := proxyClient.R().
@@ -352,7 +352,7 @@ var _ = Describe("Proxy", Ordered, func() {
352352
})
353353

354354
It("https delivery request should be proxied", func() {
355-
err := helper.WaitForServer("0.0.0.0:9600", time.Second)
355+
err := helper.WaitForServer(helper.ProxyHttpURL, time.Second)
356356
assert.NoError(GinkgoT(), err)
357357

358358
resp, err := proxyClient.R().
@@ -437,7 +437,7 @@ var _ = Describe("Proxy", Ordered, func() {
437437
})
438438

439439
It("http delivery request should be proxied", func() {
440-
err := helper.WaitForServer("0.0.0.0:9600", time.Second)
440+
err := helper.WaitForServer(helper.ProxyHttpURL, time.Second)
441441
assert.NoError(GinkgoT(), err)
442442

443443
resp, err := proxyClient.R().
@@ -483,7 +483,7 @@ var _ = Describe("Proxy", Ordered, func() {
483483
})
484484

485485
It("https delivery request should be proxied", func() {
486-
err := helper.WaitForServer("0.0.0.0:9600", time.Second)
486+
err := helper.WaitForServer(helper.ProxyHttpURL, time.Second)
487487
assert.NoError(GinkgoT(), err)
488488

489489
resp, err := proxyClient.R().

0 commit comments

Comments
 (0)