All checks were successful
release-tag / release-image (push) Successful in 1m33s
27 lines
897 B
Go
27 lines
897 B
Go
package web
|
|
|
|
import "testing"
|
|
|
|
func TestExtractTicketID(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
body string
|
|
want int64
|
|
}{
|
|
{name: "explicit ticket id", body: `{"ticket_id":42}`, want: 42},
|
|
{name: "camel case ticket id", body: `{"ticketId":"43"}`, want: 43},
|
|
{name: "typed ticket", body: `{"itemtype":"Ticket","id":44}`, want: 44},
|
|
{name: "nested ticket", body: `{"ticket":{"id":45}}`, want: 45},
|
|
{name: "ticket url", body: `{"url":"https://glpi.example/api.php/v2.3/Assistance/Ticket/46"}`, want: 46},
|
|
{name: "unrelated generic id", body: `{"itemtype":"User","id":99}`, want: 0},
|
|
{name: "wrapped unrelated generic id", body: `{"data":{"id":100}}`, want: 0},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := extractTicketID([]byte(tt.body)); got != tt.want {
|
|
t.Fatalf("extractTicketID() = %d, want %d", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|