Strings comparison matchers for chai
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
test
.gitignore
.travis.yml
LICENSE
README.md
chai-string.js
package.json

README.md

chai-string

Matchers for chai to help with common string comparison assertions.

Build Status Downloads

Usage

Browser

<script src="chai.js"></script>
<script src="chai-string.js"></script>

Server

var chai = require('chai');
chai.use(require('chai-string'));

Assertions

  • startsWith/startWith
  • endsWith/endWith
  • equalIgnoreCase
  • equalIgnoreSpaces
  • containIgnoreSpaces
  • 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.

var d1 = 'abcdef',
    d2 = 'abc';

d1.should.startWith.d2
expect(d1).to.startsWith(d2)
assert.startsWith(d1, d2)

startsWith/startWith

assert.startsWith('abcdef', 'abc');
expect('abcdef').to.startsWith('abc');
'abcdef'.should.startWith('abc');

endsWith/endWith

assert.endsWith('abcdef', 'def');
expect('abcdef').to.endsWith('def');
'abcdef'.should.endWith('def');

equalIgnoreCase

assert.equalIgnoreCase('abcdef', 'AbCdEf');
expect('abcdef').to.equalIgnoreCase('AbCdEf');

equalIgnoreSpaces

assert.equalIgnoreSpaces('abcdef', 'a\nb\tc\r d  ef');
expect('abcdef').to.equalIgnoreSpaces('a\nb\tc\r d  ef');

containIgnoreSpaces

assert.containIgnoreSpaces('abcdefgh', 'a\nb\tc\r d  ef');
expect('abcdefgh').to.containIgnoreSpaces('a\nb\tc\r d  ef');

containIgnoreCase

assert.containIgnoreCase('abcdefgh', 'AbcDefGH'); 
expect('abcdefgh').to.containIgnoreCase('AbcDefGH');
'abcdef'.should.containIgnoreCase('cDe');

singleLine

assert.singleLine('abcdef');
expect('abcdef').to.be.singleLine();

reverseOf

assert.reverseOf('abcdef', 'fedcba');
expect('abcdef').to.be.reverseOf('fedcba');

palindrome

assert.palindrome('abccba');
expect('abccba').to.be.palindrome();

entriesCount

assert.entriesCount('abcabd', 'ab', 2);
expect('abcabd').to.have.entriesCount('ab', 2);

indexOf

assert.indexOf('abcabd', 'ab', 0);
expect('abcabd').to.have.indexOf('ab', 0);

Thanks

Thanks to the chai-datetime module for giving me an idea for how to structure and test a chai plugin.