brf/client/shared/utils/serialize_form.test.ts

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',
})
})
})