test: fix E2E/integration failures, add trace pipeline E2E, remove dead migration tests
- Fix 6 Playwright strict-mode violations in query tool E2E (v-show dual-tab selectors) - Update 5 resource history E2E tests for POST /query API restructure - Add 22 trace pipeline E2E tests: admission control, async job queue, NDJSON streaming - Fix 3 health endpoint tests: add circuit breaker + route cache mocks - Fix WIP integration tests: load .env before DB module import for --run-integration - Remove 4 dead migration test files (20 permanently-skipped tests) Final: 1101 unit + 10 integration + 121 E2E + 23 stress = 1255 passed, 0 failed Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -28,7 +28,9 @@ class TestHealthEndpoint:
|
||||
@patch('mes_dashboard.routes.health_routes.check_database')
|
||||
@patch('mes_dashboard.routes.health_routes.check_redis')
|
||||
@patch('mes_dashboard.routes.health_routes.get_cache_status')
|
||||
def test_health_all_ok(self, mock_cache_status, mock_check_redis, mock_check_db, app_with_mock_cache):
|
||||
@patch('mes_dashboard.routes.health_routes.get_route_cache_status', return_value={'mode': 'none', 'degraded': False, 'available': False})
|
||||
@patch('mes_dashboard.core.circuit_breaker.get_circuit_breaker_status', return_value={'state': 'CLOSED', 'enabled': True, 'failure_count': 0, 'success_count': 0, 'total_count': 0, 'failure_rate': 0.0})
|
||||
def test_health_all_ok(self, mock_cb, mock_route_cache, mock_cache_status, mock_check_redis, mock_check_db, app_with_mock_cache):
|
||||
"""Test health endpoint returns 200 when all services are healthy."""
|
||||
mock_check_db.return_value = ('ok', None)
|
||||
mock_check_redis.return_value = ('ok', None)
|
||||
@@ -84,7 +86,9 @@ class TestHealthEndpoint:
|
||||
@patch('mes_dashboard.routes.health_routes.check_database')
|
||||
@patch('mes_dashboard.routes.health_routes.check_redis')
|
||||
@patch('mes_dashboard.routes.health_routes.get_cache_status')
|
||||
def test_health_redis_disabled(self, mock_cache_status, mock_check_redis, mock_check_db, app_with_mock_cache):
|
||||
@patch('mes_dashboard.routes.health_routes.get_route_cache_status', return_value={'mode': 'none', 'degraded': False, 'available': False})
|
||||
@patch('mes_dashboard.core.circuit_breaker.get_circuit_breaker_status', return_value={'state': 'CLOSED', 'enabled': True, 'failure_count': 0, 'success_count': 0, 'total_count': 0, 'failure_rate': 0.0})
|
||||
def test_health_redis_disabled(self, mock_cb, mock_route_cache, mock_cache_status, mock_check_redis, mock_check_db, app_with_mock_cache):
|
||||
"""Test health endpoint shows Redis disabled status."""
|
||||
mock_check_db.return_value = ('ok', None)
|
||||
mock_check_redis.return_value = ('disabled', None)
|
||||
@@ -105,15 +109,15 @@ class TestWipApiWithCache:
|
||||
@pytest.fixture
|
||||
def mock_wip_cache_data(self):
|
||||
"""Create mock WIP data for cache."""
|
||||
return pd.DataFrame({
|
||||
'LOTID': ['LOT001', 'LOT002', 'LOT003'],
|
||||
'QTY': [100, 200, 150],
|
||||
'WORKORDER': ['WO001', 'WO002', 'WO003'],
|
||||
'WORKCENTER_GROUP': ['WC1', 'WC1', 'WC2'],
|
||||
'WORKCENTERSEQUENCE_GROUP': [1, 1, 2],
|
||||
'PACKAGE_LEF': ['PKG1', 'PKG2', 'PKG1'],
|
||||
'PRODUCTLINENAME': ['PKG1', 'PKG2', 'PKG1'],
|
||||
'EQUIPMENTCOUNT': [1, 0, 0],
|
||||
return pd.DataFrame({
|
||||
'LOTID': ['LOT001', 'LOT002', 'LOT003'],
|
||||
'QTY': [100, 200, 150],
|
||||
'WORKORDER': ['WO001', 'WO002', 'WO003'],
|
||||
'WORKCENTER_GROUP': ['WC1', 'WC1', 'WC2'],
|
||||
'WORKCENTERSEQUENCE_GROUP': [1, 1, 2],
|
||||
'PACKAGE_LEF': ['PKG1', 'PKG2', 'PKG1'],
|
||||
'PRODUCTLINENAME': ['PKG1', 'PKG2', 'PKG1'],
|
||||
'EQUIPMENTCOUNT': [1, 0, 0],
|
||||
'CURRENTHOLDCOUNT': [0, 1, 0],
|
||||
'HOLDREASONNAME': [None, 'Quality Issue', None],
|
||||
'STATUS': ['ACTIVE', 'HOLD', 'ACTIVE'],
|
||||
|
||||
Reference in New Issue
Block a user