chaijs / chai

BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework.
https://chaijs.github.io
MIT License
8.12k stars 698 forks source link

IE9 broken #150

Closed thanpolas closed 11 years ago

thanpolas commented 11 years ago

Just grabbed a fresh copy from chaijs.com to test on IE9 and saw this error:

SCRIPT438 object doesn't support property or method 'create'
chai.js, line 1554 character 5

That line contains an Object.create() method.

thanpolas commented 11 years ago

It is a disappointment to realize Chai officially does not support IE < 10 #124. Especially after investing so heavily on it and there are so long existing issues #117 #149

It should be loudly stated on the homepage or somewhere in the docs so developers know where they are getting into when investing in Chai for their web apps.

Anyone has any idea how to migrate gracefully to a working test suite?

logicalparadox commented 11 years ago

That commit is from over a year ago and has not caused problems before. Also, I don't run into that specific problem when I run the online test suite in IE9. Furthermore, microsoft docs indicates that Object.createis available in IE9. If you have further information regarding Object.create in chai, please feel free to re-open this issue.

Also, from the browser section of the Installation Guide.

Currently supports all modern browsers: IE 9+, Chrome 7+, FireFox 4+, Safari 5+. Please note that the should style is currently not compatible with IE9.

Yes, Chai's IE < 10 support is spotty, but between the docs and the online test suite I am confident that most developers have enough information to make an informed decision.

thanpolas commented 11 years ago

Rechecked with the online unit-tests, IE9 will pass, it's IE8 and bellow that won't play nice.

However both IE10 and IE9 will generate an error which i assume must be temporary?

satisfy

expected 'blah: expected 2 to satisfy [Function: matcher ]' to equal 'blah: expected 2 to satisfy [Function: matcher]'
   at assert (http://chaijs.com/chai.js:253:9)
   at assertEqual (http://chaijs.com/chai.js:656:11)
   at Anonymous function (http://chaijs.com/chai.js:2780:9)
   at err (http://chaijs.com/api/test/:23:13)
   at Anonymous function (http://chaijs.com/public/js/tests/expect.js:703:5)
   at run (http://chaijs.com/public/js/tests/mocha.js:3407:24)
   at runTest (http://chaijs.com/public/js/tests/mocha.js:3719:5)
   at Anonymous function (http://chaijs.com/public/js/tests/mocha.js:3765:7)
   at next (http://chaijs.com/public/js/tests/mocha.js:3647:7)
   at Anonymous function (http://chaijs.com/public/js/tests/mocha.js:3656:7)

Re the note you are right, i stand corrected.

VOGON CAPTAIN: There's no point in acting all surprised about it. All the planning charts and demolition orders have been on display at your local planning department in Alpha Centauri for fifty of your Earth years so you've had plenty of time to lodge any formal complaints and its far too late to start making a fuss about it now.

thanpolas commented 11 years ago

i'm sorry for bitching. I have been bit real hard by this, moths of work blown out of the water.

balupton commented 11 years ago

@thanpolas did you ever find solution or another project that includes <IE9 support?

thanpolas commented 11 years ago

@balupton didn't have the time yet to research a migration path. My plans are to checkout buster.js and Jasmine, they seem to have a similar API

gmoon commented 11 years ago

Just a note, I am getting a similar error on IE9:

SCRIPT438: Object doesn't support property or method 'create'
cha.js, line 278 character 1

The online test suite linked above, is working. Through the IE developer tools I was able to prove that the error is produced if Document Mode: Quirks is used. Document Mode: IE9 Standards works. I did some research and added this as the first line of my HTML runner, and it solved the issue:

<!DOCTYPE html>