First Mocha Test
simple tests with Mocha and Chai
by Aides
HTML
<link rel="stylesheet" href="https://s3.amazonaws.com/kiddsoftware-jsfiddle/mocha-1.9.0.css">
<script src="https://s3.amazonaws.com/kiddsoftware-jsfiddle/mocha-1.9.0.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.2/require.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sinon.js/1.15.4/sinon.min.js"></script>
<script src="https://s3.amazonaws.com/kiddsoftware-jsfiddle/chai-jquery.js"></script>
<script src=" https://s3.amazonaws.com/kiddsoftware-jsfiddle/chai-1.5.0.js"></script>
<!-- Mocha test output goes here. -->
<div><p>First Line</p></div>
<div><p>Second Line</p></div>
<div id="mocha"></div>
CSS
p {
padding: 0;
margin: 0;
}
div:nth-child(1) > p {
color: green;
}
div::nth-child(2) > p {
color: blue;
}
JavaScript
requirejs.config({
'paths': {
'chai': 'https://s3.amazonaws.com/kiddsoftware-jsfiddle/chai-1.5.0.js',
'chai-as-promised': 'https://rawgit.com/domenic/chai-as-promised/v5.3.0/lib/chai-as-promised'
}
});
require(['chai-as-promised'], function(chaiAsPromised) {
// Configure Mocha, telling both it and chai to use BDD-style tests.
mocha.setup("bdd");
expect = chai.expect;
chai.use(chaiAsPromised);
describe('Promise.race()', function(){
it('should return the first promise resolving/rejecting', function(){
var racingAdapters = [
{ find: function() {} },
{ find: function() {} },
{ find: function() {} }
];
var adapterSpys = [
sinon.stub(racingAdapters[0], 'find', function() {
return new Promise(function(resolve, reject) {
setTimeout(resolve, 1200, 'second');
})
}),
sinon.stub(racingAdapters[1], 'find', function() {
return new Promise(function(resolve, reject) {
setTimeout(resolve, 1000, 'first');
})
}),
sinon.stub(racingAdapters[2], 'find', function() {
return new Promise(function(resolve, reject) {
setTimeout(resolve, 1500, 'third');
})
})
];
var response = Promise.all(racingAdapters);
return expect(response).to.eventually.equal('first');
});
});
// Run all our test suites. Only necessary in the browser.
mocha.run();
});