From de96851d8eb0a0b45d7bf0cee67339fea54349f0 Mon Sep 17 00:00:00 2001 From: Adam Mathes Date: Thu, 12 Feb 2026 21:35:46 -0800 Subject: wip: tui updates (buggy) --- models/feed/feed.go | 9 +++++---- models/feed/feed_test.go | 35 ++++++++++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 5 deletions(-) (limited to 'models/feed') diff --git a/models/feed/feed.go b/models/feed/feed.go index e2730c7..b0f7c69 100644 --- a/models/feed/feed.go +++ b/models/feed/feed.go @@ -1,10 +1,11 @@ package feed import ( - "adammathes.com/neko/models" - "github.com/PuerkitoBio/goquery" "log" "net/http" + + "adammathes.com/neko/models" + "github.com/PuerkitoBio/goquery" ) type Feed struct { @@ -103,8 +104,8 @@ func (f *Feed) ByUrl(url string) error { } func (f *Feed) Create() error { - res, err := models.DB.Exec(`INSERT INTO feed(url, title) - VALUES(?, ?)`, f.Url, f.Title) + res, err := models.DB.Exec(`INSERT INTO feed(url, title, category) + VALUES(?, ?, ?)`, f.Url, f.Title, f.Category) if err != nil { return err } diff --git a/models/feed/feed_test.go b/models/feed/feed_test.go index d02916a..715a705 100644 --- a/models/feed/feed_test.go +++ b/models/feed/feed_test.go @@ -3,6 +3,7 @@ package feed import ( "net/http" "net/http/httptest" + "path/filepath" "testing" "adammathes.com/neko/config" @@ -11,7 +12,7 @@ import ( func setupTestDB(t *testing.T) { t.Helper() - config.Config.DBFile = ":memory:" + config.Config.DBFile = filepath.Join(t.TempDir(), "test.db") models.InitDB() t.Cleanup(func() { if models.DB != nil { @@ -409,3 +410,35 @@ func TestCategoriesEmpty(t *testing.T) { t.Errorf("Should have 0 categories on empty DB, got %d", len(cats)) } } + +func TestResolveFeedURLRelativePaths(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "text/html") + w.WriteHeader(200) + w.Write([]byte(``)) + })) + defer ts.Close() + + result := ResolveFeedURL(ts.URL) + if result != ts.URL+"/rss.xml" { + t.Errorf("Expected joined relative URL, got %q", result) + } +} + +func TestResolveFeedURLMultipleLinks(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "text/html") + w.WriteHeader(200) + w.Write([]byte(` + + + `)) + })) + defer ts.Close() + + result := ResolveFeedURL(ts.URL) + // it should pick the first matched one or whichever type is handled first in the code + if result != "http://example.com/atom.xml" && result != "http://example.com/rss.xml" { + t.Errorf("Expected one of the discovered feed URLs, got %q", result) + } +} -- cgit v1.2.3