44 lines
1.2 KiB
Go
44 lines
1.2 KiB
Go
package spc
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestParseRSSFeed(t *testing.T) {
|
|
const raw = `<?xml version="1.0"?>
|
|
<rss version="2.0">
|
|
<channel>
|
|
<title>SPC AC RSS</title>
|
|
<link>https://www.spc.noaa.gov/products/</link>
|
|
<description>SPC products</description>
|
|
<lastBuildDate>Thu, 11 Jun 2026 19:00:00 +0000</lastBuildDate>
|
|
<item>
|
|
<title>Day 1 Convective Outlook</title>
|
|
<link>https://www.spc.noaa.gov/products/outlook/day1otlk.html</link>
|
|
<description>Outlook text</description>
|
|
<pubDate>Thu, 11 Jun 2026 18:55:00 +0000</pubDate>
|
|
<guid>day1</guid>
|
|
</item>
|
|
</channel>
|
|
</rss>`
|
|
|
|
got, err := ParseRSSFeed(raw)
|
|
if err != nil {
|
|
t.Fatalf("ParseRSSFeed() error = %v", err)
|
|
}
|
|
if got.Title != "SPC AC RSS" {
|
|
t.Fatalf("Title = %q", got.Title)
|
|
}
|
|
wantBuild := time.Date(2026, 6, 11, 19, 0, 0, 0, time.UTC)
|
|
if got.LastBuildDate == nil || !got.LastBuildDate.Equal(wantBuild) {
|
|
t.Fatalf("LastBuildDate = %v, want %s", got.LastBuildDate, wantBuild)
|
|
}
|
|
if len(got.Items) != 1 {
|
|
t.Fatalf("Items length = %d, want 1", len(got.Items))
|
|
}
|
|
if got.Items[0].GUID != "day1" {
|
|
t.Fatalf("Item GUID = %q", got.Items[0].GUID)
|
|
}
|
|
}
|