go-update/service_examples_test.go
Snider 32867f2d97 feat: go-update self-updater package
Extracted from core/cli cmd/updater. Provides GitHub/Forgejo release
checking, binary self-update, and CLI command registration.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 21:38:20 +00:00

42 lines
1.1 KiB
Go

package updater_test
import (
"fmt"
"log"
updater "forge.lthn.ai/core/go-update"
)
func ExampleNewUpdateService() {
// Mock the update check functions to prevent actual updates during tests
updater.CheckForUpdates = func(owner, repo, channel string, forceSemVerPrefix bool, releaseURLFormat string) error {
fmt.Println("CheckForUpdates called")
return nil
}
defer func() {
updater.CheckForUpdates = nil // Restore original function
}()
config := updater.UpdateServiceConfig{
RepoURL: "https://github.com/owner/repo",
Channel: "stable",
CheckOnStartup: updater.CheckAndUpdateOnStartup,
}
updateService, err := updater.NewUpdateService(config)
if err != nil {
log.Fatalf("Failed to create update service: %v", err)
}
if err := updateService.Start(); err != nil {
log.Printf("Update check failed: %v", err)
}
// Output: CheckForUpdates called
}
func ExampleParseRepoURL() {
owner, repo, err := updater.ParseRepoURL("https://github.com/owner/repo")
if err != nil {
log.Fatalf("Failed to parse repo URL: %v", err)
}
fmt.Printf("Owner: %s, Repo: %s", owner, repo)
// Output: Owner: owner, Repo: repo
}