| package calendar |
| |
| import ( |
| "os" |
| "testing" |
| "time" |
| |
| "github.com/google/go-cmp/cmp" |
| ) |
| |
| func TestUpcomingEvents(t *testing.T) { |
| r, err := os.Open("test.ical") |
| if err != nil { |
| t.Fatalf("Could not open test ical: %v", err) |
| } |
| ti := time.Unix(1626011785, 0) |
| |
| events, err := parseUpcomingEvents(ti, r) |
| if err != nil { |
| t.Fatalf("getUpcomingEvents: %v", err) |
| } |
| |
| want := []*UpcomingEvent{ |
| { |
| UID: "65cd51ba-2fd7-475e-a274-61d19c186b66", |
| Summary: "test event please ignore", |
| Description: "I am a description", |
| Start: &EventTime{ |
| Time: time.Unix(1626091200, 0), |
| }, |
| End: &EventTime{ |
| Time: time.Unix(1626093000, 0), |
| }, |
| }, |
| { |
| UID: "2f874784-1e09-4cdc-8ae6-185c9ee36be0", |
| Summary: "many days", |
| Description: "I am a multiline\n\ndescription\n\nwith a link: https://example.com/foo\n\nbarfoo", |
| Start: &EventTime{ |
| Time: time.Unix(1626134400, 0), |
| WholeDay: true, |
| }, |
| End: &EventTime{ |
| Time: time.Unix(1626393600, 0), |
| WholeDay: true, |
| }, |
| }, |
| } |
| |
| if diff := cmp.Diff(events, want); diff != "" { |
| t.Errorf("%s", diff) |
| } |
| } |