@@ -102,27 +102,46 @@ func TestDateAndSlugFromBaseFilename(t *testing.T) {
102102 date string
103103 slug string
104104 }{
105- {"page.md" , "0001-01-01" , "" },
106- {"2012-09-12-page.md" , "2012-09-12" , "page" },
107- {"2018-02-28-page.md" , "2018-02-28" , "page" },
108- {"2018-02-28_page.md" , "2018-02-28" , "page" },
109- {"2018-02-28 page.md" , "2018-02-28" , "page" },
110- {"2018-02-28page.md" , "2018-02-28" , "page" },
111- {"2018-02-28-.md" , "2018-02-28" , "" },
112- {"2018-02-28-.md" , "2018-02-28" , "" },
113- {"2018-02-28.md" , "2018-02-28" , "" },
114- {"2018-02-28-page" , "2018-02-28" , "page" },
115- {"2012-9-12-page.md" , "0001-01-01" , "" },
116- {"asdfasdf.md" , "0001-01-01" , "" },
105+ // date
106+ {"2025-07-04 page.md" , "2025-07-04T00:00:00+02:00" , "page" },
107+ {"2025-07-04-page.md" , "2025-07-04T00:00:00+02:00" , "page" },
108+ {"2025-07-04_page.md" , "2025-07-04T00:00:00+02:00" , "page" },
109+ {"2025-07-04page.md" , "2025-07-04T00:00:00+02:00" , "page" },
110+ {"2025-07-04" , "2025-07-04T00:00:00+02:00" , "" },
111+ {"2025-07-04-.md" , "2025-07-04T00:00:00+02:00" , "" },
112+ {"2025-07-04.md" , "2025-07-04T00:00:00+02:00" , "" },
113+ // date and time
114+ {"2025-07-04-22-17-13 page.md" , "2025-07-04T22:17:13+02:00" , "page" },
115+ {"2025-07-04-22-17-13-page.md" , "2025-07-04T22:17:13+02:00" , "page" },
116+ {"2025-07-04-22-17-13_page.md" , "2025-07-04T22:17:13+02:00" , "page" },
117+ {"2025-07-04-22-17-13page.md" , "2025-07-04T22:17:13+02:00" , "page" },
118+ {"2025-07-04-22-17-13" , "2025-07-04T22:17:13+02:00" , "" },
119+ {"2025-07-04-22-17-13-.md" , "2025-07-04T22:17:13+02:00" , "" },
120+ {"2025-07-04-22-17-13.md" , "2025-07-04T22:17:13+02:00" , "" },
121+ // date and time with other separators between the two
122+ {"2025-07-04T22-17-13.md" , "2025-07-04T22:17:13+02:00" , "" },
123+ {"2025-07-04 22-17-13.md" , "2025-07-04T22:17:13+02:00" , "" },
124+ // no date or time
125+ {"something.md" , "0001-01-01T00:00:00+00:00" , "" }, // 9 chars
126+ {"some-thing-.md" , "0001-01-01T00:00:00+00:00" , "" }, // 10 chars
127+ {"somethingsomething.md" , "0001-01-01T00:00:00+00:00" , "" }, // 18 chars
128+ {"something-something.md" , "0001-01-01T00:00:00+00:00" , "" }, // 19 chars
129+ {"something-something-else.md" , "0001-01-01T00:00:00+00:00" , "" }, // 27 chars
130+ // invalid
131+ {"2025-07-4-page.md" , "0001-01-01T00:00:00+00:00" , "" },
132+ {"2025-07-4-22-17-13-page.md" , "0001-01-01T00:00:00+00:00" , "" },
133+ {"asdfasdf.md" , "0001-01-01T00:00:00+00:00" , "" },
117134 }
118135
136+ location , err := time .LoadLocation ("Europe/Oslo" )
137+ if err != nil {
138+ t .Error ("Unable to determine location from given time zone" )
139+ }
119140 for _ , test := range tests {
120- expecteFDate , err := time .Parse ("2006-01-02" , test .date )
121- c .Assert (err , qt .IsNil )
122141
123- gotDate , gotSlug := dateAndSlugFromBaseFilename (time . UTC , test .name )
142+ gotDate , gotSlug := dateAndSlugFromBaseFilename (location , test .name )
124143
125- c .Assert (gotDate , qt .Equals , expecteFDate )
144+ c .Assert (gotDate . Format ( "2006-01-02T15:04:05-07:00" ) , qt .Equals , test . date )
126145 c .Assert (gotSlug , qt .Equals , test .slug )
127146
128147 }
0 commit comments