1. chai-string
strings comparison matchers for chai
chai-string
Package: chai-string
Created by: onechiporenko
Last modified: Sat, 15 Jul 2023 21:24:03 GMT
Version: 1.5.0
License: MIT
Downloads: 1,060,260
Repository: https://github.com/onechiporenko/chai-string

Install

npm install chai-string
yarn add chai-string

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.

RELATED POST

10 Must-Know Windows Shortcuts That Will Save You Time

10 Must-Know Windows Shortcuts That Will Save You Time

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Navigating AWS Networking: Essential Hacks for Smooth Operation

Navigating AWS Networking: Essential Hacks for Smooth Operation

Achieving Stunning Visuals with Unity's Global Illumination

Achieving Stunning Visuals with Unity's Global Illumination

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code