Files
peardata/test/store.test.js
T
Raven Scott f7e26d1aac
Release rolling / release (push) Successful in 25s
CI / test (push) Successful in 28s
Testing
2026-07-18 16:33:43 -04:00

43 lines
1023 B
JavaScript

import test from 'brittle'
import { MetricStore } from '../server/services/store.js'
test('store ingest + query', async (t) => {
const store = new MetricStore()
const now = Date.now()
for (let i = 0; i < 30; i++) {
store.ingest([
{
chart: 'system.cpu',
context: 'system.cpu',
ts: now - (30 - i) * 1000,
values: {
user: 10 + i,
system: 5,
nice: 0,
iowait: 0,
irq: 0,
softirq: 0,
idle: 85 - i,
},
},
])
}
const meta = store.getMeta('system.cpu')
t.ok(meta)
t.is(meta.context, 'system.cpu')
const q = await store.query({ chart: 'system.cpu', after: -60, before: 0, points: 15 })
t.absent(q.error)
t.ok(q.data.length > 0)
t.ok(q.labels.includes('user'))
t.ok(q.labels.includes('time'))
t.ok(q.source)
})
test('store unknown chart', async (t) => {
const store = new MetricStore()
const q = await store.query({ chart: 'nope.chart', points: 10 })
t.ok(q.error)
})