blob: 1e95306a8f212c7c5c1111218c9748c21a692e34 [file] [log] [blame]
package calendar
import (
"fmt"
"testing"
"time"
)
func TestWarsawDate(t *testing.T) {
makeTime := func(s string) EventTime {
t.Helper()
warsaw, err := time.LoadLocation("Europe/Warsaw")
if err != nil {
t.Fatalf("could not get Warsaw timezone: %v", err)
}
ti, err := time.ParseInLocation("2006/01/02 15:04", s, warsaw)
if err != nil {
t.Fatal("could not parse test time %q: %v", s, err)
}
return EventTime{
Time: ti,
}
}
makeDay := func(s string) EventTime {
t.Helper()
ti, err := time.Parse("2006/01/02", s)
if err != nil {
t.Fatal("could not parse test day %q: %v", s, err)
}
return EventTime{
Time: ti,
WholeDay: true,
}
}
for i, te := range []struct {
start EventTime
end EventTime
want string
}{
{
makeTime("2021/03/14 13:37"), makeTime("2021/04/20 21:37"),
"2021/03/14 13:37 - 2021/04/20 21:37",
},
{
makeTime("2021/04/20 13:37"), makeTime("2021/04/20 21:37"),
"2021/04/20 13:37 - 21:37",
},
{
makeDay("2021/06/01"), makeDay("2021/07/01"),
"2021/06/01 - 30",
},
{
makeDay("2021/03/14"), makeDay("2021/04/21"),
"2021/03/14 - 2021/04/20",
},
{
makeDay("2021/04/20"), makeDay("2021/04/21"),
"2021/04/20",
},
} {
te := te
t.Run(fmt.Sprintf("%d", i), func(t *testing.T) {
ev := UpcomingEvent{
Start: &te.start,
End: &te.end,
}
got := ev.WarsawDate()
if got != te.want {
t.Fatalf("wanted %q, got %q", te.want, got)
}
})
}
}