Build CutList image / build-and-push (push) Successful in 19s
Keep part numbers and their dividers visible in monochrome print output, and include the selected cutting tool and kerf on the printed report.
48 lines
2.1 KiB
Python
48 lines
2.1 KiB
Python
"""Focused regression checks for split part-number and length cut badges."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import unittest
|
|
from pathlib import Path
|
|
|
|
REPO_ROOT = Path(__file__).resolve().parents[1]
|
|
JOB_EDITOR = REPO_ROOT / "CutList.Web/Components/Pages/Jobs/Edit.razor"
|
|
APP_CSS = REPO_ROOT / "CutList.Web/wwwroot/css/app.css"
|
|
|
|
|
|
class CutBadgeFormatTests(unittest.TestCase):
|
|
def test_named_cut_badge_renders_part_number_and_length_in_separate_sections(self) -> None:
|
|
markup = JOB_EDITOR.read_text()
|
|
results_start = markup.index("private RenderFragment RenderResultsTab()")
|
|
cuts_cell_start = markup.index("@foreach (var item in entry.Bin.Items)", results_start)
|
|
cut_rows_start = markup.rfind("<td>", results_start, cuts_cell_start)
|
|
cut_rows = markup[cut_rows_start:markup.index("</td>", cuts_cell_start)]
|
|
|
|
self.assertIn('class="badge me-1 mb-1 fs-6 cut-part-badge"', cut_rows)
|
|
self.assertIn('class="cut-part-badge-name"', cut_rows)
|
|
self.assertIn('class="cut-part-badge-length"', cut_rows)
|
|
self.assertIn('@item.Name', cut_rows)
|
|
self.assertIn('@FormatResultLength(item.Length)', cut_rows)
|
|
self.assertNotIn('$"{item.Name} (', cut_rows)
|
|
|
|
def test_length_section_has_a_darker_background_than_the_part_number_section(self) -> None:
|
|
css = APP_CSS.read_text()
|
|
|
|
self.assertIn('.cut-part-badge {', css)
|
|
self.assertIn('.cut-part-badge-name {', css)
|
|
self.assertIn('.cut-part-badge-length {', css)
|
|
self.assertIn('background-color: #4c6680;', css)
|
|
|
|
def test_printed_cut_badges_keep_part_numbers_and_separators_legible(self) -> None:
|
|
report_css = (REPO_ROOT / "CutList.Web/wwwroot/css/report.css").read_text()
|
|
print_styles = report_css[report_css.index("@media print {"):]
|
|
|
|
self.assertIn(".cut-part-badge {", print_styles)
|
|
self.assertIn("color: #000 !important;", print_styles)
|
|
self.assertIn(".cut-part-badge-divider {", print_styles)
|
|
self.assertIn("border-left: 1px solid #000 !important;", print_styles)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|