Support Node.js 0.10–6 (#132)

* Update dependencies

* Switch from jsdom to cheerio

* Update the supported Node.js versions

* Recompile the client-side CSS and JS
This commit is contained in:
Rowan Manning
2016-05-26 15:33:58 +01:00
committed by Andrew Mee
parent 6bfb4f72d9
commit ae6208d87e
18 changed files with 177 additions and 183 deletions

View File

@@ -32,14 +32,14 @@ describe('GET /<task-id>/delete', function() {
});
it('should have a "Delete URL" form', function() {
var form = this.last.dom.querySelectorAll('[data-test=delete-url-form]')[0];
var form = this.last.dom('[data-test=delete-url-form]').eq(0);
assert.isDefined(form);
assert.strictEqual(form.getAttribute('action'), '/abc000000000000000000001/delete');
assert.strictEqual(form.getAttribute('method'), 'post');
assert.strictEqual(form.attr('action'), '/abc000000000000000000001/delete');
assert.strictEqual(form.attr('method'), 'post');
});
it('should display a link back to the task page', function() {
assert.greaterThan(this.last.dom.querySelectorAll('[href="/abc000000000000000000001"]').length, 0);
assert.greaterThan(this.last.dom('[href="/abc000000000000000000001"]').length, 0);
});
});
@@ -70,9 +70,9 @@ describe('POST /<task-id>/delete', function() {
});
it('should display a success message', function() {
var alert = this.last.dom.querySelectorAll('[data-test=alert]')[0];
var alert = this.last.dom('[data-test=alert]').eq(0);
assert.isDefined(alert);
assert.match(alert.textContent, /been deleted/i);
assert.match(alert.text(), /been deleted/i);
});
});

View File

@@ -32,66 +32,66 @@ describe('GET /<task-id>/edit', function() {
});
it('should have an "Edit URL" form', function() {
var form = this.last.dom.querySelectorAll('[data-test=edit-url-form]')[0];
var form = this.last.dom('[data-test=edit-url-form]').eq(0);
assert.isDefined(form);
assert.strictEqual(form.getAttribute('action'), '/abc000000000000000000001/edit');
assert.strictEqual(form.getAttribute('method'), 'post');
assert.strictEqual(form.attr('action'), '/abc000000000000000000001/edit');
assert.strictEqual(form.attr('method'), 'post');
});
it('should display a link back to the task page', function() {
assert.greaterThan(this.last.dom.querySelectorAll('[href="/abc000000000000000000001"]').length, 0);
assert.greaterThan(this.last.dom('[href="/abc000000000000000000001"]').length, 0);
});
describe('"Edit URL" form', function() {
beforeEach(function() {
this.form = this.last.dom.querySelectorAll('[data-test=edit-url-form]')[0];
this.form = this.last.dom('[data-test=edit-url-form]').eq(0);
});
it('should have a "name" field', function() {
var field = this.form.querySelectorAll('input[name=name]')[0];
var field = this.form.find('input[name=name]').eq(0);
assert.isDefined(field);
assert.strictEqual(field.getAttribute('type'), 'text');
assert.strictEqual(field.getAttribute('value'), 'NPG Home');
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.querySelectorAll('input[name=url]')[0];
var field = this.form.find('input[name=url]').eq(0);
assert.isDefined(field);
assert.strictEqual(field.getAttribute('type'), 'url');
assert.strictEqual(field.getAttribute('value'), 'nature.com');
assert.isDefined(field.getAttribute('disabled'));
assert.strictEqual(field.attr('type'), 'url');
assert.strictEqual(field.attr('value'), 'nature.com');
assert.isDefined(field.attr('disabled'));
});
it('should have a "wait" field', function() {
var field = this.form.querySelectorAll('input[name=wait]')[0];
var field = this.form.find('input[name=wait]').eq(0);
assert.isDefined(field);
assert.strictEqual(field.getAttribute('type'), 'text');
assert.strictEqual(field.getAttribute('value'), '0');
assert.strictEqual(field.attr('type'), 'text');
assert.strictEqual(field.attr('value'), '0');
});
it('should have a disabled "standard" field', function() {
var field = this.form.querySelectorAll('select[name=standard]')[0];
var field = this.form.find('select[name=standard]').eq(0);
assert.isDefined(field);
assert.isDefined(field.getAttribute('disabled'));
assert.isDefined(field.attr('disabled'));
});
it('should have a "username" field', function() {
var field = this.form.querySelectorAll('input[name=username]')[0];
var field = this.form.find('input[name=username]').eq(0);
assert.isDefined(field);
assert.strictEqual(field.getAttribute('type'), 'text');
assert.strictEqual(field.getAttribute('value'), 'user');
assert.strictEqual(field.attr('type'), 'text');
assert.strictEqual(field.attr('value'), 'user');
});
it('should have a "password" field', function() {
var field = this.form.querySelectorAll('input[name=password]')[0];
var field = this.form.find('input[name=password]').eq(0);
assert.isDefined(field);
assert.strictEqual(field.getAttribute('type'), 'text');
assert.strictEqual(field.getAttribute('value'), 'access');
assert.strictEqual(field.attr('type'), 'text');
assert.strictEqual(field.attr('value'), 'access');
});
it('should have "ignore" fields', function() {
var fields = this.form.querySelectorAll('input[name="ignore[]"]');
var fields = this.form.find('input[name="ignore[]"]');
assert.isDefined(fields);
assert.notStrictEqual(fields.length, 0);
});
@@ -106,7 +106,7 @@ describe('POST /<task-id>/edit', function() {
var req = {
method: 'POST',
endpoint: '/abc000000000000000000001/edit',
body: {
form: {
name: 'foo',
username: 'newuser',
password: 'secure',
@@ -131,9 +131,9 @@ describe('POST /<task-id>/edit', function() {
});
it('should display a success message', function() {
var alert = this.last.dom.querySelectorAll('[data-test=alert]')[0];
var alert = this.last.dom('[data-test=alert]').eq(0);
assert.isDefined(alert);
assert.match(alert.textContent, /been saved/i);
assert.match(alert.text(), /been saved/i);
});
});

View File

@@ -34,46 +34,46 @@ describe('GET /<task-id>', function() {
});
it('should display an "Edit" button', function() {
assert.strictEqual(this.last.dom.querySelectorAll('[href="/abc000000000000000000001/edit"]').length, 1);
assert.strictEqual(this.last.dom('[href="/abc000000000000000000001/edit"]').length, 1);
});
it('should display a "Delete" button', function() {
assert.strictEqual(this.last.dom.querySelectorAll('[href="/abc000000000000000000001/delete"]').length, 1);
assert.strictEqual(this.last.dom('[href="/abc000000000000000000001/delete"]').length, 1);
});
it('should display a "Run" button', function() {
assert.strictEqual(this.last.dom.querySelectorAll('[href="/abc000000000000000000001/run"]').length, 1);
assert.strictEqual(this.last.dom('[href="/abc000000000000000000001/run"]').length, 1);
});
it('should display a "Download CSV" button for the latest result', function() {
assert.strictEqual(this.last.dom.querySelectorAll('[href="/abc000000000000000000001/def000000000000000000001.csv"]').length, 1);
assert.strictEqual(this.last.dom('[href="/abc000000000000000000001/def000000000000000000001.csv"]').length, 1);
});
it('should display a "Download JSON" button for the latest result', function() {
assert.strictEqual(this.last.dom.querySelectorAll('[href="/abc000000000000000000001/def000000000000000000001.json"]').length, 1);
assert.strictEqual(this.last.dom('[href="/abc000000000000000000001/def000000000000000000001.json"]').length, 1);
});
it('should display links to all results', function() {
assert.isDefined(this.last.dom.querySelectorAll('[href="/abc000000000000000000001/def000000000000000000001"]')[0]);
assert.isDefined(this.last.dom.querySelectorAll('[href="/abc000000000000000000001/def000000000000000000003"]')[0]);
assert.isDefined(this.last.dom('[href="/abc000000000000000000001/def000000000000000000001"]').eq(0));
assert.isDefined(this.last.dom('[href="/abc000000000000000000001/def000000000000000000003"]').eq(0));
});
it('should display errors', function() {
var elem = this.last.dom.querySelectorAll('[data-test=task-errors]')[0];
var elem = this.last.dom('[data-test=task-errors]').eq(0);
assert.isDefined(elem);
assert.match(elem.textContent, /errors \( 1 \)/i);
assert.match(elem.text(), /errors \( 1 \)/i);
});
it('should display warnings', function() {
var elem = this.last.dom.querySelectorAll('[data-test=task-warnings]')[0];
var elem = this.last.dom('[data-test=task-warnings]').eq(0);
assert.isDefined(elem);
assert.match(elem.textContent, /warnings \( 2 \)/i);
assert.match(elem.text(), /warnings \( 2 \)/i);
});
it('should display notices', function() {
var elem = this.last.dom.querySelectorAll('[data-test=task-notices]')[0];
var elem = this.last.dom('[data-test=task-notices]').eq(0);
assert.isDefined(elem);
assert.match(elem.textContent, /notices \( 3 \)/i);
assert.match(elem.text(), /notices \( 3 \)/i);
});
});
@@ -93,15 +93,15 @@ describe('GET /<task-id>', function() {
});
it('should display a "Run" button', function() {
var elem = this.last.dom.querySelectorAll('[data-test=run-task]');
var elem = this.last.dom('[data-test=run-task]');
assert.strictEqual(elem.length, 1);
assert.strictEqual(elem[0].getAttribute('href'), '/abc000000000000000000003/run');
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.querySelectorAll('[data-test=alert]')[0];
var alert = this.last.dom('[data-test=alert]').eq(0);
assert.isDefined(alert);
assert.match(alert.textContent, /there are no results to show/i);
assert.match(alert.text(), /there are no results to show/i);
});
});

View File

@@ -36,9 +36,9 @@ describe('GET /<task-id>/run', function() {
});
it('should display a success message', function() {
var alert = this.last.dom.querySelectorAll('[data-test=alert]')[0];
var alert = this.last.dom('[data-test=alert]').eq(0);
assert.isDefined(alert);
assert.match(alert.textContent, /new results are being generated/i);
assert.match(alert.text(), /new results are being generated/i);
});
});