1;;; elixir-mode-helper-test.el --- Tests for helper functions
2
3;;; Code:
4
5(ert-deftest check-if-currently-inside-heredoc ()
6  (should (with-temp-buffer
7            (elixir-mode)
8            (insert "
9defmodule Module.Name do
10
11  @moduledoc \"\"\"
12  ## Examples
13
14  ....
15  \"\"\"
16
17end")
18            (goto-line 7)
19            (elixir-smie--heredoc-at-current-point-p)))
20  (should (not (with-temp-buffer
21                 (elixir-mode)
22                 (insert "
23defmodule Module.Name do
24
25  @moduledoc \"\"\"
26  ## Examples
27
28  ....
29  \"\"\"
30
31end")
32                 (goto-line 3)
33                 (elixir-smie--heredoc-at-current-point-p)))))
34
35(ert-deftest get-previous-line-indentation ()
36  (should (equal 2
37                 (with-temp-buffer
38                   (elixir-mode)
39                   (insert "
40defmodule Module.Name do
41  def what do
42    1 + 1
43  end
44end")
45                   (goto-line 4)
46                   (elixir-smie--previous-line-indentation))))
47  )
48
49
50(ert-deftest check-if-previous-line-blank ()
51  (should (not (with-temp-buffer
52                 (elixir-mode)
53                 (insert "
54defmodule Module.Name do
55
56  def what do
57    1 + 1
58  end
59end")
60                 (goto-line 3)
61                 (elixir-smie--previous-line-empty-p))))
62  (should (with-temp-buffer
63            (elixir-mode)
64            (insert "
65defmodule Module.Name do
66
67
68  def what do
69    1 + 1
70  end
71end")
72            (goto-line 4)
73            (elixir-smie--previous-line-empty-p))))
74
75
76;;; elixir-mode-helper-test.el --- Tests for helper functions
77
78;;; Code:
79
80(ert-deftest check-if-currently-inside-heredoc ()
81  (should (with-temp-buffer
82            (elixir-mode)
83            (insert "
84defmodule Module.Name do
85
86  @moduledoc \"\"\"
87  ## Examples
88
89  ....
90  \"\"\"
91
92end")
93            (goto-line 7)
94            (elixir-smie--heredoc-at-current-point-p)))
95  (should (not (with-temp-buffer
96                 (elixir-mode)
97                 (insert "
98defmodule Module.Name do
99
100  @moduledoc \"\"\"
101  ## Examples
102
103  ....
104  \"\"\"
105
106end")
107                 (goto-line 3)
108                 (elixir-smie--heredoc-at-current-point-p)))))
109
110(ert-deftest get-previous-line-indentation ()
111  (should (equal 2
112                 (with-temp-buffer
113                   (elixir-mode)
114                   (insert "
115defmodule Module.Name do
116  def what do
117    1 + 1
118  end
119end")
120                   (goto-line 4)
121                   (elixir-smie--previous-line-indentation))))
122  )
123
124
125(ert-deftest check-if-previous-line-blank ()
126  (should (not (with-temp-buffer
127                 (elixir-mode)
128                 (insert "
129defmodule Module.Name do
130
131  def what do
132    1 + 1
133  end
134end")
135                 (goto-line 3)
136                 (elixir-smie--previous-line-empty-p))))
137  (should (with-temp-buffer
138            (elixir-mode)
139            (insert "
140defmodule Module.Name do
141
142
143  def what do
144    1 + 1
145  end
146end")
147            (goto-line 4)
148            (elixir-smie--previous-line-empty-p))))
149
150
151(ert-deftest test-current-line-contains-built-in-keyword ()
152  (should (not (with-temp-buffer
153                 (elixir-mode)
154                 (insert "
155defmodule Module.Name do
156
157  def hey(test) do
158    test.case
159  end
160end")
161                 (goto-line 4)
162                 (elixir-smie-current-line-contains-built-in-keyword-p))))
163  (should (not (with-temp-buffer
164                 (elixir-mode)
165                 (insert "
166defmodule Module.Name do
167
168  def hey(test) do
169    case do
170    end
171  end
172end")
173                 (goto-line 4)
174                 (elixir-smie-current-line-contains-built-in-keyword-p)))))
175
176(ert-deftest test-if-string-is-empty ()
177  (should (equal (elixir-smie-empty-string-p nil)
178                 t))
179  (should (equal (elixir-smie-empty-string-p "")
180                 t))
181  (should (equal (elixir-smie-empty-string-p " ")
182                 t))
183  (should (equal (elixir-smie-empty-string-p "story")
184                 nil))
185  (should (equal (elixir-smie-empty-string-p "    ")
186                 t)))
187
188(provide 'elixir-mode-helper-test)
189
190;;; elixir-mode-helper-test.el ends here
191