Matchers for chai to help with common string comparison assertions.
const chai = require('chai');
chai.use(require('chai-string'));
- startsWith / startWith
- startsWithIgnoreCase / startWithIgnoreCase
- endsWith / endWith
- endsWithIgnoreCase / endWithIgnoreCase
- equalIgnoreCase
- equalIgnoreSpaces
- containIgnoreSpaces
- containIgnoreCase
- singleLine
- reverseOf
- palindrome
- entriesCount
- indexOf
All assertions are defined for both the BDD and TDD syntax but some aliases exist to make the assertions look good with both styles.
const d1 = 'abcdef',
d2 = 'abc';
d1.should.startWith.d2;
expect(d1).to.startsWith(d2);
assert.startsWith(d1, d2);
assert.startsWith('abcdef', 'abc');
expect('abcdef').to.startsWith('abc');
'abcdef'.should.startWith('abc');
assert.startsWithIgnoreCase('aBcdef', 'abC');
expect('abCdef').to.startsWithIgnoreCase('Abc');
'Abcdef'.should.startWithIgnoreCase('aBc');
assert.endsWith('abcdef', 'def');
expect('abcdef').to.endsWith('def');
'abcdef'.should.endWith('def');
assert.endsWithIgnoreCase('abcdEf', 'deF');
expect('abcDef').to.endsWithIgnoreCase('dEf');
'abcdeF'.should.endWithIgnoreCase('Def');
assert.equalIgnoreCase('abcdef', 'AbCdEf');
expect('abcdef').to.equalIgnoreCase('AbCdEf');
assert.equalIgnoreSpaces('abcdef', 'a\nb\tc\r d ef');
expect('abcdef').to.equalIgnoreSpaces('a\nb\tc\r d ef');
assert.containIgnoreSpaces('abcdefgh', 'a\nb\tc\r d ef');
expect('abcdefgh').to.containIgnoreSpaces('a\nb\tc\r d ef');
assert.containIgnoreCase('abcdefgh', 'AbcDefGH');
expect('abcdefgh').to.containIgnoreCase('AbcDefGH');
'abcdef'.should.containIgnoreCase('cDe');
assert.singleLine('abcdef');
expect('abcdef').to.be.singleLine();
assert.reverseOf('abcdef', 'fedcba');
expect('abcdef').to.be.reverseOf('fedcba');
assert.palindrome('abccba');
expect('abccba').to.be.palindrome();
assert.entriesCount('abcabd', 'ab', 2);
expect('abcabd').to.have.entriesCount('ab', 2);
assert.indexOf('abcabd', 'ab', 0);
expect('abcabd').to.have.indexOf('ab', 0);