67 lines
1.9 KiB
TypeScript
67 lines
1.9 KiB
TypeScript
import { Config, browser } from 'protractor';
|
|
import * as request from 'request';
|
|
|
|
|
|
/*
|
|
* Use a set environment variable or default value for the app host.
|
|
*/
|
|
export const appHost: string = process.env.APP_HOST || 'http://localhost:5000';
|
|
|
|
|
|
/**
|
|
* Protractor is configured to run against a Selenium instance running locally on port 4444 and a Quay instance running
|
|
* locally on port 5000.
|
|
* Easiest method is running the Quay and Selenium containers:
|
|
* $ docker run -d --net=host -v /dev/shm:/dev/shm selenium/standalone-chrome:3.4.0
|
|
* $ docker run -d --net=host quay.io/quay/quay
|
|
* $ yarn run e2e
|
|
*/
|
|
export const config: Config = {
|
|
framework: 'jasmine',
|
|
seleniumAddress: 'http://localhost:4444/wd/hub',
|
|
// Uncomment to run tests against local Chrome instance
|
|
directConnect: true,
|
|
capabilities: {
|
|
browserName: 'chrome',
|
|
chromeOptions: {
|
|
args: [
|
|
'--disable-infobars'
|
|
],
|
|
prefs: {
|
|
'profile.password_manager_enabled': false,
|
|
'credentials_enable_service': false,
|
|
'password_manager_enabled': false
|
|
}
|
|
}
|
|
},
|
|
onPrepare: () => {
|
|
browser.driver.manage().window().maximize();
|
|
|
|
// Resolve promise when request returns HTTP 200
|
|
return new Promise((resolve, reject) => {
|
|
const pollServer = (success, failure) => {
|
|
request(appHost, (error, response, body) => {
|
|
if (!error && response.statusCode == 200) {
|
|
console.log(`Successfully connected to server at ${appHost}`);
|
|
success();
|
|
} else {
|
|
console.log(`Could not connect to server at ${appHost}`);
|
|
setTimeout(() => {
|
|
failure(success, failure);
|
|
}, 5000);
|
|
}
|
|
});
|
|
};
|
|
|
|
pollServer(resolve, pollServer);
|
|
});
|
|
},
|
|
onComplete: () => {
|
|
browser.close();
|
|
},
|
|
specs: [
|
|
// './e2e/sanity.scenario.ts',
|
|
// './e2e/trigger-creation.scenario.ts',
|
|
'./e2e/image-repo.scenario.ts',
|
|
],
|
|
};
|