2026-01-15 15:30:43 +00:00
|
|
|
package updater_test
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"fmt"
|
|
|
|
|
"log"
|
|
|
|
|
|
2026-02-16 14:45:06 +00:00
|
|
|
"forge.lthn.ai/core/cli/cmd/updater"
|
2026-01-15 15:30:43 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
}
|