Path: blob/main/extensions/copilot/src/extension/prompts/node/test/fixtures/strings.test-example.2.summarized.ts
13406 views
1suite('Strings', () => {2/* Lines 9-104 omitted */34test('format', () => {/* Lines 106-114 omitted */});56test('format2', () => {/* Lines 117-125 omitted */});78test('lcut', () => {9/* Lines 128-136 omitted */10assert.strictEqual(strings.lcut('a', 10), 'a');11});1213test('escape', () => {14assert.strictEqual(strings.escape(''), '');15assert.strictEqual(strings.escape('foo'), 'foo');16assert.strictEqual(strings.escape('foo bar'), 'foo bar');17assert.strictEqual(strings.escape('<foo bar>'), '<foo bar>');18assert.strictEqual(strings.escape('<foo>Hello</foo>'), '<foo>Hello</foo>');19});2021test('ltrim', () => {22assert.strictEqual(strings.ltrim('foo', 'f'), 'oo');23assert.strictEqual(strings.ltrim('foo', 'o'), 'foo');24assert.strictEqual(strings.ltrim('http://www.test.de', 'http://'), 'www.test.de');25assert.strictEqual(strings.ltrim('/foo/', '/'), 'foo/');26assert.strictEqual(strings.ltrim('//foo/', '/'), 'foo/');27assert.strictEqual(strings.ltrim('/', ''), '/');28assert.strictEqual(strings.ltrim('/', '/'), '');29assert.strictEqual(strings.ltrim('///', '/'), '');30assert.strictEqual(strings.ltrim('', ''), '');31assert.strictEqual(strings.ltrim('', '/'), '');32});3334test('rtrim', () => {35assert.strictEqual(strings.rtrim('foo', 'o'), 'f');36assert.strictEqual(strings.rtrim('foo', 'f'), 'foo');37assert.strictEqual(strings.rtrim('http://www.test.de', '.de'), 'http://www.test');38assert.strictEqual(strings.rtrim('/foo/', '/'), '/foo');39assert.strictEqual(strings.rtrim('/foo//', '/'), '/foo');40assert.strictEqual(strings.rtrim('/', ''), '/');41assert.strictEqual(strings.rtrim('/', '/'), '');42assert.strictEqual(strings.rtrim('///', '/'), '');43assert.strictEqual(strings.rtrim('', ''), '');44assert.strictEqual(strings.rtrim('', '/'), '');45});4647test('trim', () => {48assert.strictEqual(strings.trim(' foo '), 'foo');49assert.strictEqual(strings.trim(' foo'), 'foo');50assert.strictEqual(strings.trim('bar '), 'bar');51assert.strictEqual(strings.trim(' '), '');52assert.strictEqual(strings.trim('foo bar', 'bar'), 'foo ');53});5455test('trimWhitespace', () => {56assert.strictEqual(' foo '.trim(), 'foo');57assert.strictEqual(' foo '.trim(), 'foo');58assert.strictEqual(' foo'.trim(), 'foo');59assert.strictEqual('bar '.trim(), 'bar');60assert.strictEqual(' '.trim(), '');61assert.strictEqual(' '.trim(), '');62});6364test('lastNonWhitespaceIndex', () => {65assert.strictEqual(strings.lastNonWhitespaceIndex('abc \t \t '), 2);66assert.strictEqual(strings.lastNonWhitespaceIndex('abc'), 2);67assert.strictEqual(strings.lastNonWhitespaceIndex('abc\t'), 2);68assert.strictEqual(strings.lastNonWhitespaceIndex('abc '), 2);69assert.strictEqual(strings.lastNonWhitespaceIndex('abc \t \t '), 2);70assert.strictEqual(strings.lastNonWhitespaceIndex('abc \t \t abc \t \t '), 11);71assert.strictEqual(strings.lastNonWhitespaceIndex('abc \t \t abc \t \t ', 8), 2);72assert.strictEqual(strings.lastNonWhitespaceIndex(' \t \t '), -1);73});7475test('containsRTL', () => {76assert.strictEqual(strings.containsRTL('a'), false);77assert.strictEqual(strings.containsRTL(''), false);78assert.strictEqual(strings.containsRTL(strings.UTF8_BOM_CHARACTER + 'a'), false);79assert.strictEqual(strings.containsRTL('hello world!'), false);80assert.strictEqual(strings.containsRTL('a📚📚b'), false);81assert.strictEqual(strings.containsRTL('هناك حقيقة مثبتة منذ زمن طويل'), true);82assert.strictEqual(strings.containsRTL('זוהי עובדה מבוססת שדעתו'), true);83});8485test('issue #115221: isEmojiImprecise misses ⭐', () => {86const codePoint = strings.getNextCodePoint('⭐', '⭐'.length, 0);87assert.strictEqual(strings.isEmojiImprecise(codePoint), true);88});8990test('isBasicASCII', () => {91function assertIsBasicASCII(str: string, expected: boolean): void {92assert.strictEqual(strings.isBasicASCII(str), expected, str + ` (${str.charCodeAt(0)})`);93}94assertIsBasicASCII('abcdefghijklmnopqrstuvwxyz', true);95assertIsBasicASCII('ABCDEFGHIJKLMNOPQRSTUVWXYZ', true);96assertIsBasicASCII('1234567890', true);97assertIsBasicASCII('`~!@#$%^&*()-_=+[{]}\\|;:\'",<.>/?', true);98assertIsBasicASCII(' ', true);99assertIsBasicASCII('\t', true);100assertIsBasicASCII('\n', true);101assertIsBasicASCII('\r', true);102103let ALL = '\r\t\n';104for (let i = 32; i < 127; i++) {105ALL += String.fromCharCode(i);106}107assertIsBasicASCII(ALL, true);108109assertIsBasicASCII(String.fromCharCode(31), false);110assertIsBasicASCII(String.fromCharCode(127), false);111assertIsBasicASCII('ü', false);112assertIsBasicASCII('a📚📚b', false);113});114115test('createRegExp', () => {116// Empty117assert.throws(() => strings.createRegExp('', false));118119// Escapes appropriately120assert.strictEqual(strings.createRegExp('abc', false).source, 'abc');121assert.strictEqual(strings.createRegExp('([^ ,.]*)', false).source, '\\(\\[\\^ ,\\.\\]\\*\\)');122assert.strictEqual(strings.createRegExp('([^ ,.]*)', true).source, '([^ ,.]*)');123124// Whole word125assert.strictEqual(strings.createRegExp('abc', false, { wholeWord: true }).source, '\\babc\\b');126assert.strictEqual(strings.createRegExp('abc', true, { wholeWord: true }).source, '\\babc\\b');127assert.strictEqual(strings.createRegExp(' abc', true, { wholeWord: true }).source, ' abc\\b');128assert.strictEqual(strings.createRegExp('abc ', true, { wholeWord: true }).source, '\\babc ');129assert.strictEqual(strings.createRegExp(' abc ', true, { wholeWord: true }).source, ' abc ');130131const regExpWithoutFlags = strings.createRegExp('abc', true);132assert(!regExpWithoutFlags.global);133assert(regExpWithoutFlags.ignoreCase);134assert(!regExpWithoutFlags.multiline);135136const regExpWithFlags = strings.createRegExp('abc', true, { global: true, matchCase: true, multiline: true });137assert(regExpWithFlags.global);138assert(!regExpWithFlags.ignoreCase);139assert(regExpWithFlags.multiline);140});141142test('regExpContainsBackreference', () => {143assert(strings.regExpContainsBackreference('foo \\5 bar'));144assert(strings.regExpContainsBackreference('\\2'));145assert(strings.regExpContainsBackreference('(\\d)(\\n)(\\1)'));146assert(strings.regExpContainsBackreference('(A).*?\\1'));147assert(strings.regExpContainsBackreference('\\\\\\1'));148assert(strings.regExpContainsBackreference('foo \\\\\\1'));149150assert(!strings.regExpContainsBackreference(''));151assert(!strings.regExpContainsBackreference('\\\\1'));152assert(!strings.regExpContainsBackreference('foo \\\\1'));153assert(!strings.regExpContainsBackreference('(A).*?\\\\1'));154assert(!strings.regExpContainsBackreference('foo \\d1 bar'));155assert(!strings.regExpContainsBackreference('123'));156});157158test('getLeadingWhitespace', () => {159assert.strictEqual(strings.getLeadingWhitespace(' foo'), ' ');160assert.strictEqual(strings.getLeadingWhitespace(' foo', 2), '');161assert.strictEqual(strings.getLeadingWhitespace(' foo', 1, 1), '');162assert.strictEqual(strings.getLeadingWhitespace(' foo', 0, 1), ' ');163assert.strictEqual(strings.getLeadingWhitespace(' '), ' ');164assert.strictEqual(strings.getLeadingWhitespace(' ', 1), ' ');165assert.strictEqual(strings.getLeadingWhitespace(' ', 0, 1), ' ');166assert.strictEqual(strings.getLeadingWhitespace('\t\tfunction foo(){', 0, 1), '\t');167assert.strictEqual(strings.getLeadingWhitespace('\t\tfunction foo(){', 0, 2), '\t\t');168});169170test('fuzzyContains', () => {171assert.ok(!strings.fuzzyContains((undefined)!, null!));172assert.ok(strings.fuzzyContains('hello world', 'h'));173assert.ok(!strings.fuzzyContains('hello world', 'q'));174assert.ok(strings.fuzzyContains('hello world', 'hw'));175assert.ok(strings.fuzzyContains('hello world', 'horl'));176assert.ok(strings.fuzzyContains('hello world', 'd'));177assert.ok(!strings.fuzzyContains('hello world', 'wh'));178assert.ok(!strings.fuzzyContains('d', 'dd'));179});180181test('startsWithUTF8BOM', () => {182assert(strings.startsWithUTF8BOM(strings.UTF8_BOM_CHARACTER));183assert(strings.startsWithUTF8BOM(strings.UTF8_BOM_CHARACTER + 'a'));184assert(strings.startsWithUTF8BOM(strings.UTF8_BOM_CHARACTER + 'aaaaaaaaaa'));185assert(!strings.startsWithUTF8BOM(' ' + strings.UTF8_BOM_CHARACTER));186assert(!strings.startsWithUTF8BOM('foo'));187assert(!strings.startsWithUTF8BOM(''));188});189190test('stripUTF8BOM', () => {191assert.strictEqual(strings.stripUTF8BOM(strings.UTF8_BOM_CHARACTER), '');192assert.strictEqual(strings.stripUTF8BOM(strings.UTF8_BOM_CHARACTER + 'foobar'), 'foobar');193assert.strictEqual(strings.stripUTF8BOM('foobar' + strings.UTF8_BOM_CHARACTER), 'foobar' + strings.UTF8_BOM_CHARACTER);194assert.strictEqual(strings.stripUTF8BOM('abc'), 'abc');195assert.strictEqual(strings.stripUTF8BOM(''), '');196});197198test('containsUppercaseCharacter', () => {199[200[null, false],201['', false],202['foo', false],203['föö', false],204['ناك', false],205['מבוססת', false],206['😀', false],207['(#@()*&%()@*#&09827340982374}{:">?></\'\\~`', false],208209['Foo', true],210['FOO', true],211['FöÖ', true],212['FöÖ', true],213['\\Foo', true],214].forEach(([str, result]) => {215assert.strictEqual(strings.containsUppercaseCharacter(<string>str), result, `Wrong result for ${str}`);216});217});218219220221test('containsUppercaseCharacter (ignoreEscapedChars)', () => {222[223['\\Woo', false],224['f\\S\\S', false],225['foo', false],226227['Foo', true],228].forEach(([str, result]) => {229assert.strictEqual(strings.containsUppercaseCharacter(<string>str, true), result, `Wrong result for ${str}`);230});231});232233});234235236