forked from ecukes/ecukes
-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
ecukes-parse-intro-test.el
114 lines (98 loc) · 3.6 KB
/
ecukes-parse-intro-test.el
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
(require 'ecukes-parse)
(defun with-parse-intro (name fn)
(let* ((feature-file (fixture-file-path "intro" name))
(feature (ecukes-parse-feature feature-file))
(intro (ecukes-feature-intro feature))
(header) (description))
(condition-case err
(progn
(setq header (ecukes-intro-header intro))
(setq description (ecukes-intro-description intro)))
(error))
(funcall fn intro header description)))
(defun should-parse-number-addition (name)
"Parsing NAME feature should parse number addition correctly."
(with-parse-intro
name
(lambda (intro header description)
(should (equal header "Addition of two numbers"))
(should
(equal
description
'("In order to aviod silly mistakes"
"As a math idiot"
"I want to be told the sum of two numbers"))))))
(ert-deftest parse-intro-no-intro ()
"Should not parse intro none."
(with-parse-intro
"no-intro"
(lambda (intro header description)
(should-not intro))))
(ert-deftest parse-intro-comments ()
"Should not parse when comments."
(with-parse-intro
"comments"
(lambda (intro header description)
(should-not intro))))
(ert-deftest parse-intro-all-good-new ()
"Should parse when all good."
(should-parse-number-addition "all-good"))
(ert-deftest parse-intro-spaces-above ()
"Should parse when spaces above."
(should-parse-number-addition "spaces-above"))
(ert-deftest parse-intro-comments-above ()
"Should parse when commants above."
(should-parse-number-addition "comments-above"))
(ert-deftest parse-intro-no-space-in-header ()
"Should parse when no space in header."
(should-parse-number-addition "no-space-in-header"))
(ert-deftest parse-intro-extra-space-in-header ()
"Should parse when extra space in header."
(should-parse-number-addition "extra-space-in-header"))
(ert-deftest parse-intro-wrong-indentation ()
"Should parse when wrong indentation."
(should-parse-number-addition "wrong-indentation"))
(ert-deftest parse-intro-line-breaks ()
"Should parse when line breaks."
(should-parse-number-addition "line-breaks"))
(ert-deftest parse-intro-new-section-background ()
"Should stop when entering background."
(should-parse-number-addition "section-background"))
(ert-deftest parse-intro-new-section-scenario ()
"Should stop when entering scenario."
(should-parse-number-addition "section-scenario"))
(ert-deftest parse-intro-fewer-description-lines ()
"Should parse when fewer description lines."
(with-parse-intro
"fewer-description-lines"
(lambda (intro header description)
(should (equal header "Addition of two numbers"))
(should
(equal
description
'("As a math idiot I want to aviod silly mistakes and be told the sum of two numbers"))))))
(ert-deftest parse-intro-more-description-lines ()
"Should parse when more description lines."
(with-parse-intro
"more-description-lines"
(lambda (intro header description)
(should (equal header "Addition of two numbers"))
(should
(equal
description
'("In order to aviod silly mistakes"
"As a math idiot"
"And as an idiot in general"
"I want to be told the sum of two numbers"))))))
(ert-deftest parse-intro-scenario-tags ()
"Should not consider scenario tags part of intro."
(with-parse-intro
"scenario-tags"
(lambda (intro header description)
(should (equal header "Addition of two numbers"))
(should
(equal
description
'("In order to aviod silly mistakes"
"As a math idiot"
"I want to be told the sum of two numbers"))))))