jasmine-json

0.0.3 • Public • Published

Jasmine JSON matcher

Comparing large objects with jasmine works great until you get an error, when it dumps the entire object to the console in a completely human unreadable format.

This package adds a toEqualJson matcher to jasmine that will generate nice diffs on error. It will tell you which keys differ, and why.

# In your spec helper 
require 'jasmine-json'
 
# In your specs 
 
describe "something"->
  it "tests json"->
    someObject =
      one: 1
      two:
        three: 5
        four: 4
 
    expect(someObject).toEqualJson
      one: 1
      two:
        three: 3
        four: 4
        five: 5

It will give you the path of the failure:

JSON is not equal:
two:
  actual:   has keys ["four","three"]
  expected: has keys ["five","four","three"]

If there are several errors, it will report all of them:

it "tests json"->
    someObject =
      two:
        three:
          four:
            five: 4
            six: 5
            seven: 6
 
    expect(someObject).toEqualJson
      two:
        three:
          four:
            five: 5
            six: 6
            seven: 7

Reports:

JSON is not equal:
two.three.four.five:
  actual:   4
  expected: 5
two.three.four.six:
  actual:   5
  expected: 6
two.three.four.seven:
  actual:   6
  expected: 7

Dependencies (0)

    Dev Dependencies (8)

    Package Sidebar

    Install

    npm i jasmine-json

    Weekly Downloads

    392

    Version

    0.0.3

    License

    none

    Last publish

    Collaborators

    • benogle