Skip to content

Undistraction/jasmine-multiline-matchers

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

jasmine-multiline-matchers

Use multiline template strings as values for your expectations without worrying about indentation.

Install

yarn add jasmine-multiline-matchers

or

npm install jasmine-multiline-matchers

Usage

See explaination of the problems with multiline template strings and how they are handled in the README for dedent-preserving-indents which is the library used under the hood of these matchers.

toEqualMultiline

A version of toEqual that supports multiline template strings.

it(`returns a multiline string`, () => {
  const expected = `
           Here is a multiline string
             - It can be indented
               However you like.
        And it doesn't just check the first line`
  expect(f()).toEqualMultiline(expected)
})

The expected string will have its whitespace trimmed to the line with the least whitespace, so the above would become:

  Here is a multiline string
      - It can be indented
        However you like.
And it doesn't just check the first line

toThrowMultiline

A version of toThrow that supports multiline template strings. Note that unlike toThrow it assumes you will supply an expected value you want to compare to the Error's message.

it(`returns a multiline string`, () => {
  const expected = `
          Here is a an error message
            - It is formatted
              However you like`
  expect(() => f()).toThrowMultiline(expected)
})

Using the matchers with Jest

Add the following line to your jest.config.js:

{
  ...
  setupTestFrameworkScriptFile: `<rootDir>/src/__tests__/testHelpers/customMatchers.js`,
}

Then in customMatchers.js:

import toEqualSuccessWithValue from '../../matchers/validation/toEqualSuccessWithValue'
import toEqualFailureWithValue from '../../matchers/validation/toEqualFailureWithValue'

expect.extend({
  toEqualSuccessWithValue,
  toEqualFailureWithValue,
})

About

Matchers for multiline strings

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published