Skip to content

Commit

Permalink
tests
Browse files Browse the repository at this point in the history
  • Loading branch information
connorjclark committed Sep 28, 2020
1 parent 1eec2e5 commit 9c7e3a5
Showing 1 changed file with 66 additions and 35 deletions.
101 changes: 66 additions & 35 deletions lighthouse-core/test/audits/treemap-data-test.js
Expand Up @@ -109,89 +109,120 @@ describe('TreemapData audit', () => {
});

describe('.prepareTreemapNodes', () => {
it('basics 1', () => {
const rootNode = TreemapData.prepareTreemapNodes('', {'main.js': {resourceBytes: 100}});
it('uses node data when available', () => {
const rootNode = TreemapData.prepareTreemapNodes('', {
'a.js': {resourceBytes: 100},
'b.js': {resourceBytes: 100, duplicate: 'blah'},
'c.js': {resourceBytes: 100, unusedBytes: 50},
});
expect(rootNode).toMatchInlineSnapshot(`
Object {
"children": undefined,
"name": "/main.js",
"resourceBytes": 100,
"children": Array [
Object {
"name": "a.js",
"resourceBytes": 100,
},
Object {
"duplicate": "blah",
"name": "b.js",
"resourceBytes": 100,
},
Object {
"name": "c.js",
"resourceBytes": 100,
"unusedBytes": 50,
},
],
"name": "",
"resourceBytes": 300,
"unusedBytes": 50,
}
`);
});

it('basics 2', () => {
const sourcesData = {
'some/prefix/main.js': {resourceBytes: 100},
'a.js': {resourceBytes: 101},
};
const rootNode = TreemapData.prepareTreemapNodes('some/prefix', sourcesData);
it('creates directory node when multiple leaf nodes', () => {
const rootNode = TreemapData.prepareTreemapNodes('', {
'folder/a.js': {resourceBytes: 100},
'folder/b.js': {resourceBytes: 100},
});
expect(rootNode).toMatchInlineSnapshot(`
Object {
"children": Array [
Object {
"children": undefined,
"name": "/main.js",
"name": "a.js",
"resourceBytes": 100,
},
Object {
"name": "a.js",
"resourceBytes": 101,
"name": "b.js",
"resourceBytes": 100,
},
],
"name": "some/prefix",
"resourceBytes": 201,
"name": "/folder",
"resourceBytes": 200,
}
`);
});

it('basics 3', () => {
const sourcesData = {
'lib/a.js': {resourceBytes: 100},
'main.js': {resourceBytes: 101},
};
const rootNode = TreemapData.prepareTreemapNodes('', sourcesData);
it('flattens directory node when single leaf nodes', () => {
const rootNode = TreemapData.prepareTreemapNodes('', {
'root/folder1/a.js': {resourceBytes: 100},
'root/folder2/b.js': {resourceBytes: 100},
});
expect(rootNode).toMatchInlineSnapshot(`
Object {
"children": Array [
Object {
"children": undefined,
"name": "lib/a.js",
"name": "folder1/a.js",
"resourceBytes": 100,
},
Object {
"name": "main.js",
"resourceBytes": 101,
"children": undefined,
"name": "folder2/b.js",
"resourceBytes": 100,
},
],
"name": "",
"resourceBytes": 201,
"name": "/root",
"resourceBytes": 200,
}
`);
});

it('basics 4', () => {
it('source root replaces matching prefixes', () => {
const sourcesData = {
'lib/folder/a.js': {resourceBytes: 100},
'lib/folder/b.js': {resourceBytes: 101},
'some/prefix/main.js': {resourceBytes: 100, unusedBytes: 50},
'not/some/prefix/a.js': {resourceBytes: 101, unusedBytes: 51},
};
const rootNode = TreemapData.prepareTreemapNodes('', sourcesData);
const rootNode = TreemapData.prepareTreemapNodes('some/prefix', sourcesData);
expect(rootNode).toMatchInlineSnapshot(`
Object {
"children": Array [
Object {
"name": "a.js",
"children": undefined,
"name": "/main.js",
"resourceBytes": 100,
"unusedBytes": 50,
},
Object {
"name": "b.js",
"children": undefined,
"name": "not/a.js",
"resourceBytes": 101,
"unusedBytes": 51,
},
],
"name": "/lib/folder",
"name": "some/prefix",
"resourceBytes": 201,
"unusedBytes": 101,
}
`);

expect(rootNode.name).toBe('some/prefix');
expect(rootNode.resourceBytes).toBe(201);
expect(rootNode.unusedBytes).toBe(101);

const children = rootNode.children || [];
expect(children[0].name).toBe('/main.js');
expect(children[1].name).toBe('not/a.js');
});

it('unusedBytes', () => {
Expand Down

0 comments on commit 9c7e3a5

Please sign in to comment.