From 148fcdadb0014088ad353aa6e4f29caa6eb38398 Mon Sep 17 00:00:00 2001 From: Martin Feckie Date: Sun, 11 Mar 2018 18:56:58 +1100 Subject: [PATCH] Allow router service methods without models and add some tests --- types/ember/index.d.ts | 5 +++++ types/ember/test/router.ts | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/types/ember/index.d.ts b/types/ember/index.d.ts index a89d6bcc6f..dd3ed1ec64 100755 --- a/types/ember/index.d.ts +++ b/types/ember/index.d.ts @@ -2078,6 +2078,7 @@ declare module 'ember' { * Transition the application into another route. The route may * be either a single route or route path: */ + transitionTo(name: string, options?: {}): Transition; transitionTo(name: string, ...models: any[]): Transition; transitionTo(name: string, options: {}): Transition; } @@ -3305,6 +3306,7 @@ declare module 'ember' { * @param options optional hash with a queryParams property containing a * mapping of query parameters */ + isActive(routeName: string, options?: { queryParams: object }): boolean; isActive(routeName: string, models: RouteModel, options?: { queryParams: object }): boolean; isActive(routeName: string, modelsA: RouteModel, modelsB: RouteModel, options?: { queryParams: object }): boolean; isActive(routeName: string, modelsA: RouteModel, modelsB: RouteModel, modelsC: RouteModel, options?: { queryParams: object }): boolean; @@ -3322,6 +3324,7 @@ declare module 'ember' { * containing a mapping of query parameters * @returns the Transition object associated with this attempted transition */ + replaceWith(routeNameOrUrl: string, options?: { queryParams: object }): Ember.Transition; replaceWith(routeNameOrUrl: string, models: RouteModel, options?: { queryParams: object }): Ember.Transition; replaceWith(routeNameOrUrl: string, modelsA: RouteModel, modelsB: RouteModel, options?: { queryParams: object }): Ember.Transition; replaceWith(routeNameOrUrl: string, modelsA: RouteModel, modelsB: RouteModel, modelsC: RouteModel, options?: { queryParams: object }): Ember.Transition; @@ -3339,6 +3342,7 @@ declare module 'ember' { * containing a mapping of query parameters * @returns the Transition object associated with this attempted transition */ + transitionTo(routeNameOrUrl: string, options?: { queryParam: object }): Ember.Transition; transitionTo(routeNameOrUrl: string, models: RouteModel, options?: { queryParams: object }): Ember.Transition; transitionTo(routeNameOrUrl: string, modelsA: RouteModel, modelsB: RouteModel, options?: { queryParams: object }): Ember.Transition; transitionTo(routeNameOrUrl: string, modelsA: RouteModel, modelsB: RouteModel, modelsC: RouteModel, options?: { queryParams: object }): Ember.Transition; @@ -3355,6 +3359,7 @@ declare module 'ember' { * a mapping of query parameters * @returns the string representing the generated URL */ + urlFor(routeName: string, options?: { queryParams: object }): string; urlFor(routeName: string, models: RouteModel, options?: { queryParams: object }): string; urlFor(routeName: string, modelsA: RouteModel, modelsB: RouteModel, options?: { queryParams: object }): string; urlFor(routeName: string, modelsA: RouteModel, modelsB: RouteModel, modelsC: RouteModel, options?: { queryParams: object }): string; diff --git a/types/ember/test/router.ts b/types/ember/test/router.ts index 9ec79ce281..c663083679 100755 --- a/types/ember/test/router.ts +++ b/types/ember/test/router.ts @@ -22,3 +22,21 @@ AppRouter.map(function() { this.mount('my-engine'); this.mount('my-engine', { as: 'some-other-engine', path: '/some-other-engine'}); }); + +const RouterServiceConsumer = Ember.Service.extend({ + router: Ember.inject.service('router'), + transitionWithoutModel() { + Ember.get(this, 'router') + .transitionTo('some-route'); + }, + transitionWithModel() { + const model = Ember.Object.create(); + Ember.get(this, 'router') + .transitionTo('some.other.route', model); + }, + transitionWithModelAndOptions() { + const model = Ember.Object.create(); + Ember.get(this, 'router') + .transitionTo('index', model, { queryParams: { search: 'ember' }}); + } +});