ditto/packages/utils/formdata.test.ts
2025-02-17 15:32:18 -06:00

30 lines
866 B
TypeScript

import { assertEquals, assertThrows } from '@std/assert';
import { parseFormData } from './formdata.ts';
Deno.test('parseFormData', () => {
const formData = new FormData();
formData.append('foo', 'bar');
formData.append('fields_attributes[0][name]', 'baz');
formData.append('fields_attributes[0][value]', 'qux');
formData.append('fields_attributes[1][name]', 'quux');
formData.append('fields_attributes[1][value]', 'corge');
const result = parseFormData(formData);
assertEquals(result, {
foo: 'bar',
fields_attributes: [
{ name: 'baz', value: 'qux' },
{ name: 'quux', value: 'corge' },
],
});
assertThrows(() => {
const formData = new FormData();
formData.append('fields_attributes[1]', 'unexpected');
formData.append('fields_attributes[1][extra]', 'extra_value');
parseFormData(formData);
});
});