39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""Governance coverage tests for reject-history shell integration."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import json
|
|
from pathlib import Path
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
ROUTE_CONTRACTS_FILE = ROOT / 'frontend' / 'src' / 'portal-shell' / 'routeContracts.js'
|
|
NATIVE_REGISTRY_FILE = ROOT / 'frontend' / 'src' / 'portal-shell' / 'nativeModuleRegistry.js'
|
|
PAGE_STATUS_FILE = ROOT / 'data' / 'page_status.json'
|
|
|
|
|
|
def test_reject_history_route_contract_entry_exists():
|
|
text = ROUTE_CONTRACTS_FILE.read_text(encoding='utf-8')
|
|
|
|
assert "'/reject-history'" in text
|
|
assert "routeId: 'reject-history'" in text
|
|
assert "title: '報廢歷史查詢'" in text
|
|
|
|
|
|
def test_reject_history_native_loader_entry_exists():
|
|
text = NATIVE_REGISTRY_FILE.read_text(encoding='utf-8')
|
|
|
|
assert "'/reject-history'" in text
|
|
assert "import('../reject-history/App.vue')" in text
|
|
|
|
|
|
def test_reject_history_page_status_entry_exists():
|
|
payload = json.loads(PAGE_STATUS_FILE.read_text(encoding='utf-8'))
|
|
pages = payload.get('pages', [])
|
|
|
|
entry = next((item for item in pages if item.get('route') == '/reject-history'), None)
|
|
assert entry is not None
|
|
assert entry.get('drawer_id')
|
|
assert isinstance(entry.get('order'), int)
|