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"