From b428ef6babcf2f38d1af6e8e3c795e553ba96c2c Mon Sep 17 00:00:00 2001 From: Jonathan Buchanan Date: Mon, 19 Jan 2015 19:52:28 +0000 Subject: [PATCH] [fixed] incorrect function names in error messages. Switched tests to not use global asserts. --- lib/index.js | 6 +++--- test/index.js | 48 +++++++++++++++++++++++++++++++++--------------- 2 files changed, 36 insertions(+), 18 deletions(-) diff --git a/lib/index.js b/lib/index.js index e29b917..c49b22f 100644 --- a/lib/index.js +++ b/lib/index.js @@ -27,7 +27,7 @@ var toString = Object.prototype.toString */ function getFormData(form) { if (!form) { - throw new Error('A form is required by formElementData, was given form=' + form) + throw new Error('A form is required by getFormData, was given form=' + form) } var data = {} @@ -70,10 +70,10 @@ function getFormData(form) { */ function getNamedFormElementData(form, elementName) { if (!form) { - throw new Error('A form is required by getFieldData, but was given form=' + form) + throw new Error('A form is required by getNamedFormElementData, was given form=' + form) } if (!elementName) { - throw new Error('A form element name is required by getNamedFormElementData, but was given elementName=' + elementName) + throw new Error('A form element name is required by getNamedFormElementData, was given elementName=' + elementName) } var element = form.elements[elementName] diff --git a/test/index.js b/test/index.js index 82d120b..2f18e4a 100644 --- a/test/index.js +++ b/test/index.js @@ -1,6 +1,6 @@ -QUnit.test('getFormData', function() { +QUnit.test('getFormData', function(t) { var form = document.querySelector('#testForm') - deepEqual(getFormData(form), { + t.deepEqual(getFormData(form), { checkOneMultipleCheckbox: ['3'] , checkTwoMultipleCheckbox: ['1', '3'] , checkedCheckbox: 'checkedCheckbox' @@ -13,38 +13,56 @@ QUnit.test('getFormData', function() { , textInput: 'textInput' , unselectedSelect: '' }, 'buttons and disabled elements ignored, data extracted consistently') + + t.raises( + function() { getFormData() }, + /A form is required by getFormData, was given form=undefined/, + 'Error if form is not provided' + ) }) -QUnit.test('getNamedFormElementData', function() { +QUnit.test('getNamedFormElementData', function(t) { var getData = getFormData.getNamedFormElementData var form = document.querySelector('#testForm') - deepEqual(getData(form, 'checkedRadio'), '2', 'special case for radio select mutiple - single value rather than a list') + t.deepEqual(getData(form, 'checkedRadio'), '2', 'special case for radio select mutiple - single value rather than a list') + + t.deepEqual(getData(form, 'multipleCheckbox'), null, 'null for multiple checkboxes with nothing checked') + t.deepEqual(getData(form, 'checkOneMultipleCheckbox'), ['3'], 'list for 1 checked in multiple checkbox') + t.deepEqual(getData(form, 'checkTwoMultipleCheckbox'), ['1', '3'], 'list for >1 checked in multiple checkboxes') + + t.deepEqual(getData(form, 'selectMultiple'), null, 'null for select multiple with nothing selected') + t.deepEqual(getData(form, 'selectOneSelectMultiple'), ['3'], 'list for 1 selected in select multiple') + t.deepEqual(getData(form, 'selectTwoSelectMultiple'), ['1', '3'], 'list for >1 selected in select multiple') - deepEqual(getData(form, 'multipleCheckbox'), null, 'null for multiple checkboxes with nothing checked') - deepEqual(getData(form, 'checkOneMultipleCheckbox'), ['3'], 'list for 1 checked in multiple checkbox') - deepEqual(getData(form, 'checkTwoMultipleCheckbox'), ['1', '3'], 'list for >1 checked in multiple checkboxes') + t.raises( + function() { getData() }, + /A form is required by getNamedFormElementData, was given form=undefined/, + 'Error if form is not provided' + ) - deepEqual(getData(form, 'selectMultiple'), null, 'null for select multiple with nothing selected') - deepEqual(getData(form, 'selectOneSelectMultiple'), ['3'], 'list for 1 selected in select multiple') - deepEqual(getData(form, 'selectTwoSelectMultiple'), ['1', '3'], 'list for >1 selected in select multiple') + t.raises( + function() { getData(form) }, + /A form element name is required by getNamedFormElementData, was given elementName=undefined/, + 'Error if element name is not provided' + ) }) QUnit.module('README examples') -QUnit.test('getFormData', function() { +QUnit.test('getFormData', function(t) { var form = document.querySelector('#productForm') var data = getFormData(form) - deepEqual(getFormData(form), { + t.deepEqual(getFormData(form), { product: "1" , quantity: "9" , shipping: 'express' , tos: 'Y' - }, JSON.stringify(data)) + }, 'Data: ' + JSON.stringify(data)) }) -QUnit.test('getNamedFormElementData', function() { +QUnit.test('getNamedFormElementData', function(t) { var getFieldData = getFormData.getNamedFormElementData var form = document.querySelector('#tshirtForm') var data = getFieldData(form, 'sizes') - deepEqual(getFieldData(form, 'sizes'), ['M', 'L'], JSON.stringify(data)) + t.deepEqual(getFieldData(form, 'sizes'), ['M', 'L'], 'Data: ' + JSON.stringify(data)) }) \ No newline at end of file