forked from adamlaska/browser-compat-data
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwalk.test.js
More file actions
63 lines (55 loc) · 1.95 KB
/
walk.test.js
File metadata and controls
63 lines (55 loc) · 1.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
const assert = require('assert').strict;
const bcd = require('..');
const { walk } = require('./index');
const { lowLevelWalk } = require('./walk');
describe('lowLevelWalk()', function () {
it('visits every top-level tree', function () {
const expectedPaths = [
'api',
'browsers',
'css',
'html',
'http',
'javascript',
'mathml',
'svg',
'webdriver',
'webextensions',
];
const steps = Array.from(lowLevelWalk(undefined, undefined, 1));
const paths = steps.map(step => step.path);
assert.equal(steps.length, expectedPaths.length);
assert.deepEqual(paths, expectedPaths);
});
it('visits every point in the tree', function () {
const paths = Array.from(lowLevelWalk()).map(step => step.path);
assert.ok(paths.length > 13000);
});
});
describe('walk()', function () {
it('should visit deeply nested features', function () {
let results = Array.from(walk('html')).map(feature => feature.path);
assert.ok(results.includes('html.elements.a.href.href_top'));
});
it('should walk a single tree', function () {
let results = Array.from(walk('api.Notification'));
assert.equal(results.length, 27);
assert.equal(results[0].path, 'api.Notification');
assert.equal(results[1].path, 'api.Notification.Notification');
});
it('should walk multiple trees', function () {
let results = Array.from(
walk(['api.Notification', 'css.properties.color']),
);
assert.equal(results.length, 28);
assert.equal(results[0].path, 'api.Notification');
assert.equal(results[results.length - 1].path, 'css.properties.color');
});
it('should yield every feature by default', function () {
const featureCountFromString = JSON.stringify(bcd, undefined, 2)
.split('\n')
.filter(line => line.includes('__compat')).length;
const featureCountFromWalk = Array.from(walk()).length;
assert.equal(featureCountFromString, featureCountFromWalk);
});
});