feat(device-core): ship host telemetry and scalable VPS inventory
This commit is contained in:
@@ -84,6 +84,74 @@ test("Device Core overview follows the Mission Core landing-stage geometry", asy
|
||||
assert.ok(!client.includes('<GlassSurface className="device-manager-home"'));
|
||||
});
|
||||
|
||||
test("VPS inventory and monitoring follow the Mission Core system workspace geometry", async () => {
|
||||
const client = await readFile(
|
||||
new URL("../src/DeviceControlViews.tsx", import.meta.url),
|
||||
"utf8",
|
||||
);
|
||||
const styles = await readFile(
|
||||
new URL("../src/styles.css", import.meta.url),
|
||||
"utf8",
|
||||
);
|
||||
const infrastructureSource = client.slice(
|
||||
client.indexOf("function HostsView"),
|
||||
client.indexOf("function SessionsView"),
|
||||
);
|
||||
|
||||
for (const expected of [
|
||||
'className="infrastructure-system-workspace"',
|
||||
'className="infrastructure-system-workspace host-monitoring-workspace"',
|
||||
'className="infrastructure-overview-block"',
|
||||
'className="infrastructure-section infrastructure-hosts-block"',
|
||||
'className="infrastructure-host-list"',
|
||||
'className="infrastructure-host-card__summary"',
|
||||
'className="infrastructure-host-card__freshness"',
|
||||
'className="infrastructure-host-card__toggle"',
|
||||
'className="infrastructure-host-card__details"',
|
||||
'className="infrastructure-host-relations"',
|
||||
'aria-expanded={expanded}',
|
||||
'const [expandedHostRefs, setExpandedHostRefs] = useState<Set<string>>',
|
||||
'topology.endpoints.filter((item) => item.hostRef === host.hostRef)',
|
||||
'topology.deployments.filter((item) => item.hostRef === host.hostRef)',
|
||||
'topology.serviceInstances.filter((item) => item.hostRef === host.hostRef)',
|
||||
'className="host-monitoring-series-grid"',
|
||||
'className="host-monitoring-hardware"',
|
||||
'className="host-monitoring-hardware-facts"',
|
||||
'className="infrastructure-runtime-grid"',
|
||||
'percentageTelemetryWindow(cpuHistory, 5)',
|
||||
'percentageTelemetryWindow(memoryHistory, 4)',
|
||||
'className="host-monitoring-series__range"',
|
||||
'resource={networkRate.received == null ? "нет данных" : "входящий трафик"}',
|
||||
'if (!counters.length) return null;',
|
||||
]) assert.ok(infrastructureSource.includes(expected), expected);
|
||||
|
||||
for (const expected of [
|
||||
".infrastructure-system-workspace {",
|
||||
".infrastructure-overview-block,",
|
||||
".infrastructure-hosts-block,",
|
||||
".infrastructure-host-card__summary {",
|
||||
"align-items: center;",
|
||||
".infrastructure-host-card__freshness[data-freshness=\"fresh\"] {",
|
||||
".infrastructure-host-card[data-expanded=\"true\"] .infrastructure-host-card__toggle svg {",
|
||||
".infrastructure-host-relations {",
|
||||
"grid-template-columns: repeat(3, minmax(0, 1fr));",
|
||||
"grid-template-columns: repeat(4, minmax(0, 1fr));",
|
||||
"background: var(--infrastructure-panel-soft);",
|
||||
".host-monitoring-series polyline {",
|
||||
"stroke: var(--nodedc-text-primary);",
|
||||
".host-monitoring-hardware-facts {",
|
||||
"grid-template-columns: repeat(2, minmax(0, 1fr));",
|
||||
]) assert.ok(styles.includes(expected), expected);
|
||||
|
||||
assert.ok(!infrastructureSource.includes("<ResourceCard"));
|
||||
assert.ok(!infrastructureSource.includes('title="Сервисы хостов"'));
|
||||
assert.ok(!infrastructureSource.includes('title="Deployments и endpoints"'));
|
||||
assert.ok(!infrastructureSource.includes("ceiling={100}"));
|
||||
assert.ok(!infrastructureSource.includes("Канонический ontology catalog"));
|
||||
assert.ok(!styles.includes(".host-telemetry-metric,"));
|
||||
assert.ok(!styles.includes(".host-telemetry-facts"));
|
||||
});
|
||||
|
||||
test("legacy single teaser migrates into the environment media playlist", () => {
|
||||
const environment = normalizeEnvironmentPresentation({
|
||||
defaultTeaser: {
|
||||
|
||||
Reference in New Issue
Block a user