mirror of
https://github.com/abhinavxd/libredesk.git
synced 2026-09-10 14:15:42 +00:00
60 lines
1.6 KiB
Go
60 lines
1.6 KiB
Go
package main
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
)
|
|
|
|
const updatesPayload = `{
|
|
"update": {
|
|
"release_version": "v2.7.1",
|
|
"release_date": "2026-08-12",
|
|
"url": "https://github.com/abhinavxd/libredesk/releases/tag/v2.7.1",
|
|
"description": "Bug fixes and improvements."
|
|
},
|
|
"messages": []
|
|
}`
|
|
|
|
func TestFetchAppUpdateSuccess(t *testing.T) {
|
|
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
_, _ = w.Write([]byte(updatesPayload))
|
|
}))
|
|
defer srv.Close()
|
|
|
|
out, err := fetchAppUpdate(srv.Client(), srv.URL)
|
|
if err != nil {
|
|
t.Fatalf("unexpected error: %v", err)
|
|
}
|
|
if out.Update.ReleaseVersion != "v2.7.1" {
|
|
t.Fatalf("got release version %q, want v2.7.1", out.Update.ReleaseVersion)
|
|
}
|
|
if out.Update.ReleaseDate != "2026-08-12" {
|
|
t.Fatalf("got release date %q, want 2026-08-12", out.Update.ReleaseDate)
|
|
}
|
|
if out.Update.URL != "https://github.com/abhinavxd/libredesk/releases/tag/v2.7.1" {
|
|
t.Fatalf("got url %q", out.Update.URL)
|
|
}
|
|
if out.Update.Description != "Bug fixes and improvements." {
|
|
t.Fatalf("got description %q", out.Update.Description)
|
|
}
|
|
if len(out.Messages) != 0 {
|
|
t.Fatalf("got %d messages, want 0", len(out.Messages))
|
|
}
|
|
}
|
|
|
|
func TestFetchAppUpdateNon200(t *testing.T) {
|
|
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
w.WriteHeader(http.StatusInternalServerError)
|
|
}))
|
|
defer srv.Close()
|
|
|
|
out, err := fetchAppUpdate(srv.Client(), srv.URL)
|
|
if err == nil {
|
|
t.Fatal("expected an error for a non-200 status")
|
|
}
|
|
if out != nil {
|
|
t.Fatalf("expected nil result on error, got %+v", out)
|
|
}
|
|
}
|