Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(e2e): add ng e2e command #228

Merged
merged 1 commit into from
Feb 19, 2016
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
11 changes: 4 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,16 +152,13 @@ Tests will execute after a build is executed via [Karma](http://karma-runner.git

### Running end-to-end tests

Before running the tests make sure that you have an updated webdriver and that
the tests are built:

```bash
$(npm bin)/webdriver-manager update
$(npm bin)/tsc -p e2e/
ng e2e
```

Afterwards you only need to run `$(npm bin)/protractor` while serving via
`ng serve`.
Before running the tests make sure you are serving the app via `ng serve`.

End-to-end tests are ran via [Protractor](https://angular.github.io/protractor/).


### Deploying the app via GitHub Pages
Expand Down
3 changes: 2 additions & 1 deletion addon/ng2/blueprints/ng2/files/e2e/app.e2e.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import "angular2/testing";
/// <reference path="../typings/main.d.ts" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, scratch that last comment.


import { <%= jsComponentName %>Page } from './app.po';

describe('<%= htmlComponentName %> App', function() {
Expand Down
2 changes: 0 additions & 2 deletions addon/ng2/blueprints/ng2/files/e2e/app.po.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import "angular2/testing";

export class <%= jsComponentName %>Page {
navigateTo() { return browser.get('/'); }
getParagraphText() { return element(by.css('<%= jsComponentName %>-app p')).getText(); }
Expand Down
13 changes: 9 additions & 4 deletions addon/ng2/blueprints/ng2/files/e2e/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
{
"compilerOptions": {
"target": "ES5",
"module": "commonjs",
"sourceMap": true,
"declaration": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false
"mapRoot": "",
"module": "system",
"moduleResolution": "node",
"noEmitOnError": true,
"noImplicitAny": false,
"rootDir": ".",
"sourceMap": true,
"sourceRoot": "/",
"target": "es5"
}
}
8 changes: 6 additions & 2 deletions addon/ng2/blueprints/ng2/files/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@
"start": "ng server",
"postinstall": "typings install --ambient",
"lint": "tslint src/**/*.ts",
"format": "clang-format -i -style=file --glob=src/**/*.ts"
"format": "clang-format -i -style=file --glob=src/**/*.ts",
"pree2e": "webdriver-manager update",
"e2e": "protractor"
},
"private": true,
"dependencies": {
Expand All @@ -30,12 +32,14 @@
"ember-cli-inject-live-reload": "^1.3.0",
"glob": "^6.0.4",
"jasmine-core": "^2.3.4",
"jasmine-spec-reporter": "^2.4.0",
"karma": "^0.13.15",
"karma-chrome-launcher": "^0.2.1",
"karma-jasmine": "^0.3.6",
"protractor": "^3.0.0",
"tslint": "^3.3.0",
"typescript": "^1.7.3",
"typings": "^0.6.6"
"typings": "^0.6.6",
"ts-node": "^0.5.5"
}
}
24 changes: 11 additions & 13 deletions addon/ng2/blueprints/ng2/files/protractor.conf.js
Original file line number Diff line number Diff line change
@@ -1,28 +1,26 @@
var SpecReporter = require('jasmine-spec-reporter');

exports.config = {
allScriptsTimeout: 11000,

specs: [
'e2e/**/*.e2e.js'
'e2e/**/*.e2e.ts'
],

capabilities: {
'browserName': 'chrome'
},

directConnect: true,

baseUrl: 'http://localhost:4200/',

framework: 'jasmine',

jasmineNodeOpts: {
defaultTimeoutInterval: 30000
showColors: true,
defaultTimeoutInterval: 30000,
print: function() {}
},

useAllAngular2AppRoots: true,

beforeLaunch: function() {
require('zone.js');
require('reflect-metadata');
}
require('ts-node/register');
},
onPrepare: function() {
jasmine.getEnv().addReporter(new SpecReporter());
},
};
7 changes: 4 additions & 3 deletions addon/ng2/blueprints/ng2/files/typings.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
{
"dependencies": {},
"devDependencies": {
},
"devDependencies": {},
"ambientDevDependencies": {
"jasmine": "github:DefinitelyTyped/DefinitelyTyped/jasmine/jasmine.d.ts#26c98c8a9530c44f8c801ccc3b2057e2101187ee"
"angular-protractor": "github:DefinitelyTyped/DefinitelyTyped/angular-protractor/angular-protractor.d.ts#17fa1e5f269189f7f8e0f53f8c443e6c2eac562c",
"jasmine": "github:DefinitelyTyped/DefinitelyTyped/jasmine/jasmine.d.ts#26c98c8a9530c44f8c801ccc3b2057e2101187ee",
"selenium-webdriver": "github:DefinitelyTyped/DefinitelyTyped/selenium-webdriver/selenium-webdriver.d.ts#a83677ed13add14c2ab06c7325d182d0ba2784ea"
},
"ambientDependencies": {
"es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#6697d6f7dadbf5773cb40ecda35a76027e0783b2"
Expand Down
20 changes: 20 additions & 0 deletions addon/ng2/commands/e2e.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/* jshint node: true */
'use strict';

var Command = require('ember-cli/lib/models/command');
var E2ETask = require('../tasks/e2e');

module.exports = Command.extend({
name: 'e2e',
description: 'Run e2e tests in existing project',
works: 'insideProject',
run: function() {
var e2eTask = new E2ETask({
ui: this.ui,
analytics: this.analytics,
project: this.project
});

return e2eTask.run();
}
});
1 change: 1 addition & 0 deletions addon/ng2/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ module.exports = {
'install' : require('./commands/install'),
'uninstall' : require('./commands/uninstall'),
'test' : require('./commands/test'),
'e2e' : require('./commands/e2e'),
'lint' : require('./commands/lint'),
'format' : require('./commands/format')
};
Expand Down
12 changes: 12 additions & 0 deletions addon/ng2/tasks/e2e.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/* jshint node: true */
'use strict';

var Promise = require('ember-cli/lib/ext/promise');
var Task = require('ember-cli/lib/models/task');
var exec = Promise.denodeify(require('shelljs').exec);

module.exports = Task.extend({
run: function() {
return exec('npm run e2e');
}
});