Use the ES6 linting rules from the website (#138)

This commit is contained in:
Rowan Manning
2016-07-22 14:34:10 +01:00
committed by GitHub
parent df8f5a7d07
commit e431fefbd8
33 changed files with 246 additions and 237 deletions

View File

@@ -13,10 +13,11 @@
// You should have received a copy of the GNU General Public License
// along with Pa11y Dashboard. If not, see <http://www.gnu.org/licenses/>.
// jscs:disable requireArrowFunctions
'use strict';
var cheerio = require('cheerio');
var request = require('request');
const cheerio = require('cheerio');
const request = require('request');
module.exports = createNavigator;

View File

@@ -13,17 +13,18 @@
// You should have received a copy of the GNU General Public License
// along with Pa11y Dashboard. If not, see <http://www.gnu.org/licenses/>.
// jscs:disable requireArrowFunctions
'use strict';
var createClient = require('pa11y-webservice-client-node');
const createClient = require('pa11y-webservice-client-node');
module.exports = createWebserviceClient;
// Create a webservice client
function createWebserviceClient(config) {
var webserviceUrl = config.webservice;
let webserviceUrl = config.webservice;
if (typeof webserviceUrl === 'object') {
webserviceUrl = 'http://' + webserviceUrl.host + ':' + webserviceUrl.port + '/';
webserviceUrl = `http://${webserviceUrl.host}:${webserviceUrl.port}/`;
}
return createClient(webserviceUrl);
}

View File

@@ -13,14 +13,15 @@
// You should have received a copy of the GNU General Public License
// along with Pa11y Dashboard. If not, see <http://www.gnu.org/licenses/>.
// jscs:disable maximumLineLength, requireArrowFunctions
'use strict';
var assert = require('proclaim');
const assert = require('proclaim');
describe.only('GET /', function() {
beforeEach(function(done) {
var req = {
const req = {
method: 'GET',
endpoint: '/'
};
@@ -32,13 +33,13 @@ describe.only('GET /', function() {
});
it('should display an "Add new URL" button', function() {
var elem = this.last.dom('[data-test=add-task]');
const elem = this.last.dom('[data-test=add-task]');
assert.strictEqual(elem.length, 1);
assert.strictEqual(elem.eq(0).attr('href'), '/new');
});
it('should display all of the expected tasks', function() {
var tasks = this.last.dom('[data-test=task]');
const tasks = this.last.dom('[data-test=task]');
assert.strictEqual(tasks.length, 3);
assert.match(tasks.eq(0).text(), /npg home\s+\(wcag2aa\)/i);
assert.match(tasks.eq(1).text(), /npg home\s+\(wcag2aaa\)/i);
@@ -46,42 +47,42 @@ describe.only('GET /', function() {
});
it('should have links to each task', function() {
var tasks = this.last.dom('[data-test=task]');
const tasks = this.last.dom('[data-test=task]');
assert.strictEqual(tasks.eq(0).find('[href="/abc000000000000000000001"]').length, 1);
assert.strictEqual(tasks.eq(1).find('[href="/abc000000000000000000002"]').length, 1);
assert.strictEqual(tasks.eq(2).find('[href="/abc000000000000000000003"]').length, 1);
});
it('should display an "Edit" button for each task', function() {
var tasks = this.last.dom('[data-test=task]');
const tasks = this.last.dom('[data-test=task]');
assert.strictEqual(tasks.eq(0).find('[href="/abc000000000000000000001/edit"]').length, 1);
assert.strictEqual(tasks.eq(1).find('[href="/abc000000000000000000002/edit"]').length, 1);
assert.strictEqual(tasks.eq(2).find('[href="/abc000000000000000000003/edit"]').length, 1);
});
it('should display a "Delete" button for each task', function() {
var tasks = this.last.dom('[data-test=task]');
const tasks = this.last.dom('[data-test=task]');
assert.strictEqual(tasks.eq(0).find('[href="/abc000000000000000000001/delete"]').length, 1);
assert.strictEqual(tasks.eq(1).find('[href="/abc000000000000000000002/delete"]').length, 1);
assert.strictEqual(tasks.eq(2).find('[href="/abc000000000000000000003/delete"]').length, 1);
});
it('should display a "Run" button for each task', function() {
var tasks = this.last.dom('[data-test=task]');
const tasks = this.last.dom('[data-test=task]');
assert.strictEqual(tasks.eq(0).find('[href="/abc000000000000000000001/run"]').length, 1);
assert.strictEqual(tasks.eq(1).find('[href="/abc000000000000000000002/run"]').length, 1);
assert.strictEqual(tasks.eq(2).find('[href="/abc000000000000000000003/run"]').length, 1);
});
it('should display the task result counts if the task has been run', function() {
var tasks = this.last.dom('[data-test=task]');
const tasks = this.last.dom('[data-test=task]');
assert.match(tasks.eq(0).text(), /1\s*errors/i);
assert.match(tasks.eq(0).text(), /2\s*warnings/i);
assert.match(tasks.eq(0).text(), /3\s*notices/i);
});
it('should display a message indicating that there are no results if the task has not been run', function() {
var tasks = this.last.dom('[data-test=task]');
const tasks = this.last.dom('[data-test=task]');
assert.match(tasks.eq(2).text(), /no results/i);
});

View File

@@ -13,14 +13,15 @@
// You should have received a copy of the GNU General Public License
// along with Pa11y Dashboard. If not, see <http://www.gnu.org/licenses/>.
// jscs:disable maximumLineLength, requireArrowFunctions
'use strict';
var assert = require('proclaim');
const assert = require('proclaim');
describe('GET /new', function() {
beforeEach(function(done) {
var req = {
const req = {
method: 'GET',
endpoint: '/new'
};
@@ -36,7 +37,7 @@ describe('GET /new', function() {
});
it('should have an "Add new URL" form', function() {
var form = this.last.dom('[data-test=new-url-form]').eq(0);
const form = this.last.dom('[data-test=new-url-form]').eq(0);
assert.isDefined(form);
assert.strictEqual(form.attr('action'), '/new');
assert.strictEqual(form.attr('method'), 'post');
@@ -49,48 +50,48 @@ describe('GET /new', function() {
});
it('should have a "name" field', function() {
var field = this.form.find('input[name=name]').eq(0);
const field = this.form.find('input[name=name]').eq(0);
assert.isDefined(field);
assert.strictEqual(field.attr('type'), 'text');
assert.strictEqual(field.attr('value'), '');
});
it('should have a "url" field', function() {
var field = this.form.find('input[name=url]').eq(0);
const field = this.form.find('input[name=url]').eq(0);
assert.isDefined(field);
assert.strictEqual(field.attr('type'), 'url');
assert.strictEqual(field.attr('value'), '');
});
it('should have a "wait" field', function() {
var field = this.form.find('input[name=wait]').eq(0);
const field = this.form.find('input[name=wait]').eq(0);
assert.isDefined(field);
assert.strictEqual(field.attr('type'), 'text');
assert.strictEqual(field.attr('value'), '');
});
it('should have a "username" field', function() {
var field = this.form.find('input[name=username]').eq(0);
const field = this.form.find('input[name=username]').eq(0);
assert.isDefined(field);
assert.strictEqual(field.attr('type'), 'text');
assert.strictEqual(field.attr('value'), '');
});
it('should have a "password" field', function() {
var field = this.form.find('input[name=password]').eq(0);
const field = this.form.find('input[name=password]').eq(0);
assert.isDefined(field);
assert.strictEqual(field.attr('type'), 'text');
assert.strictEqual(field.attr('value'), '');
});
it('should have a "standard" field', function() {
var field = this.form.find('select[name=standard]').eq(0);
const field = this.form.find('select[name=standard]').eq(0);
assert.isDefined(field);
assert.strictEqual(field.find('option').length, 4);
});
it('should have "ignore" fields', function() {
var fields = this.form.find('input[name="ignore[]"]');
const fields = this.form.find('input[name="ignore[]"]');
assert.isDefined(fields);
assert.notStrictEqual(fields.length, 0);
});
@@ -104,7 +105,7 @@ describe('POST /new', function() {
describe('with invalid query', function() {
beforeEach(function(done) {
var req = {
const req = {
method: 'POST',
endpoint: '/new',
form: {
@@ -128,7 +129,7 @@ describe('POST /new', function() {
describe('with valid query', function() {
beforeEach(function(done) {
var req = {
const req = {
method: 'POST',
endpoint: '/new',
form: {
@@ -160,7 +161,7 @@ describe('POST /new', function() {
});
it('should display a success message', function() {
var alert = this.last.dom('[data-test=alert]').eq(0);
const alert = this.last.dom('[data-test=alert]').eq(0);
assert.isDefined(alert);
assert.match(alert.textContent, /url has been added/i);
});

View File

@@ -13,14 +13,15 @@
// You should have received a copy of the GNU General Public License
// along with Pa11y Dashboard. If not, see <http://www.gnu.org/licenses/>.
// jscs:disable maximumLineLength, requireArrowFunctions
'use strict';
var assert = require('proclaim');
const assert = require('proclaim');
describe('GET /<task-id>/<result-id>.csv', function() {
beforeEach(function(done) {
var req = {
const req = {
method: 'GET',
endpoint: '/abc000000000000000000001/def000000000000000000001.csv',
nonDom: true
@@ -41,7 +42,7 @@ describe('GET /<task-id>/<result-id>.csv', function() {
describe('GET /<task-id>/<result-id>.json', function() {
beforeEach(function(done) {
var req = {
const req = {
method: 'GET',
endpoint: '/abc000000000000000000001/def000000000000000000001.json',
nonDom: true,
@@ -55,7 +56,7 @@ describe('GET /<task-id>/<result-id>.json', function() {
});
it('should output JSON results', function() {
var json = this.last.body;
const json = this.last.body;
assert.strictEqual(json.task.name, 'NPG Home');
assert.strictEqual(json.task.url, 'nature.com');
assert.strictEqual(json.count.error, 1);

View File

@@ -13,14 +13,15 @@
// You should have received a copy of the GNU General Public License
// along with Pa11y Dashboard. If not, see <http://www.gnu.org/licenses/>.
// jscs:disable maximumLineLength, requireArrowFunctions
'use strict';
var assert = require('proclaim');
const assert = require('proclaim');
describe('GET /<task-id>/<result-id>', function() {
beforeEach(function(done) {
var req = {
const req = {
method: 'GET',
endpoint: '/abc000000000000000000001/def000000000000000000001'
};
@@ -32,13 +33,13 @@ describe('GET /<task-id>/<result-id>', function() {
});
it('should display a "Download CSV" button', function() {
var elem = this.last.dom('[data-test=download-csv]');
const elem = this.last.dom('[data-test=download-csv]');
assert.strictEqual(elem.length, 1);
assert.strictEqual(elem.eq(0).attr('href'), '/abc000000000000000000001/def000000000000000000001.csv');
});
it('should display a "Download JSON" button', function() {
var elem = this.last.dom('[data-test=download-json]');
const elem = this.last.dom('[data-test=download-json]');
assert.strictEqual(elem.length, 1);
assert.strictEqual(elem.eq(0).attr('href'), '/abc000000000000000000001/def000000000000000000001.json');
});
@@ -48,19 +49,19 @@ describe('GET /<task-id>/<result-id>', function() {
});
it('should display errors', function() {
var elem = this.last.dom('[data-test=task-errors]').eq(0);
const elem = this.last.dom('[data-test=task-errors]').eq(0);
assert.isDefined(elem);
assert.match(elem.text(), /errors \( 1 \)/i);
});
it('should display warnings', function() {
var elem = this.last.dom('[data-test=task-warnings]').eq(0);
const elem = this.last.dom('[data-test=task-warnings]').eq(0);
assert.isDefined(elem);
assert.match(elem.text(), /warnings \( 2 \)/i);
});
it('should display notices', function() {
var elem = this.last.dom('[data-test=task-notices]').eq(0);
const elem = this.last.dom('[data-test=task-notices]').eq(0);
assert.isDefined(elem);
assert.match(elem.text(), /notices \( 3 \)/i);
});

View File

@@ -13,14 +13,15 @@
// You should have received a copy of the GNU General Public License
// along with Pa11y Dashboard. If not, see <http://www.gnu.org/licenses/>.
// jscs:disable maximumLineLength, requireArrowFunctions
'use strict';
var assert = require('proclaim');
const assert = require('proclaim');
describe('GET /<task-id>/delete', function() {
beforeEach(function(done) {
var req = {
const req = {
method: 'GET',
endpoint: '/abc000000000000000000001/delete'
};
@@ -32,7 +33,7 @@ describe('GET /<task-id>/delete', function() {
});
it('should have a "Delete URL" form', function() {
var form = this.last.dom('[data-test=delete-url-form]').eq(0);
const form = this.last.dom('[data-test=delete-url-form]').eq(0);
assert.isDefined(form);
assert.strictEqual(form.attr('action'), '/abc000000000000000000001/delete');
assert.strictEqual(form.attr('method'), 'post');
@@ -47,7 +48,7 @@ describe('GET /<task-id>/delete', function() {
describe('POST /<task-id>/delete', function() {
beforeEach(function(done) {
var req = {
const req = {
method: 'POST',
endpoint: '/abc000000000000000000001/delete'
};
@@ -70,7 +71,7 @@ describe('POST /<task-id>/delete', function() {
});
it('should display a success message', function() {
var alert = this.last.dom('[data-test=alert]').eq(0);
const alert = this.last.dom('[data-test=alert]').eq(0);
assert.isDefined(alert);
assert.match(alert.text(), /been deleted/i);
});

View File

@@ -13,14 +13,15 @@
// You should have received a copy of the GNU General Public License
// along with Pa11y Dashboard. If not, see <http://www.gnu.org/licenses/>.
// jscs:disable maximumLineLength, requireArrowFunctions
'use strict';
var assert = require('proclaim');
const assert = require('proclaim');
describe('GET /<task-id>/edit', function() {
beforeEach(function(done) {
var req = {
const req = {
method: 'GET',
endpoint: '/abc000000000000000000001/edit'
};
@@ -32,7 +33,7 @@ describe('GET /<task-id>/edit', function() {
});
it('should have an "Edit URL" form', function() {
var form = this.last.dom('[data-test=edit-url-form]').eq(0);
const form = this.last.dom('[data-test=edit-url-form]').eq(0);
assert.isDefined(form);
assert.strictEqual(form.attr('action'), '/abc000000000000000000001/edit');
assert.strictEqual(form.attr('method'), 'post');
@@ -49,14 +50,14 @@ describe('GET /<task-id>/edit', function() {
});
it('should have a "name" field', function() {
var field = this.form.find('input[name=name]').eq(0);
const field = this.form.find('input[name=name]').eq(0);
assert.isDefined(field);
assert.strictEqual(field.attr('type'), 'text');
assert.strictEqual(field.attr('value'), 'NPG Home');
});
it('should have a disabled "url" field', function() {
var field = this.form.find('input[name=url]').eq(0);
const field = this.form.find('input[name=url]').eq(0);
assert.isDefined(field);
assert.strictEqual(field.attr('type'), 'url');
assert.strictEqual(field.attr('value'), 'nature.com');
@@ -64,34 +65,34 @@ describe('GET /<task-id>/edit', function() {
});
it('should have a "wait" field', function() {
var field = this.form.find('input[name=wait]').eq(0);
const field = this.form.find('input[name=wait]').eq(0);
assert.isDefined(field);
assert.strictEqual(field.attr('type'), 'text');
assert.strictEqual(field.attr('value'), '0');
});
it('should have a disabled "standard" field', function() {
var field = this.form.find('select[name=standard]').eq(0);
const field = this.form.find('select[name=standard]').eq(0);
assert.isDefined(field);
assert.isDefined(field.attr('disabled'));
});
it('should have a "username" field', function() {
var field = this.form.find('input[name=username]').eq(0);
const field = this.form.find('input[name=username]').eq(0);
assert.isDefined(field);
assert.strictEqual(field.attr('type'), 'text');
assert.strictEqual(field.attr('value'), 'user');
});
it('should have a "password" field', function() {
var field = this.form.find('input[name=password]').eq(0);
const field = this.form.find('input[name=password]').eq(0);
assert.isDefined(field);
assert.strictEqual(field.attr('type'), 'text');
assert.strictEqual(field.attr('value'), 'access');
});
it('should have "ignore" fields', function() {
var fields = this.form.find('input[name="ignore[]"]');
const fields = this.form.find('input[name="ignore[]"]');
assert.isDefined(fields);
assert.notStrictEqual(fields.length, 0);
});
@@ -103,7 +104,7 @@ describe('GET /<task-id>/edit', function() {
describe('POST /<task-id>/edit', function() {
beforeEach(function(done) {
var req = {
const req = {
method: 'POST',
endpoint: '/abc000000000000000000001/edit',
form: {
@@ -131,7 +132,7 @@ describe('POST /<task-id>/edit', function() {
});
it('should display a success message', function() {
var alert = this.last.dom('[data-test=alert]').eq(0);
const alert = this.last.dom('[data-test=alert]').eq(0);
assert.isDefined(alert);
assert.match(alert.text(), /been saved/i);
});

View File

@@ -13,16 +13,17 @@
// You should have received a copy of the GNU General Public License
// along with Pa11y Dashboard. If not, see <http://www.gnu.org/licenses/>.
// jscs:disable maximumLineLength, requireArrowFunctions
'use strict';
var assert = require('proclaim');
const assert = require('proclaim');
describe('GET /<task-id>', function() {
describe('when task has results', function() {
beforeEach(function(done) {
var req = {
const req = {
method: 'GET',
endpoint: '/abc000000000000000000001'
};
@@ -59,19 +60,19 @@ describe('GET /<task-id>', function() {
});
it('should display errors', function() {
var elem = this.last.dom('[data-test=task-errors]').eq(0);
const elem = this.last.dom('[data-test=task-errors]').eq(0);
assert.isDefined(elem);
assert.match(elem.text(), /errors \( 1 \)/i);
});
it('should display warnings', function() {
var elem = this.last.dom('[data-test=task-warnings]').eq(0);
const elem = this.last.dom('[data-test=task-warnings]').eq(0);
assert.isDefined(elem);
assert.match(elem.text(), /warnings \( 2 \)/i);
});
it('should display notices', function() {
var elem = this.last.dom('[data-test=task-notices]').eq(0);
const elem = this.last.dom('[data-test=task-notices]').eq(0);
assert.isDefined(elem);
assert.match(elem.text(), /notices \( 3 \)/i);
});
@@ -81,7 +82,7 @@ describe('GET /<task-id>', function() {
describe('when task has no results', function() {
beforeEach(function(done) {
var req = {
const req = {
method: 'GET',
endpoint: '/abc000000000000000000003'
};
@@ -93,13 +94,13 @@ describe('GET /<task-id>', function() {
});
it('should display a "Run" button', function() {
var elem = this.last.dom('[data-test=run-task]');
const elem = this.last.dom('[data-test=run-task]');
assert.strictEqual(elem.length, 1);
assert.strictEqual(elem.eq(0).attr('href'), '/abc000000000000000000003/run');
});
it('should display a message indicating that there are no results', function() {
var alert = this.last.dom('[data-test=alert]').eq(0);
const alert = this.last.dom('[data-test=alert]').eq(0);
assert.isDefined(alert);
assert.match(alert.text(), /there are no results to show/i);
});

View File

@@ -13,14 +13,15 @@
// You should have received a copy of the GNU General Public License
// along with Pa11y Dashboard. If not, see <http://www.gnu.org/licenses/>.
// jscs:disable maximumLineLength, requireArrowFunctions
'use strict';
var assert = require('proclaim');
const assert = require('proclaim');
describe('GET /<task-id>/run', function() {
beforeEach(function(done) {
var req = {
const req = {
method: 'GET',
endpoint: '/abc000000000000000000001/run'
};
@@ -36,7 +37,7 @@ describe('GET /<task-id>/run', function() {
});
it('should display a success message', function() {
var alert = this.last.dom('[data-test=alert]').eq(0);
const alert = this.last.dom('[data-test=alert]').eq(0);
assert.isDefined(alert);
assert.match(alert.text(), /new results are being generated/i);
});

View File

@@ -13,21 +13,22 @@
// You should have received a copy of the GNU General Public License
// along with Pa11y Dashboard. If not, see <http://www.gnu.org/licenses/>.
// jscs:disable requireArrowFunctions
'use strict';
var config = require('../../config/test.json');
var createNavigator = require('./helper/navigate');
var createWebserviceClient = require('./helper/webservice');
var loadFixtures = require('pa11y-webservice/data/fixture/load');
var request = require('request');
const config = require('../../config/test.json');
const createNavigator = require('./helper/navigate');
const createWebserviceClient = require('./helper/webservice');
const loadFixtures = require('pa11y-webservice/data/fixture/load');
const request = require('request');
// Run before all tests
before(function(done) {
this.baseUrl = 'http://localhost:' + config.port;
this.baseUrl = `http://localhost:${config.port}`;
this.last = {};
this.navigate = createNavigator(this.baseUrl, this.last);
this.webservice = createWebserviceClient(config);
assertTestAppIsRunning(this.baseUrl, function() {
assertTestAppIsRunning(this.baseUrl, () => {
loadFixtures('test', config.webservice, done);
});
});
@@ -39,7 +40,7 @@ afterEach(function(done) {
// Check that the test application is running, and exit if not
function assertTestAppIsRunning(url, done) {
request(url, function(err) {
request(url, err => {
if (err) {
console.error('Error: Test app not started; run with `NODE_ENV=test node index.js`');
process.exit(1);