feat: enhance table layout and interaction across various components
Deploy production / deploy (push) Successful in 53s
Deploy production / deploy (push) Successful in 53s
- Introduced a new `WorkspaceTable` component for consistent table styling and behavior. - Updated `BacktestPage`, `DatasetPage`, and `DataPreparationPage` to utilize the new `WorkspaceTable`. - Implemented compact row heights and ellipsis for long text in table cells. - Added validation for online field queries to ensure at least one filter is provided. - Enhanced error handling and user feedback for invalid input scenarios. - Improved pagination controls with dynamic page size options. - Documented table display specifications in `ui-tables.md`. - Added tests to verify table layout, interaction, and error handling.
This commit is contained in:
@@ -411,3 +411,30 @@ async def test_terminal_detail_failure_releases_slot_but_keeps_platform_success(
|
||||
await tick(lane)
|
||||
assert len(platform.posts) == 2
|
||||
await lane.interrupt()
|
||||
|
||||
|
||||
async def test_run_list_projects_source_metadata_without_accepting_unknown_input(app, logged_in):
|
||||
"""Persisted source metadata must not turn the entire run list into a 500."""
|
||||
await setup(app)
|
||||
created = await start(logged_in, await preview(logged_in))
|
||||
async with app.state.sessions.begin() as db:
|
||||
row = await db.get(BacktestRun, created["backtest_run_id"])
|
||||
row.source = {**row.source, "template_input_id": None, "extra_metadata": "not-an-input"}
|
||||
response = await logged_in.get(f"{PREFIX}/runs?offset=0&source=")
|
||||
assert response.status_code == 200
|
||||
source = response.json()["items"][0]["source"]
|
||||
assert source["kind"] == "test"
|
||||
assert "template_input_id" not in source and "extra_metadata" not in source
|
||||
assert source["input_snapshot_ids"] == []
|
||||
detail = await logged_in.get(f"{PREFIX}/runs/{created['backtest_run_id']}")
|
||||
assert detail.status_code == 200
|
||||
assert detail.json()["source"] == source
|
||||
rejected = await logged_in.post(
|
||||
f"{PREFIX}/drafts",
|
||||
json={
|
||||
"name": "invalid",
|
||||
"source": {"kind": "manual", "extra_metadata": "invalid"},
|
||||
"candidates": [candidate()],
|
||||
},
|
||||
)
|
||||
assert rejected.status_code == 422
|
||||
|
||||
Reference in New Issue
Block a user