| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- import { multipartFormRequestOptions, createForm } from '@opencode-ai/sdk/internal/uploads';
- import { toFile } from '@opencode-ai/sdk/core/uploads';
- describe('form data validation', () => {
- test('valid values do not error', async () => {
- await multipartFormRequestOptions(
- {
- body: {
- foo: 'foo',
- string: 1,
- bool: true,
- file: await toFile(Buffer.from('some-content')),
- blob: new Blob(['Some content'], { type: 'text/plain' }),
- },
- },
- fetch,
- );
- });
- test('null', async () => {
- await expect(() =>
- multipartFormRequestOptions(
- {
- body: {
- null: null,
- },
- },
- fetch,
- ),
- ).rejects.toThrow(TypeError);
- });
- test('undefined is stripped', async () => {
- const form = await createForm(
- {
- foo: undefined,
- bar: 'baz',
- },
- fetch,
- );
- expect(form.has('foo')).toBe(false);
- expect(form.get('bar')).toBe('baz');
- });
- test('nested undefined property is stripped', async () => {
- const form = await createForm(
- {
- bar: {
- baz: undefined,
- },
- },
- fetch,
- );
- expect(Array.from(form.entries())).toEqual([]);
- const form2 = await createForm(
- {
- bar: {
- foo: 'string',
- baz: undefined,
- },
- },
- fetch,
- );
- expect(Array.from(form2.entries())).toEqual([['bar[foo]', 'string']]);
- });
- test('nested undefined array item is stripped', async () => {
- const form = await createForm(
- {
- bar: [undefined, undefined],
- },
- fetch,
- );
- expect(Array.from(form.entries())).toEqual([]);
- const form2 = await createForm(
- {
- bar: [undefined, 'foo'],
- },
- fetch,
- );
- expect(Array.from(form2.entries())).toEqual([['bar[]', 'foo']]);
- });
- });
|