jasmine-json

Add matchers for testing json

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
jasmine-json
700.0.310 years ago10 years agoMinified + gzip package size for jasmine-json in KB

Readme

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