[Timeline] Add some first tests

This commit is contained in:
Daniel - 2019-02-16 13:57:32 +01:00
parent 689417a720
commit fa2fc56a0a
Signed by: dbo
GPG Key ID: 4F63DB96D45AA9C6
2 changed files with 103 additions and 1 deletions

1
.gitignore vendored
View File

@ -42,7 +42,6 @@
/server/server
/speed-type/*
/site-lisp/timeline-tools-autoloads.el
/site-lisp/timeline-tools-test.el
/.cask/
/private/
/eww-bookmarks

View File

@ -0,0 +1,103 @@
;;; timeline-tools-test.el -- Tests for timeline-tools -*- lexical-binding: t -*-
;;; Code:
(require 'ert)
(require 'timeline-tools)
(require 'cl-lib)
;;
(ert-deftest timeline-tools-test-parse-clocklines-1 ()
"Test `timeline-tools-clocklines-in-range with simple setup."
(let ((result (with-temp-buffer
(insert "* Task 1\n")
(insert ":LOGBOOK:\n")
(insert "CLOCK: [2018-01-07 Sun 13:15]--[2018-01-07 Sun 14:00] => 0:45\n")
(insert ":END:\n")
(org-mode) ; otherwise parsing wont work
(timeline-tools-clocklines-in-range 1515279600.0 1515366000.0))))
(should (equal 1 (length result)))
(should (equal 1 (length (car result))))
(should (markerp (car (car result))))
(should (equal (car (cdr (car result)))
(cons 1515327300.0 1515330000.0)))))
(ert-deftest timeline-tools-test-parse-clocklines-2 ()
"Test `timeline-tools-clocklines-in-range with multiple clocklines."
(let ((result (with-temp-buffer
(insert "* Task 1\n")
(insert ":LOGBOOK:\n")
(insert "CLOCK: [2018-01-07 Sun 13:15]--[2018-01-07 Sun 14:00] => 0:45\n")
(insert "CLOCK: [2018-01-08 Mon 16:15]--[2018-01-10 Wed 13:10] => 44:55\n")
(insert "CLOCK: [2018-01-10 Wed 10:07]--[2018-01-12 Fri 14:00] => 51:53\n")
(insert ":END:\n")
(org-mode)
(timeline-tools-clocklines-in-range 1515279600.0 1515600000.0))))
(should (equal 1 (length result)))
(should (equal 4 (length (car result))))
(should (markerp (car (car result))))
(should (equal (cdr (car result))
(list (cons 1515327300.0 1515330000.0)
(cons 1515424500.0 1515586200.0)
(cons 1515575220.0 1515600000.0))))))
(ert-deftest timeline-tools-test-parse-clocklines-3 ()
"Test `timeline-tools-clocklines-in-range with multiple tasks."
(let ((result (with-temp-buffer
(insert "
* Task 1
:LOGBOOK:
CLOCK: [2018-01-07 Sun 13:15]--[2018-01-07 Sun 14:00] => 0:45
CLOCK: [2018-01-08 Mon 16:15]--[2018-01-10 Wed 13:10] => 44:55
CLOCK: [2018-01-10 Wed 10:07]--[2018-01-12 Fri 14:00] => 51:53
:END:
* Task 2
:LOGBOOK:
CLOCK: [2018-01-07 Sun 15:13]--[2018-01-07 Sun 16:17] => 1:04
CLOCK: [2018-01-08 Mon 16:00]--[2018-01-08 Mon 16:15] => 0:15
:END:
")
(org-mode)
(timeline-tools-clocklines-in-range 1515279600.0 1515600000.0))))
(should (equal 2 (length result)))
(should (equal '(4 3) (mapcar #'length result)))
(should (cl-every #'markerp (mapcar #'car result)))
(should (equal (mapcar #'cdr result)
'(((1515327300.0 . 1515330000.0)
(1515424500.0 . 1515586200.0)
(1515575220.0 . 1515600000.0))
((1515334380.0 . 1515338220.0)
(1515423600.0 . 1515424500.0)))))))
(ert-deftest timeline-tools-test-parse-clocklines-4 ()
"Test `timeline-tools-clocklines-in-range with extended time range."
(let ((result (with-temp-buffer
(insert "
* Task 1
:LOGBOOK:
CLOCK: [2018-01-07 Sun 13:15]--[2018-01-07 Sun 14:00] => 0:45
CLOCK: [2018-01-08 Mon 16:15]--[2018-01-10 Wed 13:10] => 44:55
CLOCK: [2018-01-10 Wed 10:07]--[2018-01-12 Fri 14:00] => 51:53
:END:
* Task 2
:LOGBOOK:
CLOCK: [2018-01-07 Sun 15:13]--[2018-01-07 Sun 16:17] => 1:04
CLOCK: [2018-01-08 Mon 16:00]--[2018-01-08 Mon 16:15] => 0:15
:END:
")
(org-mode)
(timeline-tools-clocklines-in-range 1515279600.0 1515700000.0))))
(should (equal 2 (length result)))
(should (equal '(4 3) (mapcar #'length result)))
(should (cl-every #'markerp (mapcar #'car result)))
(should (equal (mapcar #'cdr result)
'(((1515327300.0 . 1515330000.0)
(1515424500.0 . 1515586200.0)
(1515575220.0 . 1515700000.0))
((1515334380.0 . 1515338220.0)
(1515423600.0 . 1515424500.0)))))))