UNPKG

@t7/utils

Version:

Utility methods for T7 components.

178 lines (141 loc) 3.09 kB
// Dependencies. import { parseFormData } from './' // Describe test. describe('parseFormData', () => { // ============ // Dummy names. // ============ const CHECKBOX_1_NAME = 'CHECKBOX_1_NAME' const INPUT_1_NAME = 'INPUT_1_NAME' const INPUT_2_NAME = 'INPUT_2_NAME' const RADIO_1_NAME = 'RADIO_1_NAME' const SELECT_1_NAME = 'SELECT_1_NAME' const TEXT_AREA_1_NAME = 'TEXT_AREA_1_NAME' const TEXT_DIV_1_NAME = 'TEXT_DIV_1_NAME' const TEXT_DIV_2_NAME = 'TEXT_DIV_2_NAME' // ============= // Dummy values. // ============= const CHECKBOX_1_VALUE = 'CHECKBOX_1_VALUE' const INPUT_1_VALUE = 'INPUT_1_VALUE' const INPUT_2_VALUE = 'INPUT_2_VALUE' const RADIO_1_VALUE = 'RADIO_1_VALUE' const SELECT_1_VALUE = 'SELECT_1_VALUE' const TEXT_AREA_1_VALUE = 'TEXT_AREA_1_VALUE' const TEXT_DIV_1_VALUE = 'TEXT_DIV_1_VALUE' const TEST_DIV_2_PLACEHOLDER = 'TEST_DIV_2_PLACEHOLDER' // =========== // Dummy HTML. // =========== document.body.innerHTML = ` <form> <input name="${INPUT_1_NAME}" value="${INPUT_1_VALUE}" type="text" /> <input name="${INPUT_2_NAME}" value="${INPUT_2_VALUE}" disabled="disabled" type="text" /> <input name="${CHECKBOX_1_NAME}" value="${CHECKBOX_1_VALUE}" type="checkbox" checked="checked" /> <input name="${RADIO_1_NAME}" value="${RADIO_1_VALUE}" type="radio" checked="checked" /> <select name="${SELECT_1_NAME}" > <option value="${SELECT_1_VALUE}" selected="selected" ></option> </select> <textarea name="${TEXT_AREA_1_NAME}" >${TEXT_AREA_1_VALUE}</textarea> <div name="${TEXT_DIV_1_NAME}" contenteditable="true" >${TEXT_DIV_1_VALUE}</div> <div name="${TEXT_DIV_2_NAME}" placeholder="${TEST_DIV_2_PLACEHOLDER}" contenteditable="true" >${TEST_DIV_2_PLACEHOLDER}</div> </form> ` // ================ // Expected result. // ================ const DATA_RESULT = [ { name: INPUT_1_NAME, value: INPUT_1_VALUE }, { name: CHECKBOX_1_NAME, value: CHECKBOX_1_VALUE, checked: true }, { name: RADIO_1_NAME, value: RADIO_1_VALUE, checked: true }, { name: SELECT_1_NAME, value: SELECT_1_VALUE }, { name: TEXT_AREA_1_NAME, value: TEXT_AREA_1_VALUE }, { name: TEXT_DIV_1_NAME, value: TEXT_DIV_1_VALUE }, { name: TEXT_DIV_2_NAME, value: '' } ] // ============ // Get content. // ============ const form = document.querySelector('form') // ===================== // Test for data output. // ===================== it('handles data output', () => { const data = parseFormData(form) expect(data) .toEqual(DATA_RESULT) }) })