Add daily report calendar to the header
This commit is contained in:
1 parent
2a54838d59
commit
4356160cc9
11 files changed
+735
-28
No files matched your search
@@ -36,17 +36,18 @@ class DailyVisualStaticContractTests(unittest.TestCase):
|
||||
overview_markup = self.html[overview_start:overview_end]
|
||||
self.assertIn('id="upload-title"', overview_markup)
|
||||
self.assertLess(overview_markup.index('id="arr-download-title"'), overview_markup.index('id="upload-title"'))
|
||||
for metric_id in ('id="metric-arrival"', 'id="metric-duration"', 'id="metric-rooms"'):
|
||||
for metric_id in ('id="metric-arrival"', 'id="metric-rooms"', 'id="report-calendar"'):
|
||||
self.assertIn(metric_id, overview_markup)
|
||||
self.assertLess(overview_markup.index('id="upload-title"'), overview_markup.index('id="metric-arrival"'))
|
||||
self.assertLess(overview_markup.index('id="metric-arrival"'), overview_markup.index('id="metric-duration"'))
|
||||
self.assertLess(overview_markup.index('id="metric-duration"'), overview_markup.index('id="metric-rooms"'))
|
||||
self.assertLess(overview_markup.index('id="metric-arrival"'), overview_markup.index('id="metric-rooms"'))
|
||||
self.assertLess(overview_markup.index('id="metric-rooms"'), overview_markup.index('id="report-calendar"'))
|
||||
self.assertNotIn('id="metric-duration"', overview_markup)
|
||||
self.assertIn(
|
||||
'class="daily-overview" aria-label="日报处理概览"',
|
||||
overview_markup,
|
||||
)
|
||||
self.assertIn(
|
||||
".daily-overview { display: grid; grid-template-columns: minmax(240px, 1.25fr) minmax(280px, 1.45fr) repeat(3, minmax(0, .8fr));",
|
||||
".daily-overview { display: grid; grid-template-columns: minmax(220px, 1.1fr) minmax(230px, 1.15fr) minmax(150px, .75fr) minmax(110px, .55fr) minmax(360px, 1.8fr);",
|
||||
self.styles,
|
||||
)
|
||||
self.assertIn(".daily-overview > .metric-card", self.styles)
|
||||
@@ -73,6 +74,31 @@ class DailyVisualStaticContractTests(unittest.TestCase):
|
||||
self.assertIn("min-width: 118px", self.styles)
|
||||
self.assertNotIn("width: calc(100% - 48px)", self.styles)
|
||||
|
||||
def test_report_calendar_has_native_navigation_text_status_and_read_failure_feedback(self) -> None:
|
||||
start = self.html.index('id="report-calendar"')
|
||||
end = self.html.index("</section>", start)
|
||||
calendar = self.html[start:end]
|
||||
self.assertIn('aria-label="报表日历" aria-describedby="report-calendar-help"', calendar)
|
||||
self.assertIn('<h2 id="report-calendar-title">报表</h2>', calendar)
|
||||
for control in ("current", "previous", "next", "retry"):
|
||||
self.assertRegex(calendar, rf'<button[^>]*id="report-calendar-{control}"[^>]*type="button"')
|
||||
self.assertIn('id="report-calendar-days" role="group" aria-label="选择日期查看日报"', calendar)
|
||||
self.assertIn('id="report-calendar-legend-generated">已生成</span>', calendar)
|
||||
self.assertIn('id="report-calendar-legend-empty">未生成</span>', calendar)
|
||||
self.assertIn('id="report-calendar-status" role="status" aria-live="polite"', calendar)
|
||||
self.assertIn('id="report-calendar-retry" type="button" hidden', calendar)
|
||||
self.assertIn("repeat(7, minmax(0, 1fr))", self.styles)
|
||||
self.assertIn(".report-calendar button:focus-visible", self.styles)
|
||||
self.assertIn(".report-calendar button { min-height: 44px;", self.styles)
|
||||
self.assertIn("@media (min-width: 701px) and (max-width: 1399px)", self.styles)
|
||||
|
||||
def test_duration_is_removed_only_from_the_top_overview(self) -> None:
|
||||
app = (STATIC_ROOT / "app.js").read_text(encoding="utf-8")
|
||||
self.assertNotIn('id="metric-duration"', self.html)
|
||||
self.assertNotIn('$("#metric-duration")', app)
|
||||
self.assertIn("处理耗时", self.html[self.html.index('id="daily-history-title"'):])
|
||||
self.assertIn('current ? duration(current) : "—"', app)
|
||||
|
||||
def test_download_card_exposes_accessible_retrieval_progress_with_reduced_motion(self) -> None:
|
||||
start = self.html.index('id="arr-acquisition-progress"')
|
||||
end = self.html.index('<div class="arr-download-actions">', start)
|
||||
|
||||
Reference in new issue
Block a user