aboutsummaryrefslogtreecommitdiff
path: root/tests/test/vcomponent-datetime.scm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test/vcomponent-datetime.scm')
-rw-r--r--tests/test/vcomponent-datetime.scm49
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/test/vcomponent-datetime.scm b/tests/test/vcomponent-datetime.scm
new file mode 100644
index 00000000..073a70ae
--- /dev/null
+++ b/tests/test/vcomponent-datetime.scm
@@ -0,0 +1,49 @@
+;;; Commentary:
+;; Tests that event-clamping (checking how long part of an event
+;; overlaps another time span) works.
+;;; Code:
+
+(define-module (test vcomponent-datetime)
+ :use-module (srfi srfi-64)
+ :use-module (srfi srfi-88)
+ :use-module ((datetime) :select (date time datetime))
+ :use-module ((vcomponent datetime) :select (event-length/clamped))
+ :use-module ((vcomponent formats ical parse) :select (parse-calendar)))
+
+(define ev
+ (call-with-input-string
+ "BEGIN:VEVENT
+DTSTART:20200329T170000
+DTEND:20200401T100000
+END:VEVENT"
+ parse-calendar))
+
+
+;; |-----------------| test interval
+;; |----------| event interval
+
+(test-equal
+ "Correct clamping"
+ (datetime time: (time hour: 7)) ; 2020-03-29T17:00 - 2020-03-30T00:00
+ (event-length/clamped
+ #2020-03-23 ; a time way before the start of the event
+ #2020-03-29 ; a time slightly after the end of the event
+ ev))
+
+(define utc-ev
+ (call-with-input-string
+ "BEGIN:VEVENT
+DTSTART:20200329T150000Z
+DTEND:20200401T080000Z
+END:VEVENT"
+ parse-calendar))
+
+(test-equal
+ "Correct clamping UTC"
+ (datetime time: (time hour: 7))
+ (event-length/clamped
+ #2020-03-23
+ #2020-03-29
+ ev))
+
+