console/integration-tests/tests/cli/texture.spec.ts

46 lines
1.9 KiB
TypeScript

import colors from 'colors';
import { boldQuotedWords } from '../../../packages/libraries/cli/src/helpers/texture/texture';
describe('boldQuotedWords', () => {
test('handles simple single-quoted strings', () => {
const input = "Changed value for 'foo'";
const expected = `Changed value for ${colors.bold('foo')}`;
expect(boldQuotedWords(input)).toBe(expected);
});
test('handles simple double-quoted strings', () => {
const input = 'Changed value for "foo"';
const expected = `Changed value for ${colors.bold('foo')}`;
expect(boldQuotedWords(input)).toBe(expected);
});
test('handles multiple quoted strings', () => {
const input = "Field 'name' on type 'User' was changed";
const expected = `Field ${colors.bold('name')} on type ${colors.bold('User')} was changed`;
expect(boldQuotedWords(input)).toBe(expected);
});
test('handles string with no quotes', () => {
const input = 'No quotes here';
expect(boldQuotedWords(input)).toBe(input);
});
test('handles escaped single quotes within single-quoted strings', () => {
const input =
"Enum value 'Status.INACTIVE' has deprecation reason 'Use \\'DISABLED\\' instead'";
const expected = `Enum value ${colors.bold('Status.INACTIVE')} has deprecation reason ${colors.bold("Use 'DISABLED' instead")}`;
expect(boldQuotedWords(input)).toBe(expected);
});
test('handles escaped double quotes within double-quoted strings', () => {
const input = 'Default value changed from "\\"test\\"" to "other"';
const expected = `Default value changed from ${colors.bold('"test"')} to ${colors.bold('other')}`;
expect(boldQuotedWords(input)).toBe(expected);
});
test('handles apostrophes when quotes are escaped', () => {
const input = "Reason 'Use \\'DISABLED\\' instead, it\\'s clearer'";
const expected = `Reason ${colors.bold("Use 'DISABLED' instead, it's clearer")}`;
expect(boldQuotedWords(input)).toBe(expected);
});
});