Files
peardata/test/taxonomy.test.js
T
Raven Scott 41f5476a60
CI / test (push) Successful in 58s
Release rolling / release (push) Successful in 6m56s
Updates
2026-07-18 20:17:34 -04:00

34 lines
1.5 KiB
JavaScript

import test from 'brittle'
import { groupCatalog, sectionForChart, SECTIONS, TAXONOMY_VERSION } from '../shared/taxonomy.js'
test('taxonomy version and sections', (t) => {
t.ok(TAXONOMY_VERSION >= 1)
t.ok(SECTIONS.length >= 5)
})
test('sectionForChart routes common prefixes', (t) => {
t.is(sectionForChart('system.cpu', { context: 'system.cpu' }).id, 'system')
t.is(sectionForChart('docker.cpu.abc', {}).id, 'containers')
t.is(sectionForChart('nginx.connections', {}).id, 'applications')
t.is(sectionForChart('ebpf.cachestat', {}).id, 'observability')
t.is(sectionForChart('fleet.nodes', {}).id, 'fleet')
t.is(sectionForChart('custom.weird', {}).id, 'other')
})
test('groupCatalog filters and sorts', (t) => {
const catalog = {
'system.cpu': { title: 'CPU', context: 'system.cpu', family: 'cpu', priority: 100 },
'system.ram': { title: 'RAM', context: 'system.ram', family: 'ram', priority: 200 },
'nginx.connections': { title: 'Nginx', context: 'nginx.connections', family: 'nginx', priority: 50 },
'zz.unknown': { title: 'Odd', context: 'zz.unknown', priority: 1 },
}
const { sections } = groupCatalog(catalog)
t.ok(sections.some((s) => s.id === 'system' && s.count === 2))
t.ok(sections.some((s) => s.id === 'applications' && s.count === 1))
t.ok(sections.some((s) => s.id === 'other' && s.count === 1))
const filtered = groupCatalog(catalog, 'nginx')
t.is(filtered.sections.length, 1)
t.is(filtered.sections[0].groups[0].charts[0].id, 'nginx.connections')
})