Files
commerce/test/api/webhook/webhook_test.go
zeekay 1943f1c093 Hanzo Commerce
Multi-tenant commerce and billing: orders, subscriptions, invoices, plans,
usage metering and a credit ledger. One Go binary. MIT OR Apache-2.0.

Claude-Session: https://claude.ai/code/session_01SAtaDFm8VDiWrhYHNNtxMw
2026-09-23 21:52:16 -07:00

123 lines
2.4 KiB
Go

package test
import (
"github.com/hanzoai/commerce/models/webhook"
"github.com/icrowley/fake"
. "github.com/hanzoai/commerce/util/test/ginkgo"
)
var _ = Describe("webhook", func() {
Context("New webhook", func() {
req := new(webhook.Webhook)
res := new(webhook.Webhook)
Before(func() {
req = webhook.Fake(db)
res = webhook.New(db)
// Create new webhook
cl.Post("/webhook", req, res)
})
It("Should create new webhooks", func() {
Expect(res.Enabled).To(Equal(req.Enabled))
Expect(res.Url).To(Equal(req.Url))
Expect(res.Live).To(Equal(req.Live))
Expect(res.All).To(Equal(req.All))
})
})
Context("Get webhook", func() {
req := new(webhook.Webhook)
res := new(webhook.Webhook)
Before(func() {
req = webhook.Fake(db)
req.MustCreate()
res = webhook.New(db)
cl.Get("/webhook/"+req.Id(), res)
})
It("Should get webhooks", func() {
Expect(res.Enabled).To(Equal(req.Enabled))
Expect(res.Url).To(Equal(req.Url))
Expect(res.Live).To(Equal(req.Live))
Expect(res.All).To(Equal(req.All))
})
})
Context("Patch webhook", func() {
wh := new(webhook.Webhook)
res := new(webhook.Webhook)
req := struct {
Url string `json:"url"`
}{
fake.DomainName(),
}
Before(func() {
// Save webhook
wh = webhook.Fake(db)
wh.MustCreate()
// Patch webhook
cl.Patch("/webhook/"+wh.Id(), req, res)
})
It("Should patch webhook", func() {
Expect(res.Id_).To(Equal(wh.Id()))
Expect(res.Enabled).To(Equal(wh.Enabled))
Expect(res.Url).To(Equal(req.Url))
Expect(res.Live).To(Equal(wh.Live))
Expect(res.All).To(Equal(wh.All))
})
})
Context("Put webhook", func() {
wh := new(webhook.Webhook)
res := new(webhook.Webhook)
req := new(webhook.Webhook)
Before(func() {
// Save webhook
wh = webhook.Fake(db)
wh.MustCreate()
req = webhook.Fake(db)
// Put webhook
cl.Put("/webhook/"+wh.Id(), req, res)
})
It("Should put webhook", func() {
Expect(res.Id_).To(Equal(wh.Id()))
Expect(res.Enabled).To(Equal(req.Enabled))
Expect(res.Url).To(Equal(req.Url))
Expect(res.Live).To(Equal(req.Live))
Expect(res.All).To(Equal(req.All))
})
})
Context("Delete webhook", func() {
res := ""
Before(func() {
req := webhook.Fake(db)
req.MustCreate()
cl.Delete("/webhook/" + req.Id())
res = req.Id()
})
It("Should delete webhooks", func() {
hook := webhook.New(db)
err := hook.GetById(res)
Expect(err).ToNot(BeNil())
})
})
})