mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender.git
synced 2025-07-24 05:28:49 +02:00
fix:#32 added test for different uid
This commit is contained in:
@ -1,7 +1,20 @@
|
|||||||
package time
|
package time
|
||||||
|
|
||||||
import "time"
|
import (
|
||||||
|
"github.com/pocketbase/pocketbase/tools/types"
|
||||||
|
"log/slog"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
func ParseTime(timeString string) (time.Time, error) {
|
func ParseTime(timeString string) (time.Time, error) {
|
||||||
return time.Parse("2006-01-02T15:04:05Z", timeString)
|
return time.Parse("2006-01-02T15:04:05Z", timeString)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ParseAsTypesDatetime(time time.Time) types.DateTime {
|
||||||
|
dateTime, err := types.ParseDateTime(time)
|
||||||
|
if err != nil {
|
||||||
|
slog.Error("Failed to parse time as types.DateTime: %v", err)
|
||||||
|
return types.DateTime{}
|
||||||
|
}
|
||||||
|
return dateTime
|
||||||
|
}
|
||||||
|
@ -103,6 +103,118 @@ func TestIcalModel_EmitICal(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "Test Similar Events like Sport Courses",
|
||||||
|
fields: fields{
|
||||||
|
Events: model.Events{
|
||||||
|
{
|
||||||
|
UUID: "123",
|
||||||
|
Name: "Test",
|
||||||
|
Course: "Test",
|
||||||
|
EventType: "Test",
|
||||||
|
Notes: "Test",
|
||||||
|
Prof: "Test",
|
||||||
|
Rooms: "ZU430",
|
||||||
|
BookedAt: "Test",
|
||||||
|
Start: mockTime.ParseAsTypesDatetime(time.Date(2023, 12, 1, 0, 0, 0, 0, time.UTC)),
|
||||||
|
End: mockTime.ParseAsTypesDatetime(time.Date(2023, 12, 1, 1, 0, 0, 0, time.UTC)),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
UUID: "123",
|
||||||
|
Name: "Test",
|
||||||
|
Course: "Test",
|
||||||
|
EventType: "Test",
|
||||||
|
Notes: "Test",
|
||||||
|
Prof: "Test",
|
||||||
|
Rooms: "ZU221",
|
||||||
|
BookedAt: "Test",
|
||||||
|
Start: mockTime.ParseAsTypesDatetime(time.Date(2023, 12, 1, 0, 0, 0, 0, time.UTC)),
|
||||||
|
End: mockTime.ParseAsTypesDatetime(time.Date(2023, 12, 1, 1, 0, 0, 0, time.UTC)),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Mapping: map[string]model.FeedCollection{
|
||||||
|
"123": {
|
||||||
|
UUID: "123",
|
||||||
|
Name: "Test",
|
||||||
|
Course: "Test",
|
||||||
|
UserDefinedName: "UserDefinedName",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
want: &goics.Component{
|
||||||
|
Tipo: "VCALENDAR",
|
||||||
|
Elements: []goics.Componenter{
|
||||||
|
&goics.Component{
|
||||||
|
Tipo: "VTIMEZONE",
|
||||||
|
Elements: []goics.Componenter{
|
||||||
|
&HtwkalenderComponent{
|
||||||
|
Component: &goics.Component{
|
||||||
|
Tipo: "STANDARD",
|
||||||
|
Elements: []goics.Componenter{},
|
||||||
|
Properties: map[string][]string{
|
||||||
|
"DTSTART": {"19701025T030000"},
|
||||||
|
"RRULE": {"FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU"},
|
||||||
|
"TZOFFSETFROM": {"+0200"},
|
||||||
|
"TZOFFSETTO": {"+0100"},
|
||||||
|
"TZNAME": {"CET"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
&HtwkalenderComponent{
|
||||||
|
Component: &goics.Component{
|
||||||
|
Tipo: "DAYLIGHT",
|
||||||
|
Elements: []goics.Componenter{},
|
||||||
|
Properties: map[string][]string{
|
||||||
|
"DTSTART": {"19700329T020000"},
|
||||||
|
"TZOFFSETFROM": {"+0100"},
|
||||||
|
"TZOFFSETTO": {"+0200"},
|
||||||
|
"TZNAME": {"CEST"},
|
||||||
|
"RRULE": {"FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Properties: map[string][]string{
|
||||||
|
"TZID": {"EUROPE/BERLIN"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
&goics.Component{
|
||||||
|
Tipo: "VEVENT",
|
||||||
|
Elements: []goics.Componenter{},
|
||||||
|
Properties: map[string][]string{
|
||||||
|
"DTSTAMP": {"20231201T000000Z"},
|
||||||
|
"UID": {"b52a7a081f46eeba9b402114493278a34a48b572c84e53d7ac4da9dea15cdff2@htwkalender.de"},
|
||||||
|
"DTEND": {"20231201T010000Z"},
|
||||||
|
"DTSTART": {"20231201T000000Z"},
|
||||||
|
"SUMMARY": {"UserDefinedName"},
|
||||||
|
"DESCRIPTION": {"Notizen: Test\nProf: Test\nGruppe: Test\nTyp: Test\n"},
|
||||||
|
"LOCATION": {"ZU430"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
&goics.Component{
|
||||||
|
Tipo: "VEVENT",
|
||||||
|
Elements: []goics.Componenter{},
|
||||||
|
Properties: map[string][]string{
|
||||||
|
"DTSTAMP": {"20231201T000000Z"},
|
||||||
|
"UID": {"5e946c0c4474bc6e6337262093e3ef31477e026bbc6bab398d755b002506d9d7@htwkalender.de"},
|
||||||
|
"DTEND": {"20231201T010000Z"},
|
||||||
|
"DTSTART": {"20231201T000000Z"},
|
||||||
|
"SUMMARY": {"UserDefinedName"},
|
||||||
|
"DESCRIPTION": {"Notizen: Test\nProf: Test\nGruppe: Test\nTyp: Test\n"},
|
||||||
|
"LOCATION": {"ZU221"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Properties: map[string][]string{
|
||||||
|
"PRODID": {"-//HTWK Kalender//htwkalender.de//DE"},
|
||||||
|
"VERSION": {"2.0"},
|
||||||
|
"CALSCALE": {"GREGORIAN"},
|
||||||
|
"TZID": {"EUROPE/BERLIN"},
|
||||||
|
"X-WR-CALNAME": {"HTWK Kalender"},
|
||||||
|
"X-WR-TIMEZONE": {"EUROPE/BERLIN"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
Reference in New Issue
Block a user