Skip to content

Commit

Permalink
Add extra assertions on the state of debugString
Browse files Browse the repository at this point in the history
  • Loading branch information
paulirish committed Aug 5, 2016
1 parent 12bfb3a commit c7884d7
Show file tree
Hide file tree
Showing 7 changed files with 77 additions and 34 deletions.
1 change: 0 additions & 1 deletion lighthouse-core/audits/manifest-background-color.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
const Audit = require('./audit');
const Formatter = require('../formatters/formatter');


class ManifestBackgroundColor extends Audit {
/**
* @return {!AuditMeta}
Expand Down
9 changes: 6 additions & 3 deletions lighthouse-core/test/audits/background-color.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ const manifestSrc = JSON.stringify(require('../fixtures/manifest.json'));
const manifestParser = require('../../lib/manifest-parser');
const exampleManifest = manifestParser(manifestSrc);


/* global describe, it*/

// Need to disable camelcase check for dealing with background_color.
Expand All @@ -44,7 +43,9 @@ describe('Manifest: background color audit', () => {
start_url: '/'
}))
};
return assert.equal(Audit.audit(artifacts).rawValue, false);
const output = Audit.audit(artifacts);
assert.equal(output.rawValue, false);
assert.equal(output.debugString, undefined);
});

it('fails when a minimal manifest contains an invalid background_color', () => {
Expand All @@ -53,7 +54,9 @@ describe('Manifest: background color audit', () => {
background_color: 'no'
}))
};
return assert.equal(Audit.audit(artifacts).rawValue, false);
const output = Audit.audit(artifacts);
assert.equal(output.rawValue, false);
assert.equal(output.debugString, undefined);
});

it('succeeds when a minimal manifest contains a valid background_color', () => {
Expand Down
27 changes: 14 additions & 13 deletions lighthouse-core/test/audits/cache-start-url.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,17 @@ describe('Cache: start_url audit', () => {
});

it('fails when no cache contents given', () => {
return assert.equal(Audit.audit({Manifest: exampleManifest, URL}).rawValue, false);
const artifacts = {Manifest: exampleManifest, URL};
const output = Audit.audit(artifacts);
assert.equal(output.rawValue, false);
assert.equal(output.debugString, 'No cache or URL detected');
});

it('fails when no URL given', () => {
return assert.equal(Audit.audit({Manifest: exampleManifest, CacheContents}).rawValue, false);
const artifacts = {Manifest: exampleManifest, CacheContents};
const output = Audit.audit(artifacts);
assert.equal(output.rawValue, false);
assert.equal(output.debugString, 'No cache or URL detected');
});

// Need to disable camelcase check for dealing with start_url.
Expand All @@ -43,23 +49,18 @@ describe('Cache: start_url audit', () => {
const artifacts = {
Manifest: { }
};
return assert.equal(Audit.audit(artifacts).rawValue, false);
});

it('fails when a manifest artifact contains a null start_url', () => {
const artifacts = {
Manifest: {
start_url: null
}
};
return assert.equal(Audit.audit(artifacts).rawValue, false);
const output = Audit.audit(artifacts);
assert.equal(output.rawValue, false);
assert.equal(output.debugString, 'start_url not present in Manifest');
});

it('fails when a manifest contains no start_url', () => {
const artifacts = {
Manifest: manifestParser('{}')
};
return assert.equal(Audit.audit(artifacts).rawValue, false);
const output = Audit.audit(artifacts);
assert.equal(output.rawValue, false);
assert.equal(output.debugString, 'start_url not present in Manifest');
});
/* eslint-enable camelcase */

Expand Down
24 changes: 22 additions & 2 deletions lighthouse-core/test/audits/exists.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,24 @@ describe('Manifest: exists audit', () => {
}}).rawValue, true);
});

it('succeeds when a minimal manifest contains a valid background_color', () => {
it('succeeds with a valid minimal manifest', () => {
const artifacts = {
Manifest: manifestParser('{}')
};
const output = Audit.audit(artifacts);
assert.equal(output.rawValue, true);
assert.equal(output.debugString, undefined);
});

it('succeeds with a valid minimal manifest', () => {
const artifacts = {
Manifest: manifestParser(JSON.stringify({
name: 'Lighthouse PWA'
}))
};
return assert.equal(Audit.audit(artifacts).rawValue, true);
const output = Audit.audit(artifacts);
assert.equal(output.rawValue, true);
assert.equal(output.debugString, undefined);
});

it('correctly passes through debug strings', () => {
Expand All @@ -55,6 +66,15 @@ describe('Manifest: exists audit', () => {
}).debugString, debugString);
});

it('correctly passes through a JSON parsing failure', () => {
const artifacts = {
Manifest: manifestParser('{ \name: Definitely not valid JSON }')
};
const output = Audit.audit(artifacts);
assert.equal(output.rawValue, false);
assert.ok(output.debugString.includes('Unexpected token'), 'No JSON error message');
});

it('succeeds with a complete manifest', () => {
return assert.equal(Audit.audit({Manifest: exampleManifest}).rawValue, true);
});
Expand Down
26 changes: 17 additions & 9 deletions lighthouse-core/test/audits/short-name.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,26 +39,34 @@ describe('Manifest: short_name audit', () => {
/* eslint-disable camelcase */
it('fails when a manifest contains no short_name and no name', () => {
const artifacts = {
name: null,
short_name: null
Manifest: manifestParser(JSON.stringify({
name: undefined,
short_name: undefined
}))
};
const Manifest = manifestParser(JSON.stringify(artifacts));

return assert.equal(Audit.audit({Manifest}).rawValue, false);
const output = Audit.audit(artifacts);
assert.equal(output.rawValue, false);
assert.equal(output.debugString, undefined);
});

it('succeeds when a manifest contains no short_name but a name', () => {
const artifacts = {
short_name: undefined,
name: 'Example App'
Manifest: manifestParser(JSON.stringify({
short_name: undefined,
name: 'Example App'
}))
};
const Manifest = manifestParser(JSON.stringify(artifacts));

return assert.equal(Audit.audit({Manifest}).rawValue, true);
const output = Audit.audit(artifacts);
assert.equal(output.rawValue, true);
assert.equal(output.debugString, undefined);
});
/* eslint-enable camelcase */

it('succeeds when a manifest contains a short_name', () => {
return assert.equal(Audit.audit({Manifest: exampleManifest}).rawValue, true);
const output = Audit.audit({Manifest: exampleManifest});
assert.equal(output.rawValue, true);
assert.equal(output.debugString, undefined);
});
});
12 changes: 9 additions & 3 deletions lighthouse-core/test/audits/start-url.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ describe('Manifest: start_url audit', () => {
const artifacts = {
Manifest: manifestParser('{}')
};
return assert.equal(Audit.audit(artifacts).rawValue, false);
const output = Audit.audit(artifacts);
assert.equal(output.rawValue, false);
assert.equal(output.debugString, undefined);
});

// Need to disable camelcase check for dealing with short_name.
Expand All @@ -43,7 +45,9 @@ describe('Manifest: start_url audit', () => {
start_url: undefined
}))
};
return assert.equal(Audit.audit(artifacts).rawValue, false);
const output = Audit.audit(artifacts);
assert.equal(output.rawValue, false);
assert.equal(output.debugString, undefined);
});

it('succeeds when a minimal manifest contains a start_url', () => {
Expand All @@ -52,7 +56,9 @@ describe('Manifest: start_url audit', () => {
start_url: '/'
}))
};
return assert.equal(Audit.audit(artifacts).rawValue, true);
const output = Audit.audit(artifacts);
assert.equal(output.rawValue, true);
assert.equal(output.debugString, undefined);
});
/* eslint-enable camelcase */

Expand Down
12 changes: 9 additions & 3 deletions lighthouse-core/test/audits/theme-color.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ describe('Manifest: theme_color audit', () => {
const artifacts = {
Manifest: manifestParser('{}')
};
return assert.equal(Audit.audit(artifacts).rawValue, false);
const output = Audit.audit(artifacts);
assert.equal(output.rawValue, false);
assert.equal(output.debugString, undefined);
});

// Need to disable camelcase check for dealing with theme_color.
Expand All @@ -43,7 +45,9 @@ describe('Manifest: theme_color audit', () => {
start_url: '/'
}))
};
return assert.equal(Audit.audit(artifacts).rawValue, false);
const output = Audit.audit(artifacts);
assert.equal(output.rawValue, false);
assert.equal(output.debugString, undefined);
});

it('succeeds when a minimal manifest contains a theme_color', () => {
Expand All @@ -52,7 +56,9 @@ describe('Manifest: theme_color audit', () => {
theme_color: '#bada55'
}))
};
return assert.equal(Audit.audit(artifacts).rawValue, true);
const output = Audit.audit(artifacts);
assert.equal(output.rawValue, true);
assert.equal(output.debugString, undefined);
});

/* eslint-enable camelcase */
Expand Down

0 comments on commit c7884d7

Please sign in to comment.