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

Convert forward_ref example to a tested spec. #11088

Merged
merged 1 commit into from Aug 26, 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.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 0 additions & 1 deletion karma-js.conf.js
Expand Up @@ -39,7 +39,6 @@ module.exports = function(config) {

exclude: [
'dist/all/@angular/**/e2e_test/**',
'dist/all/@angular/examples/**',
'dist/all/@angular/router/**',
'dist/all/@angular/compiler-cli/**',
'dist/all/angular1_router.js',
Expand Down
10 changes: 3 additions & 7 deletions modules/@angular/core/src/di/forward_ref.ts
Expand Up @@ -15,7 +15,7 @@ import {Type} from '../type';
*
* ### Example
*
* {@example core/di/ts/forward_ref/forward_ref.ts region='forward_ref_fn'}
* {@example core/di/ts/forward_ref/forward_ref_spec.ts region='forward_ref_fn'}
* @experimental
*/
export interface ForwardRefFn { (): any; }
Expand All @@ -29,7 +29,7 @@ export interface ForwardRefFn { (): any; }
* yet defined.
*
* ### Example
* {@example core/di/ts/forward_ref/forward_ref.ts region='forward_ref'}
* {@example core/di/ts/forward_ref/forward_ref_spec.ts region='forward_ref'}
* @experimental
*/
export function forwardRef(forwardRefFn: ForwardRefFn): Type<any> {
Expand All @@ -45,11 +45,7 @@ export function forwardRef(forwardRefFn: ForwardRefFn): Type<any> {
*
* ### Example ([live demo](http://plnkr.co/edit/GU72mJrk1fiodChcmiDR?p=preview))
*
* ```typescript
* var ref = forwardRef(() => "refValue");
* expect(resolveForwardRef(ref)).toEqual("refValue");
* expect(resolveForwardRef("regularValue")).toEqual("regularValue");
* ```
* {@example core/di/ts/forward_ref/forward_ref_spec.ts region='resolve_forward_ref'}
*
* See: {@link forwardRef}
* @experimental
Expand Down
35 changes: 0 additions & 35 deletions modules/@angular/examples/core/di/ts/forward_ref/forward_ref.ts

This file was deleted.

@@ -0,0 +1,50 @@
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/

import {ForwardRefFn, Inject, ReflectiveInjector, forwardRef, resolveForwardRef} from '@angular/core';

export function main() {
describe('forwardRef examples', () => {
it('ForwardRefFn example works', () => {
// #docregion forward_ref_fn
let ref = forwardRef(() => Lock);
// #enddocregion
expect(ref).not.toBeNull();

class Lock {}
});

it('can be used to inject a class defined later', () => {
// #docregion forward_ref
class Door {
lock: Lock;

// Door attempts to inject Lock, despite it not being defined yet.
// forwardRef makes this possible.
constructor(@Inject(forwardRef(() => Lock)) lock: Lock) { this.lock = lock; }
}

// Only at this point Lock is defined.
class Lock {}

let injector = ReflectiveInjector.resolveAndCreate([Door, Lock]);
let door = injector.get(Door);
expect(door instanceof Door).toBeTruthy();
expect(door.lock instanceof Lock).toBeTruthy();
// #enddocregion
});

it('can be unwrapped', () => {
// #docregion resolve_forward_ref
let ref = forwardRef(() => 'refValue');
expect(resolveForwardRef(ref)).toEqual('refValue');
expect(resolveForwardRef('regularValue')).toEqual('regularValue');
// #enddocregion
});
});
}
1 change: 0 additions & 1 deletion tools/cjs-jasmine/index.ts
Expand Up @@ -52,7 +52,6 @@ var specFiles: any =
'@angular/router/test/integration/bootstrap_spec.*',
'@angular/integration_test/symbol_inspector/**',
'@angular/upgrade/**',
'@angular/examples/**',
'angular1_router/**',
'payload_tests/**',
]
Expand Down