116 lines
2.0 KiB
TypeScript
116 lines
2.0 KiB
TypeScript
// @ts-nocheck
|
|
import a from 'node:assert'
|
|
import test from 'node:test'
|
|
|
|
import serializeForm from './serialize_form.ts'
|
|
|
|
test('serializeForm', async (t) => {
|
|
await t.test('single values', () => {
|
|
const result = serializeForm({
|
|
elements: [
|
|
{
|
|
name: 't1',
|
|
value: 'v1',
|
|
},
|
|
{
|
|
name: 't2',
|
|
value: 'v2',
|
|
},
|
|
],
|
|
})
|
|
|
|
a.deepStrictEqual(result, {
|
|
t1: 'v1',
|
|
t2: 'v2',
|
|
})
|
|
})
|
|
|
|
await t.test('multiple values', () => {
|
|
const result = serializeForm({
|
|
elements: [
|
|
{
|
|
name: 't1',
|
|
value: 'v1',
|
|
},
|
|
{
|
|
name: 't1',
|
|
value: 'v2',
|
|
},
|
|
],
|
|
})
|
|
|
|
a.deepStrictEqual(result, {
|
|
t1: ['v1', 'v2'],
|
|
})
|
|
})
|
|
|
|
await t.test('checkbox', () => {
|
|
const result = serializeForm({
|
|
elements: [
|
|
{
|
|
name: 'c1',
|
|
type: 'checkbox',
|
|
checked: false,
|
|
value: 'v1',
|
|
},
|
|
{
|
|
name: 'c2',
|
|
type: 'checkbox',
|
|
checked: true,
|
|
value: 'v2',
|
|
},
|
|
],
|
|
})
|
|
|
|
a.deepStrictEqual(result, {
|
|
c2: 'v2',
|
|
})
|
|
})
|
|
|
|
await t.test('multiple checkboxes', () => {
|
|
const result = serializeForm({
|
|
elements: [
|
|
{
|
|
name: 'c1',
|
|
type: 'checkbox',
|
|
checked: false,
|
|
value: 'v1',
|
|
},
|
|
{
|
|
name: 'c2',
|
|
type: 'checkbox',
|
|
checked: true,
|
|
value: 'v2',
|
|
},
|
|
],
|
|
})
|
|
|
|
a.deepStrictEqual(result, {
|
|
c2: 'v2',
|
|
})
|
|
})
|
|
|
|
await t.test('radio', () => {
|
|
const result = serializeForm({
|
|
elements: [
|
|
{
|
|
name: 'r1',
|
|
type: 'radio',
|
|
checked: false,
|
|
value: 'v1',
|
|
},
|
|
{
|
|
name: 'r1',
|
|
type: 'radio',
|
|
checked: true,
|
|
value: 'v2',
|
|
},
|
|
],
|
|
})
|
|
|
|
a.deepStrictEqual(result, {
|
|
r1: 'v2',
|
|
})
|
|
})
|
|
})
|