- add sauce connect
- prepare to use karma on saucelabs; fix potential windows problems
- rewrite `scripts/ensure-compatible-npm.sh` in JS
- detect travis node 0.8 env; just upgrade if found
- symlink `mocha` to itself for `karma-mocha`
- if explicit `--production` flag is present, skip this
- don't know how to skip this part if `mocha` is a devDep of some other package
- use [email protected]; don't try to install npm@3
- browser tests with karma & phantom
- move `support/browser-entry.js` to `browser-entry.js` to keep paths sane
- `karma.conf.js` loads data out of `.karma.conf.js`
- we have a "main" browser suite
- then we have suites for each interface
- each suite is a single run of Karma
- each suite is executed by the `Makefile`
- build `./mocha.js` upon test execution for `karma-mocha` to use
- bonus: 3rd-party browserification should theoretically now be possible as per the `./index.js` entry in `package.json`'s `browser` field
- add dev deps for karma
- test changes:
- split `lookupFiles` test into its own file so we can ignore it in Karma
- fix broken `test/acceptance/throw.js` for browser
- fix `test/acceptance/utils.js`'s `type` tests for PhantomJS
- try to reduce build matrix
- fix missing targets
- fix infinite loop in Makefile
- downgrade phantomjs to 1.9.8
- remove some cruft from karma config; try to add sauce labs
- try again w/ the saucelabs
- typo
- remove karma-source-map-support as it's a no-go on IE8
- Require up-to-date mocha.js for any browser tests
- Make CI rebuild mocha.js. Make won't rebuild when just checked out by CI because timestamps on source and mocha.js are the same. We could use a script to set the timestamps to the commit time, but it still wouldn't work if mocha.js were committed along with other changes that hadn't been built into it. Which shouldn't happen anyway -- but then again, the point of CI is to see what commits change, it's usually going to need to rebuild mocha.js if it's working right, so it's not going to hurt much to rebuild it every time even on the few times it doesn't need to.