UNPKG

1.59 kBJavaScriptView Raw
1'use strict'
2
3const test = require('tap').test
4const issueCategory = require('../analysis/issue-category.js')
5
6test('Analysis - issue category', function (t) {
7 const testQueries = [
8 'cpu memory delay handles -> unknown',
9 'cpu memory delay ....... -> unknown',
10 'cpu memory ..... handles -> unknown',
11 'cpu memory ..... ....... -> unknown',
12 'cpu ...... delay handles -> unknown',
13 'cpu ...... delay ....... -> unknown',
14 'cpu ...... ..... handles -> io',
15 'cpu ...... ..... ....... -> io',
16 '... memory delay handles -> unknown',
17 '... memory delay ....... -> gc',
18 '... memory ..... handles -> unknown',
19 '... memory ..... ....... -> gc',
20 '... ...... delay handles -> unknown',
21 '... ...... delay ....... -> event-loop',
22 '... ...... ..... handles -> io',
23 '... ...... ..... ....... -> none'
24 ]
25
26 const queryParser = new RegExp([
27 /^(cpu|\.{3}) (memory|\.{6})/.source,
28 / (delay|\.{5}) (handles|\.{7})/.source,
29 / -> (gc|event-loop|io|none|unknown)$/.source
30 ].join(''))
31
32 for (const testQuery of testQueries) {
33 const parsed = testQuery.match(queryParser)
34 if (parsed === null) {
35 t.fail(`could not parse "${testQuery}"`)
36 }
37
38 const issues = {
39 cpu: parsed[1] === 'cpu',
40 memory: {
41 external: false,
42 rss: false,
43 heapTotal: false,
44 heapUsed: parsed[2] === 'memory'
45 },
46 delay: parsed[3] === 'delay',
47 handles: parsed[4] === 'handles'
48 }
49 const expected = parsed[5]
50
51 t.strictEqual(issueCategory(issues), expected, testQuery)
52 }
53
54 t.end()
55})