diff --git a/karma-systemjs-config.js b/karma-systemjs-config.js index c5dbc0a4d..acbd7dd90 100644 --- a/karma-systemjs-config.js +++ b/karma-systemjs-config.js @@ -1,27 +1,44 @@ (function (global) { + var paths = { + // paths serve as alias + 'npm:': 'base/node_modules/' + }; var map = { - 'rxjs': 'base/node_modules/rxjs', - '@angular': 'base/node_modules/@angular' + // angular bundles + '@angular/core': 'npm:@angular/core/bundles/core.umd.js', + '@angular/common': 'npm:@angular/common/bundles/common.umd.js', + '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js', + '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js', + '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js', + '@angular/http': 'npm:@angular/http/bundles/http.umd.js', + '@angular/router': 'npm:@angular/router/bundles/router.umd.js', + '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js', + + // angular testing umd bundles + '@angular/core/testing': 'npm:@angular/core/bundles/core-testing.umd.js', + '@angular/common/testing': 'npm:@angular/common/bundles/common-testing.umd.js', + '@angular/compiler/testing': 'npm:@angular/compiler/bundles/compiler-testing.umd.js', + '@angular/platform-browser/testing': 'npm:@angular/platform-browser/bundles/platform-browser-testing.umd.js', + '@angular/platform-browser-dynamic/testing': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic-testing.umd.js', + '@angular/http/testing': 'npm:@angular/http/bundles/http-testing.umd.js', + '@angular/router/testing': 'npm:@angular/router/bundles/router-testing.umd.js', + '@angular/forms/testing': 'npm:@angular/forms/bundles/forms-testing.umd.js', + + // other libraries + 'rxjs': 'npm:rxjs', }; var packages = { - 'rxjs': { defaultExtension: 'js' }, + rxjs: { + defaultExtension: 'js' + } }; - var packageNames = [ - '@angular/common', - '@angular/compiler', - '@angular/core', - '@angular/platform-browser', - '@angular/platform-browser-dynamic' - ]; - packageNames.forEach(function (pkgName) { - packages[pkgName] = { main: 'index.js', defaultExtension: 'js' }; - }); var config = { - map: map, - packages: packages + paths: paths, + map: map, + packages: packages }; if (global.filterSystemConfig) { - global.filterSystemConfig(config); + global.filterSystemConfig(config); } System.config(config); })(this); diff --git a/karma.conf.js b/karma.conf.js index 0dc996c03..e2c4ce59f 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -14,20 +14,23 @@ module.exports = function(config) { }, files: [ {pattern: 'node_modules/core-js/client/core.js', included: true, watched: true}, - {pattern: 'node_modules/zone.js/dist/zone.js', included: true, watched: true}, - // Needed for async testsing {https://github.com/angular/angular/issues/8232} - {pattern: 'node_modules/zone.js/dist/async-test.js', included: true, watched: true}, + 'node_modules/reflect-metadata/Reflect.js', + 'node_modules/zone.js/dist/zone.js', + 'node_modules/zone.js/dist/long-stack-trace-zone.js', + 'node_modules/zone.js/dist/proxy.js', + 'node_modules/zone.js/dist/sync-test.js', + 'node_modules/zone.js/dist/jasmine-patch.js', + 'node_modules/zone.js/dist/async-test.js', + 'node_modules/zone.js/dist/fake-async-test.js', {pattern: 'node_modules/systemjs/dist/system-polyfills.js', included: true, watched: false }, {pattern: 'node_modules/systemjs/dist/system.src.js', included: true, watched: true}, {pattern: 'karma-systemjs-config.js', included: true, watched: true}, - {pattern: 'node_modules/rxjs/**/*', included: false, watched: false}, - {pattern: 'node_modules/@angular/common/**/*', included: false, watched: false}, - {pattern: 'node_modules/@angular/core/**/*', included: false, watched: false}, - {pattern: 'node_modules/@angular/platform-browser/**/*', included: false, watched: false}, - {pattern: 'node_modules/@angular/compiler/**/*', included: false, watched: false}, - {pattern: 'node_modules/@angular/platform-browser-dynamic/**/*', included: false, watched: false}, + {pattern: 'node_modules/rxjs/**/*.js', included: false, watched: false}, + {pattern: 'node_modules/rxjs/**/*.js.map', included: false, watched: false}, + {pattern: 'node_modules/@angular/**/*.js', included: false, watched: false}, + {pattern: 'node_modules/@angular/**/*.js.map', included: false, watched: false}, {pattern: 'karma-test-shim.js', included: true, watched: true}, diff --git a/package.json b/package.json index 458a07909..ac4f3ba44 100644 --- a/package.json +++ b/package.json @@ -23,14 +23,13 @@ }, "homepage": "https://github.com/SebastianM/angular2-google-maps#readme", "dependencies": { - "@angular/common": "2.0.0-rc.5", - "@angular/compiler": "2.0.0-rc.5", - "@angular/core": "2.0.0-rc.5", - "@angular/platform-browser": "2.0.0-rc.5", - "@angular/platform-browser-dynamic": "2.0.0-rc.5", - "reflect-metadata": "^0.1.3", - "rxjs": "5.0.0-beta.6", - "zone.js": "^0.6.12" + "@angular/common": "2.0.0-rc.6", + "@angular/compiler": "2.0.0-rc.6", + "@angular/core": "2.0.0-rc.6", + "@angular/platform-browser": "2.0.0-rc.6", + "@angular/platform-browser-dynamic": "2.0.0-rc.6", + "rxjs": "5.0.0-beta.11", + "zone.js": "^0.6.17" }, "devDependencies": { "babel-eslint": "6.0.4", @@ -64,21 +63,20 @@ "run-sequence": "1.2.2", "systemjs": "0.19.29", "tslint": "3.13.0", - "typescript": "1.8.10", + "typescript": "^2.0.2", "typings": "1.0.4", "watchify": "3.7.0" }, "jspm": { "jspmNodeConversion": false, "dependencies": { - "@angular/common": "2.0.0-rc.5", - "@angular/compiler": "2.0.0-rc.5", - "@angular/core": "2.0.0-rc.5", - "@angular/platform-browser": "2.0.0-rc.5", - "@angular/platform-browser-dynamic": "2.0.0-rc.5", - "reflect-metadata": "^0.1.3", - "rxjs": "5.0.0-beta.6", - "zone.js": "^0.6.12" + "@angular/common": "2.0.0-rc.6", + "@angular/compiler": "2.0.0-rc.6", + "@angular/core": "2.0.0-rc.6", + "@angular/platform-browser": "2.0.0-rc.6", + "@angular/platform-browser-dynamic": "2.0.0-rc.6", + "rxjs": "5.0.0-beta.11", + "zone.js": "^0.6.17" } } } diff --git a/rollup.config.js b/rollup.config.js index f3966d673..bca64ed02 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -12,6 +12,7 @@ export default { 'rxjs/Subject': 'Rx', 'rxjs/observable/PromiseObservable': 'Rx', 'rxjs/operator/toPromise': 'Rx.Observable.prototype', - 'rxjs/Observable': 'Rx' + 'rxjs/Observable': 'Rx', + 'rxjs/Rx': 'Rx' } } diff --git a/src/core/core-module.ts b/src/core/core-module.ts index 43ecc5f66..ea78cc84f 100644 --- a/src/core/core-module.ts +++ b/src/core/core-module.ts @@ -1,4 +1,4 @@ -import {ModuleWithProviders, NgModule, Provider, provide} from '@angular/core'; +import {ModuleWithProviders, NgModule, Provider} from '@angular/core'; import {SebmGoogleMap} from './directives/google-map'; import {SebmGoogleMapCircle} from './directives/google-map-circle'; @@ -27,7 +27,7 @@ export class AgmCoreModule { */ static forRoot(lazyMapsAPILoaderConfig?: LazyMapsAPILoaderConfigLiteral): ModuleWithProviders { const providers: Provider[] = - [...BROWSER_GLOBALS_PROVIDERS, provide(MapsAPILoader, {useClass: LazyMapsAPILoader})]; + [...BROWSER_GLOBALS_PROVIDERS, {provide: MapsAPILoader, useClass: LazyMapsAPILoader}]; if (lazyMapsAPILoaderConfig) { providers.push(provideLazyMapsAPILoaderConfig(lazyMapsAPILoaderConfig)); } diff --git a/src/core/services/maps-api-loader/lazy-maps-api-loader.ts b/src/core/services/maps-api-loader/lazy-maps-api-loader.ts index a5208ce7b..334ac10ff 100644 --- a/src/core/services/maps-api-loader/lazy-maps-api-loader.ts +++ b/src/core/services/maps-api-loader/lazy-maps-api-loader.ts @@ -1,4 +1,4 @@ -import {Inject, Injectable, Optional, Provider, provide} from '@angular/core'; +import {Inject, Injectable, Optional, Provider} from '@angular/core'; import {DOCUMENT_GLOBAL, WINDOW_GLOBAL} from '../../utils/browser-globals'; @@ -183,7 +183,8 @@ export class LazyMapsAPILoader extends MapsAPILoader { */ export function provideLazyMapsAPILoaderConfig(confLiteral: LazyMapsAPILoaderConfigLiteral): Provider { - return provide(LazyMapsAPILoaderConfig, { + return { + provide: LazyMapsAPILoaderConfig, useFactory: () => { const config = new LazyMapsAPILoaderConfig(); // todo(sebastian): deprecate LazyMapsAPILoader class @@ -198,5 +199,5 @@ export function provideLazyMapsAPILoaderConfig(confLiteral: LazyMapsAPILoaderCon config.region = config.region || DEFAULT_CONFIGURATION.region; return config; } - }); + }; } diff --git a/src/core/utils/browser-globals.ts b/src/core/utils/browser-globals.ts index 0cc23e223..2f86d4fa7 100644 --- a/src/core/utils/browser-globals.ts +++ b/src/core/utils/browser-globals.ts @@ -1,7 +1,7 @@ -import {OpaqueToken, Provider, provide} from '@angular/core'; +import {OpaqueToken, Provider} from '@angular/core'; export const WINDOW_GLOBAL = new OpaqueToken('angular2-google-maps window_global'); export const DOCUMENT_GLOBAL = new OpaqueToken('angular2-google-maps document_global'); export const BROWSER_GLOBALS_PROVIDERS: Provider[] = - [provide(WINDOW_GLOBAL, {useValue: window}), provide(DOCUMENT_GLOBAL, {useValue: document})]; + [{provide: WINDOW_GLOBAL, useValue: window}, {provide: DOCUMENT_GLOBAL, useValue: document}]; diff --git a/test/services/managers/marker-manager.spec.ts b/test/services/managers/marker-manager.spec.ts index 2b974b966..03d39a2a4 100644 --- a/test/services/managers/marker-manager.spec.ts +++ b/test/services/managers/marker-manager.spec.ts @@ -1,5 +1,5 @@ import {NgZone} from '@angular/core'; -import {addProviders, async, inject} from '@angular/core/testing'; +import {TestBed, async, inject} from '@angular/core/testing'; import {SebmGoogleMapMarker} from '../../../src/core/directives/google-map-marker'; import {GoogleMapsAPIWrapper} from '../../../src/core/services/google-maps-api-wrapper'; @@ -9,13 +9,15 @@ import {MarkerManager} from '../../../src/core/services/managers/marker-manager' export function main() { describe('MarkerManager', () => { beforeEach(() => { - addProviders([ - {provide: NgZone, useFactory: () => new NgZone({enableLongStackTrace: true})}, - MarkerManager, SebmGoogleMapMarker, { - provide: GoogleMapsAPIWrapper, - useValue: jasmine.createSpyObj('GoogleMapsAPIWrapper', ['createMarker']) - } - ]); + TestBed.configureTestingModule({ + providers: [ + {provide: NgZone, useFactory: () => new NgZone({enableLongStackTrace: true})}, + MarkerManager, SebmGoogleMapMarker, { + provide: GoogleMapsAPIWrapper, + useValue: jasmine.createSpyObj('GoogleMapsAPIWrapper', ['createMarker']) + } + ] + }); }); describe('Create a new marker', () => { diff --git a/test/services/managers/polyline-manager.spec.ts b/test/services/managers/polyline-manager.spec.ts index 1a8f21c45..432e8c334 100644 --- a/test/services/managers/polyline-manager.spec.ts +++ b/test/services/managers/polyline-manager.spec.ts @@ -1,5 +1,5 @@ import {NgZone} from '@angular/core'; -import {addProviders, inject} from '@angular/core/testing'; +import {TestBed, inject} from '@angular/core/testing'; import {SebmGoogleMapPolyline} from '../../../src/core/directives/google-map-polyline'; import {GoogleMapsAPIWrapper} from '../../../src/core/services/google-maps-api-wrapper'; @@ -9,13 +9,15 @@ import {PolylineManager} from '../../../src/core/services/managers/polyline-mana export function main() { describe('PolylineManager', () => { beforeEach(() => { - addProviders([ - {provide: NgZone, useFactory: () => new NgZone({enableLongStackTrace: true})}, - PolylineManager, SebmGoogleMapPolyline, { - provide: GoogleMapsAPIWrapper, - useValue: jasmine.createSpyObj('GoogleMapsAPIWrapper', ['createPolyline']) - } - ]); + TestBed.configureTestingModule({ + providers: [ + {provide: NgZone, useFactory: () => new NgZone({enableLongStackTrace: true})}, + PolylineManager, SebmGoogleMapPolyline, { + provide: GoogleMapsAPIWrapper, + useValue: jasmine.createSpyObj('GoogleMapsAPIWrapper', ['createPolyline']) + } + ] + }); }); describe('Create a new polyline', () => { diff --git a/test/services/maps-api-loader/lazy-maps-api-loader.spec.ts b/test/services/maps-api-loader/lazy-maps-api-loader.spec.ts index a72d31a84..317d42b33 100644 --- a/test/services/maps-api-loader/lazy-maps-api-loader.spec.ts +++ b/test/services/maps-api-loader/lazy-maps-api-loader.spec.ts @@ -1,4 +1,4 @@ -import {addProviders, inject} from '@angular/core/testing'; +import {TestBed, inject} from '@angular/core/testing'; import {LazyMapsAPILoader} from '../../../src/core/services/maps-api-loader/lazy-maps-api-loader'; import {MapsAPILoader} from '../../../src/core/services/maps-api-loader/maps-api-loader'; @@ -7,13 +7,15 @@ import {DOCUMENT_GLOBAL, WINDOW_GLOBAL} from '../../../src/core/utils/browser-gl export function main() { describe('Service: LazyMapsAPILoader', () => { beforeEach(() => { - addProviders([ - {provide: MapsAPILoader, useClass: LazyMapsAPILoader}, - {provide: WINDOW_GLOBAL, useValue: {}}, { - provide: DOCUMENT_GLOBAL, - useValue: jasmine.createSpyObj('Document', ['createElement']) - } - ]); + TestBed.configureTestingModule({ + providers: [ + {provide: MapsAPILoader, useClass: LazyMapsAPILoader}, + {provide: WINDOW_GLOBAL, useValue: {}}, { + provide: DOCUMENT_GLOBAL, + useValue: jasmine.createSpyObj('Document', ['createElement']) + } + ] + }); }); it('should create the default script URL',