0

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.

Community
  • 1
  • 1
Mappan
  • 2,537
  • 2
  • 22
  • 27

1 Answers1

2
"com":"ImageViewer.main",

"con":"ImageViewer.main",

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

mpm
  • 20,148
  • 7
  • 50
  • 55
  • 1
    Ahh, the cons of being a legally blind programmer show itself yet again. Thank you. – Mappan May 21 '14 at 15:39
  • 1
    I evaluted the strings in node,and did `JSON.stringify(x)===JSON.stringify(y)` since it returned false,it meant you had a typo somewhere in the code, dont worry,it's hard to spot even for people with good eyesight,cheers. – mpm May 21 '14 at 15:42