Merge branch 'feature/collapsible-intermediate-input' of manuel/converter into develop
continuous-integration/drone the build was successful Details

This commit is contained in:
Manuel Friedli 2018-09-08 02:55:02 +02:00 committed by Gitea
commit b16ba7c84f
5 changed files with 53 additions and 2 deletions

View File

@ -1,7 +1,8 @@
pipeline:
build:
image: tamlyn/headless-nodejs
image: fritteli/headless-nodejs:1.1.0
commands:
- npm install
- npm run test:ci
- npm run e2e
- npm run build-prod

2
.gitignore vendored
View File

@ -35,7 +35,7 @@ testem.log
/typings
# e2e
/e2e/*.js
# /e2e/*.js
/e2e/*.map
# System Files

31
e2e/protractor.conf.js Normal file
View File

@ -0,0 +1,31 @@
// 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': 'chrome',
chromeOptions: {
args: [ "--headless", "--disable-gpu", "--no-sandbox" ]
}
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function() {}
},
onPrepare() {
require('ts-node').register({
project: require('path').join(__dirname, './tsconfig.e2e.json')
});
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
}
};

View File

@ -28,4 +28,14 @@ describe('convertorizr App', () => {
expect(content).toEqual('SGVsbG8sIFdvcmxkIQ==');
});
});
it('should display an error message if the conversion fails', () => {
page.navigateTo()
.then(() => page.setInputFieldContent(0, 'Oh noes!'))
.then(() => page.selectConverterOption(0, 'Decode Base 64'))
.then(() => page.getErrorMessage(0))
.then((content: string) => {
expect(content).toEqual('Could not decode base64 string. Maybe corrupt input?');
});
});
});

View File

@ -41,4 +41,13 @@ export class ConvertorizrPage {
.element(by.cssContainingText('option', optionName))
.click();
}
getErrorMessage(index: number): promise.Promise<string> {
return element
.all(by.css('app-root div.inputwrapper'))
.get(index)
.element(by.css('app-error-message div.errormessage'))
.getWebElement()
.getText();
}
}