Fieldset ยป assertAllTouched
assertAllTouched()
assertAllTouched(options)
assertAllTouched(message, options)
assertAllTouched(messageFunction, options)
Assert that all entries of this fieldset that were present in the parsed eno document were also queried (and therefore touched) by the application. This, combined with eno's query methods, serves to ensure a two-way guarantee for both users and developers: No data that the application requires can be left out, and no data that the application does not process can be supplied.
enoImportant data:
A = I need to be processed!
B = Me too!
javascriptconst document = eno.parse(input);
const fieldset = document.fieldset('Important data');
const dataA = fieldset.entry('A');
// ... processing happens only for dataA
fieldset.assertAllTouched(); // throws an error
fieldset.assertAllTouched({ only: ['A'] }) // passes
fieldset.assertAllTouched({ except: ['B'] }) // passes
fieldset.assertAllTouched(({ name, value }) => // throws an error "B is not ..."
`${name} is not supported by the application, please contact support if you think it should be`
);
Parameters
message or messageFunctionOptional, usually the default message (An excess element named [NAME] was
found, is it possibly a typo?) will do fine. If you want to override it,
provide either a static message as a string, or alternatively a function
returning a string. (The function is passed name
and value
inside a single
object parameter.)
only
An array of strings, e.g. ['name', 'email']
, which specifies to only check these elements for whether they've been touched.
except
An array of strings, e.g. ['phone number']
, which specifies to exclude these elements from checking whether they've been touched.