fix(netflow): проверять месяц и точные календарные границы
This commit is contained in:
1 parent
0c14da190b
commit
555bd31596
13 files changed
+291
-25
No files matched your search
@@ -0,0 +1,71 @@
|
||||
{
|
||||
"date": "2026-10-11",
|
||||
"block": "12.5.149",
|
||||
"runtime": {
|
||||
"backend": "ux-month149",
|
||||
"frontend": "ux-scope148",
|
||||
"backendHealthy": true
|
||||
},
|
||||
"checks": {
|
||||
"sourcePureBoundsAndInvalidBeforeSqlPassed": true,
|
||||
"sourceAndCandidateInvalidQueryChecksPassed": true,
|
||||
"ownedSqlCalendarIntervalsPassed": 5,
|
||||
"ownedDbRemoved": true,
|
||||
"eslintPassed": true,
|
||||
"backendProductionBuildPassed": true,
|
||||
"compiledBackendOutputsMatched": 984,
|
||||
"frontendScopedChecksPassed": 6,
|
||||
"liveMonthApi": [
|
||||
{
|
||||
"month": "bad",
|
||||
"status": 400
|
||||
},
|
||||
{
|
||||
"month": "2026-00",
|
||||
"status": 400
|
||||
},
|
||||
{
|
||||
"month": "2026-13",
|
||||
"status": 400
|
||||
},
|
||||
{
|
||||
"month": "0000-01",
|
||||
"status": 400
|
||||
},
|
||||
{
|
||||
"month": "2026-1",
|
||||
"status": 400
|
||||
},
|
||||
{
|
||||
"month": "2026-10junk",
|
||||
"status": 400
|
||||
},
|
||||
{
|
||||
"month": "2026-10",
|
||||
"status": 200
|
||||
}
|
||||
]
|
||||
},
|
||||
"sql": {
|
||||
"date": "2026-10-11",
|
||||
"name": "mm_accept_149_1791717813194",
|
||||
"tests": [
|
||||
{
|
||||
"module": "traffic-flow-month",
|
||||
"passed": true,
|
||||
"output": "ISOLATED_MONTH_SQL_ACCEPTED: 5 exact intervals, outside rows excluded, leap-year rates verified\ntraffic-flow-month.test.ts: exact month bounds and invalid-before-SQL checks passed\n"
|
||||
}
|
||||
],
|
||||
"databaseRemoved": true
|
||||
},
|
||||
"bounds": [
|
||||
"Malformed supplied month now400, no fallback to current or fake zero report; omitted/empty month retains legacy current UTC default",
|
||||
"Year0000 rejected consistently with UI; full YYYY-MM/month1..12 required, runtime non-string rejected",
|
||||
"Integer calendar arithmetic fixes Date.UTC years1..99 offset and extended-year string truncation at December9999",
|
||||
"Explicit Gregorian leap/month lengths compute average rates without Date.parse limitations for year10000",
|
||||
"Five own SQL fixtures verify years0001/0099,1900 non-leap,2000 leap and9999 December; sibling next-month rows excluded",
|
||||
"Own fixture DDL only after exact database name/current_database checks; parent owner-checked removal; main DB/legacy SQLite untouched",
|
||||
"Initial live receipt helper incorrectly called Fetch response.status as a method; corrected harness only, product400/200 verified afterwards",
|
||||
"Frontend unchanged; no device/password/schema/theme change, no UI/capability expansion for future month selection"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
{
|
||||
"date": "2026-10-11",
|
||||
"block": "12.5.149",
|
||||
"runtime": {
|
||||
"backend": "ux-month149",
|
||||
"frontend": "ux-scope148"
|
||||
},
|
||||
"checks": {
|
||||
"readOnlyFrontendUnchanged": true,
|
||||
"backendHealthy": true,
|
||||
"backendProductionBuildPassed": true
|
||||
},
|
||||
"cases": [
|
||||
{
|
||||
"width": 1440,
|
||||
"httpStatus": 200,
|
||||
"api": [
|
||||
{
|
||||
"path": "/api/traffic/bound-interfaces",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/traffic/users",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/traffic/servers",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/traffic/servers/1/live",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/traffic/servers/1/interfaces",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/traffic/servers/1",
|
||||
"status": 200
|
||||
}
|
||||
],
|
||||
"pageErrors": [],
|
||||
"noOverflow": true
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"httpStatus": 200,
|
||||
"api": [
|
||||
{
|
||||
"path": "/api/traffic/users",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/traffic/bound-interfaces",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/traffic/servers",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/traffic/servers/1/live",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/traffic/servers/1/interfaces",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/traffic/servers/1",
|
||||
"status": 200
|
||||
}
|
||||
],
|
||||
"pageErrors": [],
|
||||
"noOverflow": true
|
||||
}
|
||||
],
|
||||
"bounds": [
|
||||
"Read-only initial loading with real current lab catalog; no full NetFlow ingestion or throughput claim",
|
||||
"Catalog failure and pending loading checked by controlled E2E; numeric live server details/interfaces/SSE enabled only after confirmed catalog ownership",
|
||||
"Interface filter remains selected on range changes; backend source switch invalidates prior catalog ownership"
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user