Refactor default value for select (#5343)

In this PR, we are refactoring two things:
- leverage field.defaultValue for Select and MultiSelect settings form
(instead of option.isDefault)
- use quoted string (ex: "'USD'") for string default values to embrace
backend format

---------

Co-authored-by: Thaïs Guigon <guigon.thais@gmail.com>
This commit is contained in:
Charles Bochet
2024-05-10 10:26:46 +02:00
committed by GitHub
parent 7728c09dba
commit 8590bd7227
40 changed files with 843 additions and 559 deletions

View File

@ -0,0 +1,38 @@
import { SafeParseError } from 'zod';
import { simpleQuotesStringSchema } from '../simpleQuotesStringSchema';
describe('simpleQuotesStringSchema', () => {
it('validates a string with simple quotes', () => {
// Given
const input = "'with simple quotes'";
// When
const result = simpleQuotesStringSchema.parse(input);
// Then
expect(result).toBe(input);
});
it.each([
// Given
['no simple quotes'],
["'only at start"],
["only at end'"],
["mid'dle"],
[''],
])('fails for strings not wrapped in simple quotes (%s)', (input) => {
// When
const result = simpleQuotesStringSchema.safeParse(input);
// Then
expect(result.success).toBe(false);
expect((result as SafeParseError<string>).error.errors).toEqual([
{
code: 'custom',
message: 'String should be wrapped in simple quotes',
path: [],
},
]);
});
});