1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-25 00:07:47 +01:00
unleash.unleash/frontend/src/component/project/Project/ProjectEnterpriseSettingsForm/validate-feature-naming.test.ts

61 lines
1.9 KiB
TypeScript
Raw Normal View History

import { validateFeatureNamingExample } from './ProjectEnterpriseSettingsForm';
2023-09-07 08:18:18 +02:00
describe('validateFeatureNaming', () => {
test.each(['+', 'valid regex$'])(
`if the featureNamingPatternError prop is present, it's always valid: %s`,
(pattern) => {
2023-09-07 08:18:18 +02:00
const result = validateFeatureNamingExample({
pattern,
example: 'aohutnasoehutns',
featureNamingPatternError: 'error',
});
expect(result.state).toBe('valid');
},
2023-09-07 08:18:18 +02:00
);
test(`if the pattern is empty, the example is always valid`, () => {
const result = validateFeatureNamingExample({
pattern: '',
example: 'aohutnasoehutns',
featureNamingPatternError: undefined,
});
expect(result.state).toBe('valid');
});
test(`if the example is empty, the it's always valid`, () => {
const result = validateFeatureNamingExample({
pattern: '^dx-[a-z]{1,5}$',
example: '',
featureNamingPatternError: undefined,
});
expect(result.state).toBe('valid');
});
test.each([
['valid', 'dx-logs'],
['invalid', 'axe-battles'],
])(
`if example is %s, the state should be be the same`,
(state, example) => {
const result = validateFeatureNamingExample({
pattern: '^dx-[a-z]{1,5}$',
example,
featureNamingPatternError: undefined,
});
expect(result.state).toBe(state);
},
2023-09-07 08:18:18 +02:00
);
test('the pattern gets an implicit leading ^ and trailing $ added', () => {
const result = validateFeatureNamingExample({
pattern: '[a-z]+',
example: 'not.valid',
featureNamingPatternError: undefined,
});
expect(result.state).toBe('invalid');
});
2023-09-07 08:18:18 +02:00
});