MIL-011: Menu bar
Review record RC-066 (Go, autonomous mode, not independent). Task: MIL-011#1 Task: MIL-011#2 Task: MIL-011#3 Task: MIL-011#4 Task: MIL-011#5 Task: MIL-011#6 Task: MIL-011#7 Task: MIL-011#8
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
"""Tests of the menu view model; no Tkinter is involved."""
|
||||
|
||||
import pytest
|
||||
|
||||
from flash_card.presentation.features.menu.menu_view_model import (
|
||||
MenuEntry,
|
||||
MenuViewModel,
|
||||
)
|
||||
|
||||
|
||||
def test_file_entries_are_open_change_level_reset_and_exit_in_order() -> None:
|
||||
labels = [entry.label for entry in MenuViewModel().file_entries]
|
||||
assert labels == ["Open...", "Change level...", "Reset word list...", "Exit"]
|
||||
|
||||
|
||||
def test_file_entries_name_distinct_commands() -> None:
|
||||
commands = [entry.command for entry in MenuViewModel().file_entries]
|
||||
assert commands == [
|
||||
"open_word_list",
|
||||
"change_level",
|
||||
"reset_word_list",
|
||||
"exit_program",
|
||||
]
|
||||
|
||||
|
||||
def test_menu_labels_are_file_about_and_contact() -> None:
|
||||
model = MenuViewModel()
|
||||
assert model.file_label == "File"
|
||||
assert model.about_label == "About"
|
||||
assert model.contact_menu_label == "Contact"
|
||||
|
||||
|
||||
def test_contact_shows_name_and_title() -> None:
|
||||
assert MenuViewModel().contact_label == "Jens Tirsvad Nielsen, Software engineer"
|
||||
|
||||
|
||||
def test_contact_url_is_the_linkedin_page() -> None:
|
||||
assert MenuViewModel().contact_url == "https://www.linkedin.com/in/tirsvad74"
|
||||
|
||||
|
||||
def test_menu_entry_is_immutable() -> None:
|
||||
entry = MenuEntry("Exit", "exit_program", 1)
|
||||
with pytest.raises(AttributeError):
|
||||
entry.label = "Quit" # type: ignore[misc]
|
||||
Reference in New Issue
Block a user