initial codebase
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
// Protractor configuration file, see link for more information
|
||||
// https://github.com/angular/protractor/blob/master/lib/config.ts
|
||||
|
||||
const { SpecReporter } = require('jasmine-spec-reporter');
|
||||
|
||||
exports.config = {
|
||||
allScriptsTimeout: 11000,
|
||||
specs: [
|
||||
'./src/**/*.e2e-spec.ts'
|
||||
],
|
||||
capabilities: {
|
||||
'browserName': process.env.PROTRACTOR_BROWSER || 'chrome'
|
||||
},
|
||||
// Only works with Chrome and Firefox
|
||||
directConnect: true,
|
||||
baseUrl: 'http://localhost:4200/',
|
||||
framework: 'jasmine2',
|
||||
jasmineNodeOpts: {
|
||||
showColors: true,
|
||||
defaultTimeoutInterval: 30000,
|
||||
print: function() {}
|
||||
},
|
||||
onPrepare() {
|
||||
require('ts-node').register({
|
||||
project: require('path').join(__dirname, './tsconfig.e2e.json')
|
||||
});
|
||||
// Better console spec reporter
|
||||
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,21 @@
|
||||
import { browser } from 'protractor';
|
||||
import { AppPage } from './app.po';
|
||||
|
||||
describe('app', () => {
|
||||
let page: AppPage;
|
||||
|
||||
beforeEach(() => {
|
||||
page = new AppPage();
|
||||
});
|
||||
|
||||
it('should display login page and login into app', () => {
|
||||
page.navigateTo();
|
||||
expect(browser.getCurrentUrl()).toContain('/login');
|
||||
page.login();
|
||||
});
|
||||
|
||||
it('should display hello message', () => {
|
||||
page.navigateTo();
|
||||
expect(page.getParagraphText()).toEqual('Hello world !');
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Use the Page Object pattern to define the page under test.
|
||||
* See docs/coding-guide/e2e-tests.md for more info.
|
||||
*/
|
||||
|
||||
import { browser, element, by } from 'protractor';
|
||||
|
||||
export class AppPage {
|
||||
usernameField = element(by.css('input[formControlName="username"]'));
|
||||
passwordField = element(by.css('input[formControlName="password"]'));
|
||||
loginButton = element(by.css('button[type="submit"]'));
|
||||
|
||||
constructor() {
|
||||
// Forces default language
|
||||
this.navigateTo();
|
||||
browser.executeScript(() => localStorage.setItem('language', 'en-US'));
|
||||
}
|
||||
|
||||
navigateTo() {
|
||||
return browser.get('/');
|
||||
}
|
||||
|
||||
login() {
|
||||
this.usernameField.sendKeys('test');
|
||||
this.passwordField.sendKeys('123');
|
||||
this.loginButton.click();
|
||||
}
|
||||
|
||||
getParagraphText() {
|
||||
return element(by.css('app-root h1')).getText();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"extends": "../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../out-tsc/e2e",
|
||||
"baseUrl": "./",
|
||||
"module": "commonjs",
|
||||
"target": "es5",
|
||||
"types": [
|
||||
"jasmine",
|
||||
"jasminewd2",
|
||||
"node"
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user