// Use the external Chai As Promised to deal with resolving promises in
// expectations.
var chai = require('chai');
var chaiAsPromised = require('chai-as-promised');
chai.use(chaiAsPromised);
var expect = chai.expect;
// Chai's expect().to.exist style makes default jshint unhappy.
// jshint expr:true
describe('no protractor at all', function() {
it('should still do normal tests', function() {
expect(true).to.equal(true);
});
});
describe('protractor library', function() {
it.skip('should be able to skip tests', function() {
expect(true).to.equal(false);
});
it('should expose the correct global variables', function() {
expect(protractor).to.exist;
expect(browser).to.exist;
expect(by).to.exist;
expect(element).to.exist;
expect($).to.exist;
});
it('should wrap webdriver', function() {
// Mocha will report the spec as slow if it goes over this time in ms.
this.slow(6000);
browser.get('index.html');
expect(browser.getTitle()).to.eventually.equal('My AngularJS App');
});
describe('with async tests', function() {
var finished = false;
it('should wait for async operations to finish', function() {
browser.get('index.html').then(function() { finished = true; });
});
after('verify mocha waited', function() {
if(!finished) { throw new Error('Mocha did not wait for async!'); }
});
});
});