Files
twenty/packages/twenty-server/src/utils/__test__/is-snake-case-string.spec.ts
T
Félix Malfait 8b4b9ef8da Change type import rule (#13751)
Forcing "type" to be explicit, works best will rollup on the frontend to
exclude depdendencies
2025-08-08 01:27:05 +02:00

46 lines
1.3 KiB
TypeScript

import { type EachTestingContext } from 'twenty-shared/testing';
import { isSnakeCaseString } from 'src/utils/is-snake-case-string';
type IsSnakeCaseStringTestCase = EachTestingContext<{
input: string;
expected: boolean;
}>;
const testCases: IsSnakeCaseStringTestCase[] = [
{ title: 'single word', context: { input: 'FOO', expected: true } },
{ title: 'two words', context: { input: 'FOO_BAR', expected: true } },
{
title: 'words with numbers',
context: { input: 'FOO1_BAR2', expected: true },
},
{ title: 'lowercase', context: { input: 'foo_bar', expected: false } },
{
title: 'double underscore',
context: { input: 'FOO__BAR', expected: false },
},
{
title: 'dash instead of underscore',
context: { input: 'FOO-BAR', expected: false },
},
{
title: 'leading underscore',
context: { input: '_FOO_BAR', expected: false },
},
{
title: 'trailing underscore',
context: { input: 'FOO_BAR_', expected: false },
},
{ title: 'empty string', context: { input: '', expected: false } },
{
title: 'space instead of underscore',
context: { input: 'FOO BAR', expected: false },
},
];
describe('is-snake-case-string', () => {
test.each(testCases)('$title', ({ context: { input, expected } }) => {
expect(isSnakeCaseString(input)).toBe(expected);
});
});