test: add i18n to cli-hello-world integration test (#23527)

PR Close #23527
This commit is contained in:
Olivier Combe 2018-04-24 20:30:23 +02:00 committed by Igor Minar
parent cc6c4346c2
commit 8062f7de9e
9 changed files with 111 additions and 99 deletions

View File

@ -6,15 +6,12 @@ to work, so they allow high-fidelity reproductions of real-world issues.
For this to work, we first build the Angular distribution just like we would
publish it to npm, then install the distribution into each app.
To test Angular CLI applications, we generate integration tests such as `cli-hello-world`.
This was generated with a current version of the CLI, and the only modification was replacement of `@angular/*` packages with their counterparts coming from `file:../../dist/packages-dist/*`.
When a significant change is released in the CLI, the application should be re-generated from scratch:
To test Angular CLI applications, we use the integration test `cli-hello-world`.
When a significant change is released in the CLI, the application should be updated with `ng update`:
```bash
$ cd integration
$ rm -rf cli-hello-world
$ ng new cli-hello-world
# Edit cli-hello-world/package.json to point the @angular packages to dist/packages-dist, and preserve local mods to
$ ng update
# ng build
# ng test
# typescript version

View File

@ -137,6 +137,11 @@
"options": {
"protractorConfig": "./protractor.conf.js",
"devServerTarget": "cli-hello-world:serve"
},
"configurations": {
"production": {
"devServerTarget": "cli-hello-world:serve:production"
}
}
},
"lint": {

View File

@ -11,4 +11,9 @@ describe('cli-hello-world App', () => {
page.navigateTo();
expect(page.getParagraphText()).toEqual('Welcome to app!');
});
it('the percent pipe should work', () => {
page.navigateTo();
expect(page.getPipeContent()).toEqual('100 % awesome');
})
});

View File

@ -8,4 +8,8 @@ export class AppPage {
getParagraphText() {
return element(by.css('app-root h1')).getText();
}
getPipeContent() {
return element(by.css('app-root p')).getText();
}
}

View File

@ -3,12 +3,13 @@
"version": "0.0.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build --prod --progress false",
"test": "ng test",
"e2e": "ng e2e",
"lint": "ng lint",
"e2e": "ng e2e"
"ng": "ng",
"postinstall": "webdriver-manager update --gecko false --standalone false $CHROMEDRIVER_VERSION_ARG",
"start": "ng serve",
"test": "ng test && ng e2e --webdriver-update=false && ng e2e --prod --webdriver-update=false"
},
"private": true,
"dependencies": {
@ -27,13 +28,13 @@
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.5.0",
"@angular/cli": "^6.0.0-rc.0",
"@angular/cli": "^6.0.0-rc.5",
"@angular/compiler-cli": "file:../../dist/packages-dist/compiler-cli",
"@angular/language-service": "file:../../dist/packages-dist/language-service",
"@types/jasmine": "~2.8.3",
"@types/jasminewd2": "~2.0.2",
"@types/node": "~6.0.60",
"codelyzer": "^4.0.1",
"codelyzer": "^4.3.0",
"jasmine-core": "~2.8.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~2.0.0",
@ -41,7 +42,7 @@
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.1.2",
"protractor": "file:../../node_modules/protractor",
"ts-node": "~4.1.0",
"tslint": "~5.9.1",
"typescript": "file:../../node_modules/typescript"

View File

@ -9,8 +9,9 @@ exports.config = {
'./e2e/**/*.e2e-spec.ts'
],
capabilities: {
'browserName': 'chrome',
browserName: 'chrome',
chromeOptions: {
binary: process.env.CHROME_BIN,
args: ['--no-sandbox']
}
},

View File

@ -5,6 +5,7 @@
</h1>
<img width="300" alt="Angular Logo" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==">
</div>
<p>{{ 1 | percent }} awesome</p>
<h2>Here are some links to help you start: </h2>
<ul>
<li>

View File

@ -1,9 +1,12 @@
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { LOCALE_ID, NgModule } from '@angular/core';
import { registerLocaleData } from '@angular/common';
import localeFr from '@angular/common/locales/fr';
import { AppComponent } from './app.component';
// adding this code to detect issues like https://github.com/angular/angular-cli/issues/10322
registerLocaleData(localeFr);
@NgModule({
declarations: [
@ -12,7 +15,7 @@ import { AppComponent } from './app.component';
imports: [
BrowserModule
],
providers: [],
providers: [{ provide: LOCALE_ID, useValue: 'fr' }],
bootstrap: [AppComponent]
})
export class AppModule { }

View File

@ -2,21 +2,21 @@
# yarn lockfile v1
"@angular-devkit/architect@0.5.4":
version "0.5.4"
resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.5.4.tgz#8c3cad64ec25df3dc61b06d2c1cec79bed649df5"
"@angular-devkit/architect@0.5.7":
version "0.5.7"
resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.5.7.tgz#f0bbf10265eef1481c24cc4fc5330dc2326f3062"
dependencies:
"@angular-devkit/core" "0.5.4"
"@angular-devkit/core" "0.5.7"
rxjs "^6.0.0-beta.3"
"@angular-devkit/build-angular@~0.5.0":
version "0.5.4"
resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-0.5.4.tgz#13c95714e6f5340d31c54cb6d3af64bcc96a1669"
version "0.5.7"
resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-0.5.7.tgz#a28f3fa88a8b62720cd7b96583d0ed3e2ec353dd"
dependencies:
"@angular-devkit/architect" "0.5.4"
"@angular-devkit/build-optimizer" "0.5.4"
"@angular-devkit/core" "0.5.4"
"@ngtools/webpack" "6.0.0-rc.2.4"
"@angular-devkit/architect" "0.5.7"
"@angular-devkit/build-optimizer" "0.5.7"
"@angular-devkit/core" "0.5.7"
"@ngtools/webpack" "6.0.0-rc.5"
ajv "^6.0.0"
autoprefixer "^8.1.0"
cache-loader "^1.2.2"
@ -66,66 +66,64 @@
webpack-sources "^1.1.0"
webpack-subresource-integrity "^1.1.0-rc.4"
"@angular-devkit/build-optimizer@0.5.4":
version "0.5.4"
resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.5.4.tgz#66ea44c37e570ad85fca11ac036ee8e7559ce4e1"
"@angular-devkit/build-optimizer@0.5.7":
version "0.5.7"
resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.5.7.tgz#a66e21707fe65131549133bc03ebff4dbd61cbe8"
dependencies:
loader-utils "^1.1.0"
source-map "^0.5.6"
typescript "~2.7.2"
webpack-sources "^1.1.0"
"@angular-devkit/core@0.5.4":
version "0.5.4"
resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-0.5.4.tgz#94b7462f5039cf811c7e06db0c87bb2299d61c71"
"@angular-devkit/core@0.5.7":
version "0.5.7"
resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-0.5.7.tgz#77cff4d1d0a29040c8771b99cb849909691c3653"
dependencies:
ajv "~5.5.1"
ajv "~6.4.0"
chokidar "^1.7.0"
rxjs "^6.0.0-beta.3"
source-map "^0.5.6"
"@angular-devkit/schematics@0.5.4":
version "0.5.4"
resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-0.5.4.tgz#6a4b0abb30091fa1a5d0751737f9ed036ac8704f"
"@angular-devkit/schematics@0.5.7":
version "0.5.7"
resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-0.5.7.tgz#a3780798147451d2455960060c22d7b499655e4a"
dependencies:
"@angular-devkit/core" "0.5.4"
"@angular-devkit/core" "0.5.7"
"@ngtools/json-schema" "^1.1.0"
rxjs "^6.0.0-beta.3"
"@angular/animations@file:../../dist/packages-dist/animations":
version "6.0.0-rc.3-c99c2177b4"
version "6.0.0-rc.5"
dependencies:
tslib "^1.9.0"
"@angular/cli@^6.0.0-rc.0":
version "6.0.0-rc.2"
resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-6.0.0-rc.2.tgz#2831fd7e2dd1618d85bc38fcb5ca3c9fd7d8ce78"
"@angular/cli@^6.0.0-rc.5":
version "6.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-6.0.0-rc.5.tgz#7eeb00697342b7e0412abcdf0b3c3a4c6b85dd56"
dependencies:
"@angular-devkit/architect" "0.5.4"
"@angular-devkit/core" "0.5.4"
"@angular-devkit/schematics" "0.5.4"
"@schematics/angular" "0.5.4"
"@schematics/update" "0.5.4"
"@angular-devkit/architect" "0.5.7"
"@angular-devkit/core" "0.5.7"
"@angular-devkit/schematics" "0.5.7"
"@schematics/angular" "0.5.7"
"@schematics/update" "0.5.7"
chalk "~2.2.0"
ember-cli-string-utils "^1.0.0"
fs-extra "^4.0.0"
lodash "^4.11.1"
node-modules-path "^1.0.0"
opn "~5.1.0"
resolve "^1.1.7"
rxjs "^6.0.0-rc.0"
rxjs "^6.0.0-turbo-rc.4"
semver "^5.1.0"
silent-error "^1.0.0"
symbol-observable "^1.2.0"
yargs-parser "^9.0.2"
"@angular/common@file:../../dist/packages-dist/common":
version "6.0.0-rc.3-c99c2177b4"
version "6.0.0-rc.5"
dependencies:
tslib "^1.9.0"
"@angular/compiler-cli@file:../../dist/packages-dist/compiler-cli":
version "6.0.0-rc.3-c99c2177b4"
version "6.0.0-rc.5"
dependencies:
chokidar "^1.4.2"
minimist "^1.2.0"
@ -133,40 +131,40 @@
tsickle "^0.27.2"
"@angular/compiler@file:../../dist/packages-dist/compiler":
version "6.0.0-rc.3-c99c2177b4"
version "6.0.0-rc.5"
dependencies:
tslib "^1.9.0"
"@angular/core@file:../../dist/packages-dist/core":
version "6.0.0-rc.3-c99c2177b4"
version "6.0.0-rc.5"
dependencies:
tslib "^1.9.0"
"@angular/forms@file:../../dist/packages-dist/forms":
version "6.0.0-rc.3-c99c2177b4"
version "6.0.0-rc.5"
dependencies:
tslib "^1.9.0"
"@angular/http@file:../../dist/packages-dist/http":
version "6.0.0-rc.3-c99c2177b4"
version "6.0.0-rc.5"
dependencies:
tslib "^1.9.0"
"@angular/language-service@file:../../dist/packages-dist/language-service":
version "6.0.0-rc.3-c99c2177b4"
version "6.0.0-rc.5"
"@angular/platform-browser-dynamic@file:../../dist/packages-dist/platform-browser-dynamic":
version "6.0.0-rc.3-c99c2177b4"
version "6.0.0-rc.5"
dependencies:
tslib "^1.9.0"
"@angular/platform-browser@file:../../dist/packages-dist/platform-browser":
version "6.0.0-rc.3-c99c2177b4"
version "6.0.0-rc.5"
dependencies:
tslib "^1.9.0"
"@angular/router@file:../../dist/packages-dist/router":
version "6.0.0-rc.3-c99c2177b4"
version "6.0.0-rc.5"
dependencies:
tslib "^1.9.0"
@ -174,28 +172,28 @@
version "1.1.0"
resolved "https://registry.yarnpkg.com/@ngtools/json-schema/-/json-schema-1.1.0.tgz#c3a0c544d62392acc2813a42c8a0dc6f58f86922"
"@ngtools/webpack@6.0.0-rc.2.4":
version "6.0.0-rc.2.4"
resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-6.0.0-rc.2.4.tgz#b3f727f2f4f750e411e220a478237f720ef22e9c"
"@ngtools/webpack@6.0.0-rc.5":
version "6.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-6.0.0-rc.5.tgz#841c7cc8cde31e195e46703fcd925330f3cb2727"
dependencies:
"@angular-devkit/core" "0.5.4"
"@angular-devkit/core" "0.5.7"
tree-kill "^1.0.0"
webpack-sources "^1.1.0"
"@schematics/angular@0.5.4":
version "0.5.4"
resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-0.5.4.tgz#1c87706703a985fd291d283a4db1a9fc0aa6238f"
"@schematics/angular@0.5.7":
version "0.5.7"
resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-0.5.7.tgz#4260ffc2728453697a42a58560666775f31bc74c"
dependencies:
"@angular-devkit/core" "0.5.4"
"@angular-devkit/schematics" "0.5.4"
typescript "~2.6.2"
"@angular-devkit/core" "0.5.7"
"@angular-devkit/schematics" "0.5.7"
typescript ">=2.6.2 <2.8"
"@schematics/update@0.5.4":
version "0.5.4"
resolved "https://registry.yarnpkg.com/@schematics/update/-/update-0.5.4.tgz#065c2f4be0d2fc45bcf2256cef5ce7f684937306"
"@schematics/update@0.5.7":
version "0.5.7"
resolved "https://registry.yarnpkg.com/@schematics/update/-/update-0.5.7.tgz#9ae1ab70cc77a0d14c0148df2737dbcd3988fedd"
dependencies:
"@angular-devkit/core" "0.5.4"
"@angular-devkit/schematics" "0.5.4"
"@angular-devkit/core" "0.5.7"
"@angular-devkit/schematics" "0.5.7"
rxjs "^6.0.0-beta.3"
semver "^5.3.0"
semver-intersect "^1.1.2"
@ -319,7 +317,7 @@ ajv@^4.9.1:
co "^4.6.0"
json-stable-stringify "^1.0.1"
ajv@^5.0.0, ajv@^5.1.0, ajv@~5.5.1:
ajv@^5.0.0, ajv@^5.1.0:
version "5.5.2"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
dependencies:
@ -328,7 +326,7 @@ ajv@^5.0.0, ajv@^5.1.0, ajv@~5.5.1:
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.3.0"
ajv@^6.0.0, ajv@^6.1.0:
ajv@^6.0.0, ajv@^6.1.0, ajv@~6.4.0:
version "6.4.0"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.4.0.tgz#d3aff78e9277549771daf0164cff48482b754fc6"
dependencies:
@ -1282,15 +1280,15 @@ code-point-at@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
codelyzer@^4.0.1:
version "4.1.0"
resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-4.1.0.tgz#3117754538d8f5ffa36dff91d340573a836cf373"
codelyzer@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-4.3.0.tgz#6bf3ba68efd9d655a451ecaa14a2852001a43dfb"
dependencies:
app-root-path "^2.0.1"
css-selector-tokenizer "^0.7.0"
cssauron "^1.4.0"
semver-dsl "^1.0.1"
source-map "^0.5.6"
source-map "^0.5.7"
sprintf-js "^1.0.3"
collection-visit@^1.0.0:
@ -1962,10 +1960,6 @@ elliptic@^6.0.0:
minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.0"
ember-cli-string-utils@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/ember-cli-string-utils/-/ember-cli-string-utils-1.1.0.tgz#39b677fc2805f55173735376fcef278eaa4452a1"
emojis-list@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
@ -3894,7 +3888,7 @@ lodash.tail@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664"
lodash@^4.0.0, lodash@^4.11.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@~4.17.4:
lodash@^4.0.0, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@~4.17.4:
version "4.17.5"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511"
@ -5009,9 +5003,8 @@ promise@^7.1.1:
dependencies:
asap "~2.0.3"
protractor@~5.1.2:
"protractor@file:../../node_modules/protractor":
version "5.1.2"
resolved "https://registry.yarnpkg.com/protractor/-/protractor-5.1.2.tgz#9b221741709a4c62d5cd53c6aadd54a71137e95f"
dependencies:
"@types/node" "^6.0.46"
"@types/q" "^0.0.32"
@ -5606,8 +5599,14 @@ run-queue@^1.0.0, run-queue@^1.0.3:
dependencies:
aproba "^1.1.1"
rxjs@^6.0.0-beta.3, rxjs@^6.0.0-rc.0, "rxjs@file:../../node_modules/rxjs":
version "6.0.0-tactical-rc.1"
rxjs@^6.0.0-beta.3, rxjs@^6.0.0-turbo-rc.4:
version "6.0.0"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.0.0.tgz#d647e029b5854617f994c82fe57a4c6747b352da"
dependencies:
tslib "^1.9.0"
"rxjs@file:../../node_modules/rxjs":
version "6.0.0-uncanny-rc.7"
dependencies:
tslib "^1.9.0"
@ -6614,17 +6613,13 @@ typedarray@^0.0.6, typedarray@~0.0.5:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
"typescript@file:../../node_modules/typescript":
version "2.7.2"
typescript@~2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.6.2.tgz#3c5b6fd7f6de0914269027f03c0946758f7673a4"
typescript@~2.7.2:
"typescript@>=2.6.2 <2.8", typescript@~2.7.2:
version "2.7.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.2.tgz#2d615a1ef4aee4f574425cdff7026edf81919836"
"typescript@file:../../node_modules/typescript":
version "2.7.2"
uglify-es@^3.3.4:
version "3.3.9"
resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677"
@ -7217,4 +7212,4 @@ yn@^2.0.0:
resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a"
"zone.js@file:../../node_modules/zone.js":
version "0.8.25"
version "0.8.26"