Skip to content

Commit

Permalink
[fixed] incorrect function names in error messages.
Browse files Browse the repository at this point in the history
Switched tests to not use global asserts.
  • Loading branch information
insin committed Jan 19, 2015
1 parent ac7529f commit b428ef6
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 18 deletions.
6 changes: 3 additions & 3 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 = {}
Expand Down Expand Up @@ -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]
Expand Down
48 changes: 33 additions & 15 deletions test/index.js
Original file line number Diff line number Diff line change
@@ -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'
Expand All @@ -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))
})

0 comments on commit b428ef6

Please sign in to comment.