unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
68 lines • 2.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const util_1 = require("../../util");
const validate_1 = require("../validate");
describe('tag value validation', () => {
test.each([
['minimum', util_1.TAG_MIN_LENGTH],
['maximum', util_1.TAG_MAX_LENGTH],
])(`names with the %s length are valid`, (_, length) => {
const data = {
value: 'a'.repeat(length),
type: 'simple',
};
const validationResult = (0, validate_1.validateSchema)('#/components/schemas/createTagSchema', data);
expect(validationResult).toBeUndefined();
});
test(`names can not be only whitespace`, () => {
const space = ' '.repeat(util_1.TAG_MIN_LENGTH);
const data = {
value: space,
type: 'simple',
};
const validationResult = (0, validate_1.validateSchema)('#/components/schemas/createTagSchema', data);
expect(validationResult).toMatchObject({
errors: [{ keyword: 'pattern', instancePath: '/value' }],
});
});
test(`names must be at least ${util_1.TAG_MIN_LENGTH} characters long, not counting leading and trailing whitespace`, () => {
const space = ' '.repeat(util_1.TAG_MIN_LENGTH);
const data = {
value: space + 'a'.repeat(util_1.TAG_MIN_LENGTH - 1) + space,
type: 'simple',
};
const validationResult = (0, validate_1.validateSchema)('#/components/schemas/createTagSchema', data);
expect(validationResult).toMatchObject({
errors: [{ keyword: 'pattern', instancePath: '/value' }],
});
});
test(`spaces within a tag value counts towards its maximum length`, () => {
const space = ' '.repeat(util_1.TAG_MAX_LENGTH);
const data = {
value: `a${space}z`,
type: 'simple',
};
const validationResult = (0, validate_1.validateSchema)('#/components/schemas/createTagSchema', data);
expect(validationResult).toMatchObject({
errors: [{ keyword: 'pattern', instancePath: '/value' }],
});
});
test(`leading and trailing whitespace does not count towards a name's maximum length`, () => {
const space = ' '.repeat(util_1.TAG_MAX_LENGTH);
const data = {
value: space + 'a'.repeat(util_1.TAG_MAX_LENGTH) + space,
type: 'simple',
};
const validationResult = (0, validate_1.validateSchema)('#/components/schemas/createTagSchema', data);
expect(validationResult).toBeUndefined();
});
test(`tag names can contain spaces`, () => {
const data = {
value: 'tag name with spaces',
type: 'simple',
};
const validationResult = (0, validate_1.validateSchema)('#/components/schemas/createTagSchema', data);
expect(validationResult).toBeUndefined();
});
});
//# sourceMappingURL=create-tag-schema.test.js.map