Mappan
Mappan

Reputation: 2617

Jasmine fails in toEqual with objects that look the same

I've read other threads, tried multiple solutions but nothing seems to work.

Test:

it("parses string array", function(){
    var usArr = ["integer.ImageViewer.main.RawBuffer", "dio.ImageViewer.main.performUnitCalibration"];
    var newJson = [
        {
            fname : "integer.ImageViewer.main.RawBuffer",
            con : "ImageViewer.main",
            type : "integer",
            vars : [{name : "RawBuffer"}]
        },
        {
            fname : "dio.ImageViewer.main.performUnitCalibration",
            con : "ImageViewer.main",
            type : "dio",
            vars : [{name : "performUnitCalibration"}]
        }
    ];
    expect(JFactory.parseToJSON(usArr)).toEqual(newJson);
})

Error message:

Expected 

'[{"fname":"integer.ImageViewer.main.RawBuffer",
"com":"ImageViewer.main",
"type":"integer",
"vars":[{"name":"RawBuffer"}]},
{"fname":"dio.ImageViewer.main.performUnitCalibration",
"com":"ImageViewer.main",
"type":"dio",
"vars":[{"name":"performUnitCalibration"}]}]' 

to equal 
'[{"fname":"integer.ImageViewer.main.RawBuffer",
"con":"ImageViewer.main",
"type":"integer",
"vars":[{"name":"RawBuffer"}]},
{"fname":"dio.ImageViewer.main.performUnitCalibration",
"con":"ImageViewer.main",
"type":"dio",
"vars":[{"name":"performUnitCalibration"}]}]'.


Error: Expected 

'[{"fname":"integer.ImageViewer.main.RawBuffer",
"com":"ImageViewer.main",
"type":"integer",
"vars":[{"name":"RawBuffer"}]},
{"fname":"dio.ImageViewer.main.performUnitCalibration",
"com":"ImageViewer.main",
"type":"dio",
"vars":[{"name":"performUnitCalibration"}]}]' 

to equal 
'[{"fname":"integer.ImageViewer.main.RawBuffer",
"con":"ImageViewer.main",
"type":"integer",
"vars":[{"name":"RawBuffer"}]},
{"fname":"dio.ImageViewer.main.performUnitCalibration",
"con":"ImageViewer.main",
"type":"dio",
"vars":[{"name":"performUnitCalibration"}]}]'.

I've tried to JSON stringify both objects, tried toBe and tried:

expect(_.isEqual(JFactory.parseToJSON(usArr), newJson)).toEqual(true);

as suggested here: Jasmine toEqual for complex objects (mixed with functions) that gives me: ReferenceError: _ is not defined

I'm completely lost as the objects seem to be exactly the same.

Upvotes: 0

Views: 139

Answers (1)

mpm
mpm

Reputation: 20155

"com":"ImageViewer.main",

"con":"ImageViewer.main",

your are writing com in one and con in the other, they are definetly not equal.

Upvotes: 2

Related Questions