feat(test): add e2e tests for benchmarks and examples
Disables running the actual benchmarks on every commit as well to speed up the build.
This commit is contained in:
parent
8c6527251b
commit
14e91e209e
|
@ -26,6 +26,10 @@ module.exports = function(config) {
|
|||
'test-main.js'
|
||||
],
|
||||
|
||||
exclude: [
|
||||
'modules/**/e2e_test/**'
|
||||
],
|
||||
|
||||
preprocessors: {
|
||||
'modules/**/*.js': ['traceur'],
|
||||
'modules/**/*.es6': ['traceur'],
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
var benchpress = require('../../../tools/benchpress/index.js');
|
||||
|
||||
describe('ng2 change detection benchmark', function () {
|
||||
|
||||
var URL = 'benchmarks/web/change_detection/change_detection_benchmark.html';
|
||||
|
||||
afterEach(benchpress.verifyNoBrowserErrors);
|
||||
|
||||
it('should not throw errors', function() {
|
||||
browser.get(URL);
|
||||
clickAll(['#ng2DetectChanges', '#baselineDetectChanges']);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function clickAll(buttonSelectors) {
|
||||
buttonSelectors.forEach(function(selector) {
|
||||
$(selector).click();
|
||||
});
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
"use strict";
|
||||
var benchpress = require('../../../tools/benchpress/index.js');
|
||||
|
||||
describe('ng2 compiler benchmark', function () {
|
||||
|
||||
var URL = 'benchmarks/web/compiler/compiler_benchmark.html';
|
||||
|
||||
afterEach(benchpress.verifyNoBrowserErrors);
|
||||
|
||||
it('should not throw errors', function() {
|
||||
browser.get(URL);
|
||||
clickAll(['#compileWithBindings', '#compileNoBindings']);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function clickAll(buttonSelectors) {
|
||||
buttonSelectors.forEach(function(selector) {
|
||||
$(selector).click();
|
||||
});
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
var benchpress = require('../../../tools/benchpress/index.js');
|
||||
|
||||
describe('ng2 di benchmark', function () {
|
||||
|
||||
var URL = 'benchmarks/web/di/di_benchmark.html';
|
||||
|
||||
afterEach(benchpress.verifyNoBrowserErrors);
|
||||
|
||||
it('should not throw errors', function() {
|
||||
browser.get(URL);
|
||||
clickAll(['#getByToken', '#getByKey', '#getChild', '#instantiate']);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function clickAll(buttonSelectors) {
|
||||
buttonSelectors.forEach(function(selector) {
|
||||
$(selector).click();
|
||||
});
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
var benchpress = require('../../../tools/benchpress/index.js');
|
||||
|
||||
describe('ng2 element injector benchmark', function () {
|
||||
|
||||
var URL = 'benchmarks/web/element_injector/element_injector_benchmark.html';
|
||||
|
||||
afterEach(benchpress.verifyNoBrowserErrors);
|
||||
|
||||
it('should not throw errors', function() {
|
||||
browser.get(URL);
|
||||
clickAll(['#instantiate', '#instantiateDirectives']);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function clickAll(buttonSelectors) {
|
||||
buttonSelectors.forEach(function(selector) {
|
||||
$(selector).click();
|
||||
});
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
var benchpress = require('../../../tools/benchpress/index.js');
|
||||
|
||||
describe('ng2 tree benchmark', function () {
|
||||
|
||||
var URL = 'benchmarks/web/tree/tree_benchmark.html';
|
||||
|
||||
afterEach(benchpress.verifyNoBrowserErrors);
|
||||
|
||||
it('should not throw errors', function() {
|
||||
browser.get(URL);
|
||||
clickAll(['#ng2CreateDom', '#ng2DestroyDom', '#baselineCreateDom', '#baselineDestroyDom']);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function clickAll(buttonSelectors) {
|
||||
buttonSelectors.forEach(function(selector) {
|
||||
$(selector).click();
|
||||
});
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
var benchpress = require('../../../tools/benchpress/index.js');
|
||||
|
||||
describe('ng1.x compiler benchmark', function () {
|
||||
|
||||
var URL = 'benchmarks_external/web/compiler/compiler_benchmark.html';
|
||||
|
||||
afterEach(benchpress.verifyNoBrowserErrors);
|
||||
|
||||
it('should not throw errors', function() {
|
||||
browser.get(URL);
|
||||
clickAll(['#compileWithBindings', '#compileNoBindings']);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function clickAll(buttonSelectors) {
|
||||
buttonSelectors.forEach(function(selector) {
|
||||
$(selector).click();
|
||||
});
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
var benchpress = require('../../../tools/benchpress/index.js');
|
||||
|
||||
describe('ng1.x tree benchmark', function () {
|
||||
|
||||
var URL = 'benchmarks_external/web/tree/tree_benchmark.html';
|
||||
|
||||
afterEach(benchpress.verifyNoBrowserErrors);
|
||||
|
||||
it('should not throw errors', function() {
|
||||
browser.get(URL);
|
||||
clickAll(['#createDom', '#destroyDom']);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function clickAll(buttonSelectors) {
|
||||
buttonSelectors.forEach(function(selector) {
|
||||
$(selector).click();
|
||||
});
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
var benchpress = require('../../../../tools/benchpress/index.js');
|
||||
describe('hello world', function () {
|
||||
|
||||
afterEach(benchpress.verifyNoBrowserErrors);
|
||||
|
||||
describe('static reflection', function() {
|
||||
var URL = 'examples/web/hello_world/index_static.html';
|
||||
|
||||
it('should greet', function() {
|
||||
browser.get(URL);
|
||||
|
||||
expect(getShadowText('hello-app')).toBe('hello world!');
|
||||
});
|
||||
});
|
||||
|
||||
describe('dynamic reflection', function() {
|
||||
var URL = 'examples/web/hello_world/index.html';
|
||||
|
||||
it('should greet', function() {
|
||||
browser.get(URL);
|
||||
|
||||
expect(getShadowText('hello-app')).toBe('hello world!');
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function getShadowText(selector) {
|
||||
return browser.executeScript('return document.querySelector("'+selector+'").shadowRoot.textContent');
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
var config = exports.config = require('./protractor-e2e-shared.js').config;
|
||||
config.baseUrl = 'http://localhost:8002/';
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
var config = exports.config = require('./protractor-e2e-shared.js').config;
|
||||
config.baseUrl = 'http://localhost:8001/';
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
// load traceur runtime as our tests are written in es6
|
||||
require('traceur/bin/traceur-runtime.js');
|
||||
|
||||
var config = exports.config = {
|
||||
|
||||
specs: ['dist/cjs/**/*_spec.js'],
|
||||
|
||||
// Disable waiting for Angular as we don't have an integration layer yet...
|
||||
// TODO(tbosch): Implement a proper debugging API for Ng2.0, remove this here
|
||||
// and the sleeps in all tests.
|
||||
onPrepare: function() {
|
||||
browser.ignoreSynchronization = true;
|
||||
var _get = browser.get;
|
||||
var sleepInterval = process.env.TRAVIS ? 5000 : 2000;
|
||||
browser.get = function() {
|
||||
var result = _get.apply(this, arguments);
|
||||
browser.sleep(sleepInterval);
|
||||
return result;
|
||||
}
|
||||
},
|
||||
|
||||
jasmineNodeOpts: {
|
||||
showColors: true,
|
||||
defaultTimeoutInterval: 30000
|
||||
}
|
||||
};
|
||||
|
||||
if (process.env.TRAVIS) {
|
||||
config.capabilities = {
|
||||
name: 'Dartium',
|
||||
browserName: 'chrome',
|
||||
chromeOptions: {
|
||||
'binary': process.env.DARTIUM
|
||||
},
|
||||
loggingPrefs: {
|
||||
performance: 'ALL'
|
||||
}
|
||||
};
|
||||
} else {
|
||||
config.capabilities = {
|
||||
browserName: 'chrome',
|
||||
loggingPrefs: {
|
||||
performance: 'ALL'
|
||||
}
|
||||
};
|
||||
}
|
|
@ -27,10 +27,11 @@ var config = exports.config = {
|
|||
onPrepare: function() {
|
||||
browser.ignoreSynchronization = true;
|
||||
var _get = browser.get;
|
||||
var sleepInterval = process.env.TRAVIS ? 5000 : 1000;
|
||||
var sleepInterval = process.env.TRAVIS ? 5000 : 2000;
|
||||
browser.get = function() {
|
||||
var result = _get.apply(this, arguments);
|
||||
browser.sleep(sleepInterval);
|
||||
return _get.apply(this, arguments);
|
||||
return result;
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
@ -29,5 +29,5 @@ serverPid=$!
|
|||
|
||||
trap killServer EXIT
|
||||
|
||||
./node_modules/.bin/protractor protractor-perf-js.conf.js
|
||||
./node_modules/.bin/protractor protractor-perf-dart2js.conf.js
|
||||
./node_modules/.bin/protractor protractor-e2e-js.conf.js
|
||||
./node_modules/.bin/protractor protractor-e2e-dart2js.conf.js
|
Loading…
Reference in New Issue