Skip to content

Commit 7013205

Browse files
committed
test(cz-commit): add tests for multi-line body input
1 parent 7ef38b7 commit 7013205

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

tests/test_cz_conventional_commits.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import pytest
2+
from prompt_toolkit.key_binding import KeyBindings
23

34
from commitizen.cz.conventional_commits.conventional_commits import (
45
ConventionalCommitsCz,
@@ -173,3 +174,10 @@ def test_info(config):
173174
conventional_commits = ConventionalCommitsCz(config)
174175
info = conventional_commits.info()
175176
assert isinstance(info, str)
177+
178+
179+
def test_body_question_is_multiline(config):
180+
cz = ConventionalCommitsCz(config)
181+
body_question = next(q for q in cz.questions() if q["name"] == "body")
182+
assert body_question["multiline"] is True
183+
assert isinstance(body_question["key_bindings"], KeyBindings)

tests/test_cz_utils.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,34 @@
44
from commitizen.cz import exceptions, utils
55

66

7+
def test_multiline_key_bindings_enter_submits_on_empty(mocker: MockFixture):
8+
kb = utils.get_multiline_key_bindings()
9+
handler = kb.get_bindings_for_keys(("enter",))[0].handler
10+
11+
buff = mocker.MagicMock()
12+
buff.text = ""
13+
event = mocker.MagicMock()
14+
event.app.current_buffer = buff
15+
16+
handler(event)
17+
buff.validate_and_handle.assert_called_once()
18+
buff.insert_text.assert_not_called()
19+
20+
21+
def test_multiline_key_bindings_enter_inserts_newline(mocker: MockFixture):
22+
kb = utils.get_multiline_key_bindings()
23+
handler = kb.get_bindings_for_keys(("enter",))[0].handler
24+
25+
buff = mocker.MagicMock()
26+
buff.text = "some content"
27+
event = mocker.MagicMock()
28+
event.app.current_buffer = buff
29+
30+
handler(event)
31+
buff.insert_text.assert_called_once_with("\n")
32+
buff.validate_and_handle.assert_not_called()
33+
34+
735
def test_required_validator():
836
assert utils.required_validator("test") == "test"
937

0 commit comments

Comments
 (0)