Skip to content
This repository was archived by the owner on Jul 29, 2024. It is now read-only.

chore(test): clean up suite tests #5009

Merged
merged 9 commits into from
Nov 9, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 9 additions & 10 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
language: node_js
sudo: false
node_js:
- "8"
- "9"
- "10"

env:
Expand All @@ -13,21 +13,20 @@ env:
- LOGS_DIR=/tmp/protractor-build/logs
- BROWSER_PROVIDER_READY_FILE=/tmp/sauce-connect-ready
- CXX=g++-4.8
# TODO(selenium4): revert comments
matrix:
# - JOB=full
# - JOB=smoke
- JOB=bstack
- JOB=full
- JOB=smoke
# - JOB=bstack

matrix:
allow_failures:
- env: "JOB=smoke"
- env: "JOB=bstack"
# - env: "JOB=bstack"
exclude:
- env: JOB=smoke
node_js: "8"
- env: JOB=bstack
node_js: "8"
node_js: "9"
# - env: JOB=bstack
# node_js: "8"

addons:
apt:
Expand All @@ -51,4 +50,4 @@ script:
- ./scripts/test_on_travis.sh

after_script:
- ./scripts/print_logs.sh
- ./scripts/print_logs.sh
2 changes: 1 addition & 1 deletion circle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ version: 2
jobs:
build:
docker:
- image: circleci/node:10.13-browsers
- image: circleci/node:8.11-browsers
environment:
# Fix issue with selenium-server in containers.
# See http://github.com/SeleniumHQ/docker-selenium/issues/87
Expand Down
6 changes: 3 additions & 3 deletions scripts/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ var passingTests = [
// 'node built/cli.js spec/onPreparePromiseFileConf.js',
// 'node built/cli.js spec/mochaConf.js',
// 'node built/cli.js spec/withLoginConf.js',
// 'node built/cli.js spec/suitesConf.js --suite okmany',
// 'node built/cli.js spec/suitesConf.js --suite okspec',
// 'node built/cli.js spec/suitesConf.js --suite okmany,okspec',
'node built/cli.js spec/suitesConf.js --suite okmany',
'node built/cli.js spec/suitesConf.js --suite okspec',
'node built/cli.js spec/suitesConf.js --suite okmany,okspec',
// 'node built/cli.js spec/plugins/smokeConf.js',
// 'node built/cli.js spec/plugins/multiPluginConf.js',
// 'node built/cli.js spec/plugins/jasminePostTestConf.js',
Expand Down
1 change: 1 addition & 0 deletions spec/angular2Conf.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ var env = require('./environment');
// This is the configuration for a smoke test for an Angular TypeScript application.
exports.config = {
seleniumAddress: env.seleniumAddress,
SELENIUM_PROMISE_MANAGER: false,

framework: 'jasmine',

Expand Down
17 changes: 10 additions & 7 deletions spec/basic/elements_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -451,14 +451,15 @@ describe('ElementArrayFinder', () => {

it('should map each element on array and with promises', async() => {
await browser.get('index.html#/form');
var labels = await element.all(by.css('#animals ul li')).map(async(elm, index) => {
const labels = element.all(by.css('#animals ul li'))
.map(async(elm, index) => {
return {
index: index,
text: await elm.getText()
};
});

expect(labels).toEqual([
expect(await labels).toEqual([
{index: 0, text: 'big dog'},
{index: 1, text: 'small dog'},
{index: 2, text: 'other dog'},
Expand All @@ -469,7 +470,8 @@ describe('ElementArrayFinder', () => {

it('should map and resolve multiple promises', async() => {
await browser.get('index.html#/form');
const labels = await element.all(by.css('#animals ul li')).map(async (elm) => {
const labels = element.all(by.css('#animals ul li'))
.map(async (elm) => {
return {
text: await elm.getText(),
tagName: await elm.getTagName()
Expand All @@ -483,7 +485,7 @@ describe('ElementArrayFinder', () => {
};
};

expect(labels).toEqual([
expect(await labels).toEqual([
newExpected('big dog'),
newExpected('small dog'),
newExpected('other dog'),
Expand Down Expand Up @@ -541,10 +543,11 @@ describe('ElementArrayFinder', () => {
{ first: 'Th', second: 'Thursday' },
{ first: 'F', second: 'Friday' }];

const result = element.all(by.repeater('allinfo in days')).map((el) => {
const result = element.all(by.repeater('allinfo in days'))
.map(async(el) => {
return {
first: el.element(by.binding('allinfo.initial')).getText(),
second: el.element(by.binding('allinfo.name')).getText()
first: await el.element(by.binding('allinfo.initial')).getText(),
second: await el.element(by.binding('allinfo.name')).getText()
};
});

Expand Down
5 changes: 4 additions & 1 deletion spec/ciBStackConf.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,15 @@ var env = require('./environment.js');
exports.config = {
browserstackUser: process.env.BROWSER_STACK_USERNAME,
browserstackKey: process.env.BROWSER_STACK_ACCESS_KEY,
SELENIUM_PROMISE_MANAGER: false,

framework: 'jasmine',

// Spec patterns are relative to this directory.
specs: [
'basic/*_spec.js'
// TODO(selenium4): revert back to 'basic/*_spec.js', for now just use lib_spec
// 'basic/*_spec.js'
'basic/lib_spec.js'
],

// Exclude patterns are relative to this directory.
Expand Down
10 changes: 6 additions & 4 deletions spec/ciFullConf.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,18 @@ var env = require('./environment.js');
exports.config = {
sauceUser: process.env.SAUCE_USERNAME,
sauceKey: process.env.SAUCE_ACCESS_KEY,
SELENIUM_PROMISE_MANAGER: false,

framework: 'jasmine',

// Spec patterns are relative to this directory.
// TODO(selenium4): revert back to basic/*_spec.js
specs: [
'basic/elements_spec.js',
'basic/lib_spec.js',
'basic/navigation_spec.js',
'basic/handling_spec.js'
// 'basic/elements_spec.js',
'basic/lib_spec.js'
// ,
// 'basic/navigation_spec.js',
// 'basic/handling_spec.js'
],

// Exclude patterns are relative to this directory.
Expand Down
9 changes: 6 additions & 3 deletions spec/ciSmokeConf.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,16 @@ var env = require('./environment.js');
exports.config = {
sauceUser: process.env.SAUCE_USERNAME,
sauceKey: process.env.SAUCE_ACCESS_KEY,
SELENIUM_PROMISE_MANAGER: false,

framework: 'jasmine',

specs: [
'basic/locators_spec.js',
'basic/mockmodule_spec.js',
'basic/synchronize_spec.js'
// TODO(selenium4): revert back. For now just put on lib_spec.js
// 'basic/locators_spec.js',
// 'basic/mockmodule_spec.js',
// 'basic/synchronize_spec.js'
'basic/lib_spec.js'
],

// Two latest versions of IE, and Safari.
Expand Down
81 changes: 41 additions & 40 deletions spec/ng2/async_spec.js
Original file line number Diff line number Diff line change
@@ -1,82 +1,83 @@
describe('async angular2 application', function() {
var URL = '/ng2/#/async';
describe('async angular2 application', () => {
const URL = '/ng2/#/async';

beforeEach(function() {
browser.get(URL);
beforeEach(async() => {
await browser.get(URL);
});

it('should work with synchronous actions', function() {
var increment = $('#increment');
increment.$('.action').click();
it('should work with synchronous actions', async() => {
const increment = $('#increment');
await increment.$('.action').click();

expect(increment.$('.val').getText()).toEqual('1');
expect(await increment.$('.val').getText()).toEqual('1');
});

it('should wait for asynchronous actions', function() {
var timeout = $('#delayedIncrement');
it('should wait for asynchronous actions', async() => {
const timeout = $('#delayedIncrement');

// At this point, the async action is still pending, so the count should
// still be 0.
expect(timeout.$('.val').getText()).toEqual('0');
expect(await timeout.$('.val').getText()).toEqual('0');

timeout.$('.action').click();
await timeout.$('.action').click();

expect(timeout.$('.val').getText()).toEqual('1');
expect(await timeout.$('.val').getText()).toEqual('1');
});

it('should turn off when ignoreSynchronization is true', function() {
var timeout = $('#delayedIncrement');
it('should turn off when ignoreSynchronization is true', async() => {
// const timeout = $('#delayedIncrement');

// At this point, the async action is still pending, so the count should
// still be 0.
expect(timeout.$('.val').getText()).toEqual('0');
expect(await $('#delayedIncrement').$('.val').getText()).toEqual('0');

browser.waitForAngularEnabled(false);
await browser.waitForAngularEnabled(false);

timeout.$('.action').click();
timeout.$('.cancel').click();
await $('#delayedIncrement').$('.action').click();
await $('#delayedIncrement').$('.cancel').click();

browser.waitForAngularEnabled(true);
await browser.waitForAngularEnabled(true);

// whenStable should be called since the async action is cancelled. The
// count should still be 0;
expect(timeout.$('.val').getText()).toEqual('0');
expect(await $('#delayedIncrement').$('.val').getText()).toEqual('0');
});

it('should wait for a series of asynchronous actions', function() {
var timeout = $('#chainedDelayedIncrements');
it('should wait for a series of asynchronous actions', async() => {
const timeout = $('#chainedDelayedIncrements');

// At this point, the async action is still pending, so the count should
// still be 0.
expect(timeout.$('.val').getText()).toEqual('0');
expect(await timeout.$('.val').getText()).toEqual('0');

timeout.$('.action').click();
await timeout.$('.action').click();

expect(timeout.$('.val').getText()).toEqual('10');
expect(await timeout.$('.val').getText()).toEqual('10');
});

describe('long async spec', function() {
var originalTimeout;
beforeEach(function() {
describe('long async spec', () => {
let originalTimeout;
beforeEach(() => {
originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
jasmine.DEFAULT_TIMEOUT_INTERVAL = 30000;
});

it('should wait for a series of periodic increments', function() {
var timeout = $('#periodicIncrement_unzoned');
it('should wait for a series of periodic increments', async() => {
const timeout = $('#periodicIncrement_unzoned');

// Waits for the val to count 2.
var EC = protractor.ExpectedConditions;
timeout.$('.action').click();
browser.wait(EC.textToBePresentInElement(timeout.$('.val'), '1'), 4000);
timeout.$('.cancel').click();

var text = timeout.$('.val').getText();
browser.driver.sleep(3000);
expect(timeout.$('.val').getText()).toEqual(text);
const EC = protractor.ExpectedConditions;
await timeout.$('.action').click();
await browser.wait(EC.textToBePresentInElement(timeout.$('.val'), '1'),
4000);
await timeout.$('.cancel').click();

const text = timeout.$('.val').getText();
await browser.driver.sleep(3000);
expect(await timeout.$('.val').getText()).toEqual(text);
});

afterEach(function() {
afterEach(() => {
jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
});
});
Expand Down
4 changes: 2 additions & 2 deletions spec/suites/always_fail_spec.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
describe('This test suite', function() {
it('should never be ran through the --suite option', function() {
describe('This test suite', () => {
it('should never be ran through the --suite option', () => {
expect(true).toBe(false);
});
});
4 changes: 2 additions & 2 deletions spec/suites/ok_2_spec.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
describe('This test suite', function() {
it('should be ran through the --suite option', function() {
describe('This test suite', () => {
it('should be ran through the --suite option', () => {
expect(true).toBe(true);
});
});
4 changes: 2 additions & 2 deletions spec/suites/ok_spec.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
describe('This test suite', function() {
it('should be ran through the --suite option', function() {
describe('This test suite', () => {
it('should be ran through the --suite option', () => {
expect(true).toBe(true);
});
});
1 change: 1 addition & 0 deletions spec/suitesConf.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ var env = require('./environment.js');

exports.config = {
mockSelenium: true,
SELENIUM_PROMISE_MANAGER: false,

framework: 'jasmine',

Expand Down