diff --git a/.travis.yml b/.travis.yml index 483d7da177..d6ded7649b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,7 +12,7 @@ before_script: - "sudo chmod 4755 /opt/google/chrome/chrome-sandbox" before_install: - npm cache clean --force -script: npm run lint && npm test +script: npm run test:angular-versions matrix: notifications: email: diff --git a/build-with-supported-angluars.sh b/build-with-supported-angluars.sh new file mode 100644 index 0000000000..beccb9959b --- /dev/null +++ b/build-with-supported-angluars.sh @@ -0,0 +1,24 @@ +#!/bin/sh +set -e +VERSIONS="5.0 5.1 5 6" +PACKAGES="common compiler core forms platform-browser platform-browser-dynamic" + +for version in $VERSIONS +do + echo Building with Angular $version... + OLD="rxjs zone.js" + NEW="" + for package in $PACKAGES + do + OLD="$OLD @angular/$package" + NEW="$NEW @angular/$package@$version" + done + + echo $version | grep -Eq "^5" && NEW="$NEW rxjs@5.5.5 zone.js@0.8.14" || NEW="$NEW rxjs@6.0.0 zone.js@0.8.26" + + npm uninstall --no-save $OLD + npm install --no-save $NEW + npm run build:all +done +echo Testing complete +npm install diff --git a/lib/common/jit-reflector.ts b/lib/common/jit-reflector.ts index e0ded6bf5f..447c152239 100644 --- a/lib/common/jit-reflector.ts +++ b/lib/common/jit-reflector.ts @@ -36,4 +36,10 @@ export class JitReflector implements CompileReflector { resolveExternalReference(ref: ExternalReference): any { /* tslint:disable-line prefer-function-over-method */ return ref.runtime; } + + shallowAnnotations = (typeOrFunc: any): any[] => { throw new Error('Not supported in JIT mode'); }; + + tryAnnotations(typeOrFunc: any): any[] { + return this.annotations(typeOrFunc); + } } diff --git a/package-lock.json b/package-lock.json index 9e7cccb272..576e7ed9a9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,57 +5,105 @@ "requires": true, "dependencies": { "@angular/common": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-5.1.2.tgz", - "integrity": "sha512-MqgMwsHXxxx8vmQrUFwhNcAg29eqClJdnMJ81DlD7XvEexyXxxoFrxnNea+aB3BUC1AzU0fEy24ngygmhjRmfw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-6.0.1.tgz", + "integrity": "sha512-okxtOHE05Eaa7w6YCL2idXUHPTwrea5CEVXjA36zSZ9qtlB/IYcjYI9Opo5l8SE5Qy/eqpDdoanax1NM6xbtqw==", "dev": true, "requires": { - "tslib": "1.8.0" + "tslib": "1.9.1" + }, + "dependencies": { + "tslib": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.1.tgz", + "integrity": "sha512-avfPS28HmGLLc2o4elcc2EIq2FcH++Yo5YxpBZi9Yw93BCTGFthI4HPE4Rpep6vSYQaK8e69PelM44tPj+RaQg==", + "dev": true + } } }, "@angular/compiler": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-5.1.2.tgz", - "integrity": "sha512-asTrlMWRe24EzejBwBFVSfq3ZbYI9Xr9NbNtkHK4DRHutDA1wn5PQE5lHuUTNW2B/dmm9pm+5JTVtcbue0nEug==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-6.0.1.tgz", + "integrity": "sha512-yGucUdNo/8gWIWScpMu9gDYh9wOse+OXJapqBR7JtUowW24PWgICTslWbre4d0PAcueaWhLQo4YqqF689UDfhQ==", "dev": true, "requires": { - "tslib": "1.8.0" + "tslib": "1.9.1" + }, + "dependencies": { + "tslib": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.1.tgz", + "integrity": "sha512-avfPS28HmGLLc2o4elcc2EIq2FcH++Yo5YxpBZi9Yw93BCTGFthI4HPE4Rpep6vSYQaK8e69PelM44tPj+RaQg==", + "dev": true + } } }, "@angular/core": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-5.1.2.tgz", - "integrity": "sha512-nHQWvhdxg7RbhRcfV5EhWURUZBqtcBFajXTBYA2rVHPhm0lGqEUi38VW0ddO8MpPGz0pK2PNpgR3GwXp/egaNw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-6.0.1.tgz", + "integrity": "sha512-w9fYaWSk0WrtdvKOvH5KDoRaZ3FhleKVgbbJ0skMsgmro1vrO5j2iIO88AJdbT7k+FAyC+eTtNS8Koqd4ranQg==", "dev": true, "requires": { - "tslib": "1.8.0" + "tslib": "1.9.1" + }, + "dependencies": { + "tslib": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.1.tgz", + "integrity": "sha512-avfPS28HmGLLc2o4elcc2EIq2FcH++Yo5YxpBZi9Yw93BCTGFthI4HPE4Rpep6vSYQaK8e69PelM44tPj+RaQg==", + "dev": true + } } }, "@angular/forms": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-5.1.2.tgz", - "integrity": "sha512-IQRZ2KF4303ga9nTzjU223steFLcaRrFyakM/+x8Hu1otzLeIoFiyDaFPBHtUvoRN14JlKusIi9m407mM2oNJQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-6.0.1.tgz", + "integrity": "sha512-YCKTxWh1HmYhXXyFYR/V+pxMqD+02Q5TjDOlzBond5uQUSxC+oJEfhUWUuCYi4QmnTsfWnaI0RKwKsBQvmDzIA==", "dev": true, "requires": { - "tslib": "1.8.0" + "tslib": "1.9.1" + }, + "dependencies": { + "tslib": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.1.tgz", + "integrity": "sha512-avfPS28HmGLLc2o4elcc2EIq2FcH++Yo5YxpBZi9Yw93BCTGFthI4HPE4Rpep6vSYQaK8e69PelM44tPj+RaQg==", + "dev": true + } } }, "@angular/platform-browser": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-5.1.2.tgz", - "integrity": "sha512-L78ijQ81tEh6nnOq2BqCDtbhqLbARs/2A9QZvEhMTTFu5MOQH0yk0VrjNv58Lch9yOj04EH/Qi7Wep2vFqb57g==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-6.0.1.tgz", + "integrity": "sha512-F5eu2kHBtd7CqEuYI8CArEY8qYVBIQIYxEAmczyNOv3CLqxdEq23GLVFMDiVT7RpzaZPIxFoGvhEhnUhDeaVDw==", "dev": true, "requires": { - "tslib": "1.8.0" + "tslib": "1.9.1" + }, + "dependencies": { + "tslib": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.1.tgz", + "integrity": "sha512-avfPS28HmGLLc2o4elcc2EIq2FcH++Yo5YxpBZi9Yw93BCTGFthI4HPE4Rpep6vSYQaK8e69PelM44tPj+RaQg==", + "dev": true + } } }, "@angular/platform-browser-dynamic": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.1.2.tgz", - "integrity": "sha512-LMMgG1RRngIMvU19+NFRUe2+2gKgzMpwddBVDondi71EqcfumD6NN343lNcHv5/5oWuJdaAx94A29qpAjyVt5Q==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-6.0.1.tgz", + "integrity": "sha512-eKZRua98kEC0THSEeGXSk7j9wGn3AtrvElsY59bt7gnWWU4nY6y7Dem6kVjXb+MDkH9ESPyC0uavARdUq2kYuw==", "dev": true, "requires": { - "tslib": "1.8.0" + "tslib": "1.9.1" + }, + "dependencies": { + "tslib": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.1.tgz", + "integrity": "sha512-avfPS28HmGLLc2o4elcc2EIq2FcH++Yo5YxpBZi9Yw93BCTGFthI4HPE4Rpep6vSYQaK8e69PelM44tPj+RaQg==", + "dev": true + } } }, "@types/core-js": { @@ -6690,12 +6738,20 @@ } }, "rxjs": { - "version": "5.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.5.tgz", - "integrity": "sha512-D/MfQnPMBk8P8gfwGxvCkuaWBcG58W7dUMT//URPoYzIbDEKT0GezdirkK5whMgKFBATfCoTpxO8bJQGJ04W5A==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.1.0.tgz", + "integrity": "sha512-lMZdl6xbHJCSb5lmnb6nOhsoBVCyoDC5LDJQK9WWyq+tsI7KnlDIZ0r0AZAlBpRPLbwQA9kzSBAZwNIZEZ+hcw==", "dev": true, "requires": { - "symbol-observable": "1.0.1" + "tslib": "1.9.1" + }, + "dependencies": { + "tslib": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.1.tgz", + "integrity": "sha512-avfPS28HmGLLc2o4elcc2EIq2FcH++Yo5YxpBZi9Yw93BCTGFthI4HPE4Rpep6vSYQaK8e69PelM44tPj+RaQg==", + "dev": true + } } }, "safe-buffer": { @@ -7359,12 +7415,6 @@ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, - "symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", - "dev": true - }, "syntax-error": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.3.0.tgz", @@ -8179,9 +8229,9 @@ "dev": true }, "zone.js": { - "version": "0.8.18", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.18.tgz", - "integrity": "sha512-knKOBQM0oea3/x9pdyDuDi7RhxDlJhOIkeixXSiTKWLgs4LpK37iBc+1HaHwzlciHUKT172CymJFKo8Xgh+44Q==", + "version": "0.8.26", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.26.tgz", + "integrity": "sha512-W9Nj+UmBJG251wkCacIkETgra4QgBo/vgoEkb4a2uoLzpQG7qF9nzwoLXWU5xj3Fg2mxGvEDh47mg24vXccYjA==", "dev": true } } diff --git a/package.json b/package.json index bfe7af776e..da3fb4cef1 100644 --- a/package.json +++ b/package.json @@ -14,10 +14,12 @@ "clean": "rm -rf dist coverage", "lint": "tslint --project tsconfig.json", "build": "npm run clean && tsc", + "build:all": "npm run lint && npm run test && npm run build", "release": "npm run lint && npm run test && npm run build && standard-version", "test": "karma start", "test:watch": "karma start --auto-watch --single-run=false", - "test:debug": "npm run test:watch -- --browsers=Chrome" + "test:debug": "npm run test:watch -- --browsers=Chrome", + "test:angular-versions": "sh build-with-supported-angluars.sh" }, "repository": { "type": "git", @@ -39,16 +41,16 @@ }, "homepage": "https://github.com/ike18t/ng-mocks#readme", "peerDependencies": { - "@angular/core": "5.x", - "@angular/forms": "5.x" + "@angular/core": "5.x-6.x", + "@angular/forms": "5.x-6.x" }, "devDependencies": { - "@angular/common": "5.x", - "@angular/compiler": "5.x", - "@angular/core": "5.x", - "@angular/forms": "5.x", - "@angular/platform-browser": "5.x", - "@angular/platform-browser-dynamic": "5.x", + "@angular/common": "6.x", + "@angular/compiler": "6.x", + "@angular/core": "6.x", + "@angular/forms": "6.x", + "@angular/platform-browser": "6.x", + "@angular/platform-browser-dynamic": "6.x", "@types/core-js": "^0.9.43", "@types/jasmine": "^2.5.53", "@types/node": "^8.0.17", @@ -60,10 +62,10 @@ "karma-jasmine-html-reporter": "^0.2.2", "karma-sourcemap-loader": "^0.3.7", "karma-typescript": "^3.0.9", - "rxjs": "5.5.5", + "rxjs": "^6.0.0", "standard-version": "^4.2.0", "tslint": "^5.5.0", "typescript": "2.6.x", - "zone.js": "^0.8.14" + "zone.js": "^0.8.26" } }