aboutsummaryrefslogtreecommitdiff
path: root/pocketbook/tests/test_panel.py
blob: 92f86482dd42bf233f2b3826739297cd82149573 (plain)
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
from unittest.mock import MagicMock
from pocketbook.note import Note


class TestPanelController:
    """Test panel controller logic with a mocked store."""

    def _make_controller(self):
        from pocketbook.panel import PanelController
        store = MagicMock()
        controller = PanelController(store)
        return controller, store

    def test_add_note_calls_store_create(self):
        controller, store = self._make_controller()
        store.create.return_value = "0001-20260101-120000-abc12.txt"
        controller.add_note()
        store.create.assert_called_once_with("New Note", "")

    def test_delete_note_calls_store_delete(self):
        controller, store = self._make_controller()
        controller.delete_note("0001-20260101-120000-abc12.txt")
        store.delete.assert_called_once_with("0001-20260101-120000-abc12.txt")

    def test_update_note_calls_store_update(self):
        controller, store = self._make_controller()
        controller.update_note("0001-20260101-120000-abc12.txt", "New Title", "New Body")
        store.update.assert_called_once_with(
            "0001-20260101-120000-abc12.txt", "New Title", "New Body"
        )

    def test_get_notes_calls_store_list(self):
        controller, store = self._make_controller()
        store.list_notes.return_value = [
            ("0001-20260101-120000-abc12.txt", Note(title="A", body="a")),
        ]
        notes = controller.get_notes()
        store.list_notes.assert_called_once()
        assert len(notes) == 1
        assert notes[0][1].title == "A"