diff --git a/modules/angular2/examples/core/di/ts/forward_ref/forward_ref.ts b/modules/angular2/examples/core/di/ts/forward_ref/forward_ref.ts
new file mode 100644
index 0000000000..a9b524b80f
--- /dev/null
+++ b/modules/angular2/examples/core/di/ts/forward_ref/forward_ref.ts
@@ -0,0 +1,26 @@
+import {Inject, Injector, forwardRef, resolveForwardRef, ForwardRefFn} from 'angular2/core';
+
+// #docregion forward_ref_fn
+var ref = forwardRef(() => Lock);
+// #enddocregion
+
+// #docregion forward_ref
+class Door {
+ lock: Lock;
+ constructor(@Inject(forwardRef(() => Lock)) lock: Lock) { this.lock = lock; }
+}
+
+// Only at this point Lock is defined.
+class Lock {}
+
+var injector = Injector.resolveAndCreate([Door, Lock]);
+var door = injector.get(Door);
+expect(door instanceof Door).toBe(true);
+expect(door.lock instanceof Lock).toBe(true);
+// #enddocregion
+
+// #docregion resolve_forward_ref
+var ref = forwardRef(() => "refValue");
+expect(resolveForwardRef(ref)).toEqual("refValue");
+expect(resolveForwardRef("regularValue")).toEqual("regularValue");
+// #enddocregion
\ No newline at end of file
diff --git a/modules/angular2/examples/core/forms/ts/ng_validators/ng_validators.ts b/modules/angular2/examples/core/forms/ts/ng_validators/ng_validators.ts
new file mode 100644
index 0000000000..e0206403ba
--- /dev/null
+++ b/modules/angular2/examples/core/forms/ts/ng_validators/ng_validators.ts
@@ -0,0 +1,10 @@
+import {bootstrap} from 'angular2/bootstrap';
+import {NG_VALIDATORS} from 'angular2/common';
+import {Provider} from 'angular2/core';
+
+let MyApp = null;
+let myValidator = null;
+
+// #docregion ng_validators
+bootstrap(MyApp, [new Provider(NG_VALIDATORS, {useValue: myValidator, multi: true})]);
+// #enddocregion
diff --git a/modules/angular2/examples/core/ts/bootstrap/bootstrap.ts b/modules/angular2/examples/core/ts/bootstrap/bootstrap.ts
new file mode 100644
index 0000000000..1e999bf764
--- /dev/null
+++ b/modules/angular2/examples/core/ts/bootstrap/bootstrap.ts
@@ -0,0 +1,13 @@
+import {Component} from 'angular2/core';
+import {bootstrap} from 'angular2/platform/browser';
+
+// #docregion bootstrap
+@Component({selector: 'my-app', template: 'Hello {{ name }}!'})
+class MyApp {
+ name: string = 'World';
+}
+
+function main() {
+ return bootstrap(MyApp);
+}
+// #enddocregion
diff --git a/modules/angular2/examples/core/ts/metadata/metadata.ts b/modules/angular2/examples/core/ts/metadata/metadata.ts
new file mode 100644
index 0000000000..0924ad4e8d
--- /dev/null
+++ b/modules/angular2/examples/core/ts/metadata/metadata.ts
@@ -0,0 +1,43 @@
+import {Component, Attribute, Directive, Pipe} from 'angular2/core';
+
+var CustomDirective;
+
+// #docregion component
+@Component({selector: 'greet', template: 'Hello {{name}}!', directives: [CustomDirective]})
+class Greet {
+ name: string = 'World';
+}
+// #enddocregion
+
+// #docregion attributeFactory
+@Component({selector: 'page', template: 'Title: {{title}}'})
+class Page {
+ title: string;
+ constructor(@Attribute('title') title: string) { this.title = title; }
+}
+// #enddocregion
+
+// #docregion attributeMetadata
+@Directive({selector: 'input'})
+class InputAttrDirective {
+ constructor(@Attribute('type') type) {
+ // type would be 'text' in this example
+ }
+}
+// #enddocregion
+
+// #docregion directive
+@Directive({selector: 'input'})
+class InputDirective {
+ constructor() {
+ // Add some logic.
+ }
+}
+// #enddocregion
+
+// #docregion pipe
+@Pipe({name: 'lowercase'})
+class Lowercase {
+ transform(v, args) { return v.toLowerCase(); }
+}
+// #enddocregion
diff --git a/modules/angular2/examples/core/ts/platform/platform.ts b/modules/angular2/examples/core/ts/platform/platform.ts
new file mode 100644
index 0000000000..98a916c9d3
--- /dev/null
+++ b/modules/angular2/examples/core/ts/platform/platform.ts
@@ -0,0 +1,13 @@
+import {Component, platform} from 'angular2/core';
+import {BROWSER_PROVIDERS, BROWSER_APP_PROVIDERS} from 'angular2/platform/browser';
+
+var appProviders: any[] = [];
+
+// #docregion longform
+@Component({selector: 'my-app', template: 'Hello World'})
+class MyApp {
+}
+
+var app = platform(BROWSER_PROVIDERS).application([BROWSER_APP_PROVIDERS, appProviders]);
+app.bootstrap(MyApp);
+// #enddocregion
diff --git a/modules/angular2/examples/testing/ts/testing.ts b/modules/angular2/examples/testing/ts/testing.ts
new file mode 100644
index 0000000000..f46a2e0079
--- /dev/null
+++ b/modules/angular2/examples/testing/ts/testing.ts
@@ -0,0 +1,90 @@
+import {
+ describe,
+ fdescribe,
+ xdescribe,
+ it,
+ fit,
+ xit,
+ beforeEach,
+ afterEach,
+ beforeEachProviders,
+ inject
+} from 'angular2/testing';
+import {provide} from 'angular2/core';
+
+var db: any;
+class MyService {}
+class MyMockService implements MyService {}
+
+// #docregion describeIt
+describe('some component', () => {
+ it('does something', () => {
+ // This is a test.
+ });
+});
+// #enddocregion
+
+// #docregion fdescribe
+fdescribe('some component', () => {
+ it('has a test', () => {
+ // This test will run.
+ });
+});
+describe('another component',
+ () => { it('also has a test', () => { throw 'This test will not run.'; }); });
+// #enddocregion
+
+// #docregion xdescribe
+xdescribe('some component', () => { it('has a test', () => {throw 'This test will not run.'}); });
+describe('another component', () => {
+ it('also has a test', () => {
+ // This test will run.
+ });
+});
+// #enddocregion
+
+// #docregion fit
+describe('some component', () => {
+ fit('has a test', () => {
+ // This test will run.
+ });
+ it('has another test', () => { throw 'This test will not run.'; });
+});
+// #enddocregion
+
+// #docregion xit
+describe('some component', () => {
+ xit('has a test', () => { throw 'This test will not run.'; });
+ it('has another test', () => {
+ // This test will run.
+ });
+});
+// #enddocregion
+
+// #docregion beforeEach
+describe('some component', () => {
+ beforeEach(() => { db.connect(); });
+ it('uses the db', () => {
+ // Database is connected.
+ });
+});
+// #enddocregion
+
+// #docregion beforeEachProviders
+describe('some component', () => {
+ beforeEachProviders(() => [provide(MyService, {useClass: MyMockService})]);
+ it('uses MyService', inject([MyService], (service) => {
+ // service is an instance of MyMockService.
+ }));
+});
+// #enddocregion
+
+// #docregion afterEach
+describe('some component', () => {
+ afterEach((done) => { db.reset().then((_) => done()); });
+ it('uses the db', () => {
+ // This test can leave the database in a dirty state.
+ // The afterEach will ensure it gets reset.
+ });
+});
+// #enddocregion
diff --git a/modules/angular2/platform/browser.ts b/modules/angular2/platform/browser.ts
index 327645623e..741f1f65e9 100644
--- a/modules/angular2/platform/browser.ts
+++ b/modules/angular2/platform/browser.ts
@@ -62,23 +62,7 @@ export const BROWSER_APP_PROVIDERS: Array = CON
*
* We can use this script code:
*
- * ```
- * @Component({
- * selector: 'my-app',
- * template: 'Hello {{ name }}!'
- * })
- * class MyApp {
- * name:string;
- *
- * constructor() {
- * this.name = 'World';
- * }
- * }
- *
- * main() {
- * return bootstrap(MyApp);
- * }
- * ```
+ * {@example core/ts/bootstrap/bootstrap.ts region='bootstrap'}
*
* When the app developer invokes `bootstrap()` with the root component `MyApp` as its
* argument, Angular performs the following tasks:
diff --git a/modules/angular2/src/common/forms/validators.ts b/modules/angular2/src/common/forms/validators.ts
index 38210c1276..ee8bc60dad 100644
--- a/modules/angular2/src/common/forms/validators.ts
+++ b/modules/angular2/src/common/forms/validators.ts
@@ -13,13 +13,19 @@ import * as modelModule from './model';
*
* ### Example
*
- * ```typescript
- * var providers = [
- * new Provider(NG_VALIDATORS, {useValue: myValidator, multi: true})
- * ];
+ * {@example core/forms/ts/ng_validators/ng_validators.ts region='ng_validators'}
* ```
*/
export const NG_VALIDATORS: OpaqueToken = CONST_EXPR(new OpaqueToken("NgValidators"));
+
+/**
+ * Providers for asynchronous validators to be used for {@link Control}s
+ * in a form.
+ *
+ * Provide this using `multi: true` to add validators.
+ *
+ * See {@link NG_VALIDATORS} for more details.
+ */
export const NG_ASYNC_VALIDATORS: OpaqueToken = CONST_EXPR(new OpaqueToken("NgAsyncValidators"));
/**
diff --git a/modules/angular2/src/core/application_ref.ts b/modules/angular2/src/core/application_ref.ts
index 22ba8ba597..bb01360f8a 100644
--- a/modules/angular2/src/core/application_ref.ts
+++ b/modules/angular2/src/core/application_ref.ts
@@ -173,13 +173,8 @@ export abstract class PlatformRef {
* typical providers, as shown in the example below.
*
* ### Example
- * ```
- * var myAppProviders = [MyAppService];
*
- * platform()
- * .application([myAppProviders])
- * .bootstrap(MyTopLevelComponent);
- * ```
+ * {@example core/ts/platform/platform.ts region='longform'}
* ### See Also
*
* See the {@link bootstrap} documentation for more details.
@@ -315,11 +310,7 @@ export abstract class ApplicationRef {
* child components under it.
*
* ### Example
- * ```
- * var app = platform.application([appProviders];
- * app.bootstrap(FirstRootComponent);
- * app.bootstrap(SecondRootComponent, [provide(OverrideBinding, {useClass: OverriddenBinding})]);
- * ```
+ * {@example core/ts/platform/platform.ts region='longform'}
*/
abstract bootstrap(componentType: Type,
providers?: Array): Promise;
diff --git a/modules/angular2/src/core/debug/debug_element.ts b/modules/angular2/src/core/debug/debug_element.ts
index 37e7b9c6eb..2ee97ad2c5 100644
--- a/modules/angular2/src/core/debug/debug_element.ts
+++ b/modules/angular2/src/core/debug/debug_element.ts
@@ -10,6 +10,9 @@ import {ElementRef, ElementRef_} from 'angular2/src/core/linker/element_ref';
* A DebugElement contains information from the Angular compiler about an
* element and provides access to the corresponding ElementInjector and
* underlying DOM Element, as well as a way to query for children.
+ *
+ * A DebugElement can be obtained from a {@link ComponentFixture} or
+ * {@link RootTestComponent}.
*/
export abstract class DebugElement {
get componentInstance(): any { return unimplemented(); };
@@ -156,7 +159,7 @@ export class DebugElement_ extends DebugElement {
}
/**
- * Returns a DebugElement for a ElementRef.
+ * Returns a {@link DebugElement} for an {@link ElementRef}.
*
* @param {ElementRef}: elementRef
* @return {DebugElement}
diff --git a/modules/angular2/src/core/di/forward_ref.ts b/modules/angular2/src/core/di/forward_ref.ts
index c5cd38ac7b..3d28989af2 100644
--- a/modules/angular2/src/core/di/forward_ref.ts
+++ b/modules/angular2/src/core/di/forward_ref.ts
@@ -5,9 +5,7 @@ import {Type, stringify, isFunction} from 'angular2/src/facade/lang';
*
* ### Example
*
- * ```typescript
- * var fn:ForwardRefFn = forwardRef(() => Lock);
- * ```
+ * {@example core/di/ts/forward_ref/forward_ref.ts region='forward_ref_fn'}
*/
export interface ForwardRefFn { (): any; }
@@ -19,25 +17,8 @@ export interface ForwardRefFn { (): any; }
* but not yet defined. It is also used when the `token` which we use when creating a query is not
* yet defined.
*
- * ### Example ([live demo](http://plnkr.co/edit/bRs0SX2OTQiJzqvjgl8P?p=preview))
- *
- * ```typescript
- * class Door {
- * lock: Lock;
- * constructor(@Inject(forwardRef(() => Lock)) lock:Lock) {
- * this.lock = lock;
- * }
- * }
- *
- * // Only at this point Lock is defined.
- * class Lock {
- * }
- *
- * var injector = Injector.resolveAndCreate([Door, Lock]);
- * var door = injector.get(Door);
- * expect(door instanceof Door).toBe(true);
- * expect(door.lock instanceof Lock).toBe(true);
- * ```
+ * ### Example
+ * {@example core/di/ts/forward_ref/forward_ref.ts region='forward_ref'}
*/
export function forwardRef(forwardRefFn: ForwardRefFn): Type {
(forwardRefFn).__forward_ref__ = forwardRef;
diff --git a/modules/angular2/src/core/metadata.ts b/modules/angular2/src/core/metadata.ts
index 0046aea0d6..f30c31cb9d 100644
--- a/modules/angular2/src/core/metadata.ts
+++ b/modules/angular2/src/core/metadata.ts
@@ -109,16 +109,7 @@ export interface ViewDecorator extends TypeDecorator {
*
* ### Example as TypeScript Decorator
*
- * ```
- * import {Directive} from "angular2/angular2";
- *
- * @Directive({...})
- * class MyDirective {
- * constructor() {
- * ...
- * }
- * }
- * ```
+ * {@example core/ts/metadata/metadata.ts region='directive'}
*
* ### Example as ES5 DSL
*
@@ -178,16 +169,7 @@ export interface DirectiveFactory {
*
* ### Example as TypeScript Decorator
*
- * ```
- * import {Component} from "angular2/angular2";
- *
- * @Component({...})
- * class MyComponent {
- * constructor() {
- * ...
- * }
- * }
- * ```
+ * {@example core/ts/metadata/metadata.ts region='component'}
*
* ### Example as ES5 DSL
*
@@ -334,16 +316,7 @@ export interface ViewFactory {
*
* ### Example as TypeScript Decorator
*
- * ```
- * import {Attribute, Component} from "angular2/angular2";
- *
- * @Component({...})
- * class MyComponent {
- * constructor(@Attribute('title') title: string) {
- * ...
- * }
- * }
- * ```
+ * {@example core/ts/metadata/metadata.ts region='attributeFactory'}
*
* ### Example as ES5 DSL
*
@@ -449,20 +422,9 @@ export interface ViewChildFactory {
/**
* {@link PipeMetadata} factory for creating decorators.
*
- * ### Example as TypeScript Decorator
+ * ### Example
*
- * ```
- * import {Pipe} from "angular2/angular2";
- *
- * @Pipe({...})
- * class MyPipe {
- * constructor() {
- * ...
- * }
- *
- * transform(v, args) {}
- * }
- * ```
+ * {@example core/ts/metadata/metadata.ts region='pipe'}
*/
export interface PipeFactory {
(obj: {name: string, pure?: boolean}): any;
@@ -530,20 +492,7 @@ export interface HostListenerFactory {
*
* ### Example
*
- * ```
- * @Component({
- * selector: 'greet',
- * template: 'Hello {{name}}!'
- * })
- * class Greet {
- * name: string;
- *
- * constructor() {
- * this.name = 'World';
- * }
- * }
- * ```
- *
+ * {@example core/ts/metadata/metadata.ts region='component'}
*/
export var Component: ComponentFactory =
makeDecorator(ComponentMetadata, (fn: any) => fn.View = View);
@@ -962,35 +911,22 @@ export var Directive: DirectiveFactory = makeDecorator(Directi
export var View: ViewFactory =
makeDecorator(ViewMetadata, (fn: any) => fn.View = View);
-// TODO(alexeagle): remove the duplication of this doc. It is copied from AttributeMetadata.
/**
- * Metadata properties available for configuring Views.
+ * Specifies that a constant attribute value should be injected.
*
- * Each Angular component requires a single `@Component` and at least one `@View` annotation. The
- * `@View` annotation specifies the HTML template to use, and lists the directives that are active
- * within the template.
- *
- * When a component is instantiated, the template is loaded into the component's shadow root, and
- * the expressions and statements in the template are evaluated against the component.
- *
- * For details on the `@Component` annotation, see {@link ComponentMetadata}.
+ * The directive can inject constant string literals of host element attributes.
*
* ### Example
*
- * ```
- * @Component({
- * selector: 'greet',
- * template: 'Hello {{name}}!',
- * directives: [GreetUser, Bold]
- * })
- * class Greet {
- * name: string;
+ * Suppose we have an `` element and want to know its `type`.
*
- * constructor() {
- * this.name = 'World';
- * }
- * }
+ * ```html
+ *
* ```
+ *
+ * A decorator can inject string literal `text` like so:
+ *
+ * {@example core/ts/metadata/metadata.ts region='attributeMetadata'}
*/
export var Attribute: AttributeFactory = makeParamDecorator(AttributeMetadata);
@@ -1244,14 +1180,7 @@ export var ViewQuery: QueryFactory = makeParamDecorator(ViewQueryMetadata);
*
* ### Example
*
- * ```
- * @Pipe({
- * name: 'lowercase'
- * })
- * class Lowercase {
- * transform(v, args) { return v.toLowerCase(); }
- * }
- * ```
+ * {@example core/ts/metadata/metadata.ts region='pipe'}
*/
export var Pipe: PipeFactory = makeDecorator(PipeMetadata);
diff --git a/modules/angular2/src/core/metadata/di.ts b/modules/angular2/src/core/metadata/di.ts
index 4403735ff0..3cb97653af 100644
--- a/modules/angular2/src/core/metadata/di.ts
+++ b/modules/angular2/src/core/metadata/di.ts
@@ -17,16 +17,7 @@ import {DependencyMetadata} from 'angular2/src/core/di/metadata';
*
* A decorator can inject string literal `text` like so:
*
- * ```javascript
- * @Directive({
- * selector: `input'
- * })
- * class InputDirective {
- * constructor(@Attribute('type') type) {
- * // type would be `text` in this example
- * }
- * }
- * ```
+ * {@example core/ts/metadata/metadata.ts region='attributeMetadata'}
*/
@CONST()
export class AttributeMetadata extends DependencyMetadata {
diff --git a/modules/angular2/src/core/metadata/directives.ts b/modules/angular2/src/core/metadata/directives.ts
index af1811c7f7..4c0c3ec611 100644
--- a/modules/angular2/src/core/metadata/directives.ts
+++ b/modules/angular2/src/core/metadata/directives.ts
@@ -804,20 +804,7 @@ export class DirectiveMetadata extends InjectableMetadata {
*
* ### Example
*
- * ```
- * @Component({
- * selector: 'greet',
- * template: 'Hello {{name}}!'
- * })
- * class Greet {
- * name: string;
- *
- * constructor() {
- * this.name = 'World';
- * }
- * }
- * ```
- *
+ * {@example core/ts/metadata/metadata.ts region='component'}
*/
@CONST()
export class ComponentMetadata extends DirectiveMetadata {
@@ -954,12 +941,7 @@ export class ComponentMetadata extends DirectiveMetadata {
*
* ### Example
*
- * ```
- * @Pipe({name: 'lowercase'})
- * class Lowercase {
- * transform(v, args) { return v.toLowerCase(); }
- * }
- * ```
+ * {@example core/ts/metadata/metadata.ts region='pipe'}
*/
@CONST()
export class PipeMetadata extends InjectableMetadata {
diff --git a/modules/angular2/src/platform/dom/debug/debug_element_view_listener.ts b/modules/angular2/src/platform/dom/debug/debug_element_view_listener.ts
index b7c0ce6610..9a023e6ef5 100644
--- a/modules/angular2/src/platform/dom/debug/debug_element_view_listener.ts
+++ b/modules/angular2/src/platform/dom/debug/debug_element_view_listener.ts
@@ -33,6 +33,11 @@ function _getElementId(element): number[] {
}
}
+/**
+ * Returns a {@link DebugElement} for the given native DOM element, or
+ * null if the given native element does not have an Angular view associated
+ * with it.
+ */
export function inspectNativeElement(element): DebugElement {
var elId = _getElementId(element);
if (isPresent(elId)) {
diff --git a/modules/angular2/src/testing/testing.ts b/modules/angular2/src/testing/testing.ts
index 5c108abb51..0307bda748 100644
--- a/modules/angular2/src/testing/testing.ts
+++ b/modules/angular2/src/testing/testing.ts
@@ -20,27 +20,54 @@ export {expect, NgMatchers} from './matchers';
var _global: jasmine.GlobalPolluter = (typeof window === 'undefined' ? global : window);
/**
- * See http://jasmine.github.io/
+ * Run a function (with an optional asynchronous callback) after each test case.
+ *
+ * See http://jasmine.github.io/ for more details.
+ *
+ * ## Example:
+ *
+ * {@example testing/ts/testing.ts region='afterEach'}
*/
export var afterEach: Function = _global.afterEach;
/**
- * See http://jasmine.github.io/
+ * Group test cases together under a common description prefix.
+ *
+ * See http://jasmine.github.io/ for more details.
+ *
+ * ## Example:
+ *
+ * {@example testing/ts/testing.ts region='describeIt'}
*/
export var describe: Function = _global.describe;
/**
- * See http://jasmine.github.io/
+ * See {@link fdescribe}.
*/
export var ddescribe: Function = _global.fdescribe;
/**
- * See http://jasmine.github.io/
+ * Like {@link describe}, but instructs the test runner to only run
+ * the test cases in this group. This is useful for debugging.
+ *
+ * See http://jasmine.github.io/ for more details.
+ *
+ * ## Example:
+ *
+ * {@example testing/ts/testing.ts region='fdescribe'}
*/
export var fdescribe: Function = _global.fdescribe;
/**
- * See http://jasmine.github.io/
+ * Like {@link describe}, but instructs the test runner to exclude
+ * this group of test cases from execution. This is useful for
+ * debugging, or for excluding broken tests until they can be fixed.
+ *
+ * See http://jasmine.github.io/ for more details.
+ *
+ * ## Example:
+ *
+ * {@example testing/ts/testing.ts region='xdescribe'}
*/
export var xdescribe: Function = _global.xdescribe;
@@ -68,14 +95,9 @@ jsmBeforeEach(() => {
*
* The given function must return a list of DI providers.
*
- * Example:
+ * ## Example:
*
- * ```
- * beforeEachProviders(() => [
- * bind(Compiler).toClass(MockCompiler),
- * bind(SomeToken).toValue(myValue),
- * ]);
- * ```
+ * {@example testing/ts/testing.ts region='beforeEachProviders'}
*/
export function beforeEachProviders(fn): void {
jsmBeforeEach(() => {
@@ -171,11 +193,16 @@ function _it(jsmFn: Function, name: string, testFn: FunctionWithParamTokens | An
/**
* Wrapper around Jasmine beforeEach function.
- * See http://jasmine.github.io/
*
* beforeEach may be used with the `inject` function to fetch dependencies.
* The test will automatically wait for any asynchronous calls inside the
* injected test function to complete.
+ *
+ * See http://jasmine.github.io/ for more details.
+ *
+ * ## Example:
+ *
+ * {@example testing/ts/testing.ts region='beforeEach'}
*/
export function beforeEach(fn: FunctionWithParamTokens | AnyTestFn): void {
if (fn instanceof FunctionWithParamTokens) {
@@ -200,12 +227,18 @@ export function beforeEach(fn: FunctionWithParamTokens | AnyTestFn): void {
}
/**
- * Wrapper around Jasmine it function.
- * See http://jasmine.github.io/
+ * Define a single test case with the given test name and execution function.
*
- * it may be used with the `inject` function to fetch dependencies.
- * The test will automatically wait for any asynchronous calls inside the
- * injected test function to complete.
+ * The test function can be either a synchronous function, an asynchronous function
+ * that takes a completion callback, or an injected function created via {@link inject}
+ * or {@link injectAsync}. The test will automatically wait for any asynchronous calls
+ * inside the injected test function to complete.
+ *
+ * Wrapper around Jasmine it function. See http://jasmine.github.io/ for more details.
+ *
+ * ## Example:
+ *
+ * {@example testing/ts/testing.ts region='it'}
*/
export function it(name: string, fn: FunctionWithParamTokens | AnyTestFn,
timeOut: number = null): void {
@@ -213,12 +246,15 @@ export function it(name: string, fn: FunctionWithParamTokens | AnyTestFn,
}
/**
- * Wrapper around Jasmine xit (skipped it) function.
- * See http://jasmine.github.io/
+ * Like {@link it}, but instructs the test runner to exclude this test
+ * entirely. Useful for debugging or for excluding broken tests until
+ * they can be fixed.
*
- * it may be used with the `inject` function to fetch dependencies.
- * The test will automatically wait for any asynchronous calls inside the
- * injected test function to complete.
+ * Wrapper around Jasmine xit function. See http://jasmine.github.io/ for more details.
+ *
+ * ## Example:
+ *
+ * {@example testing/ts/testing.ts region='xit'}
*/
export function xit(name: string, fn: FunctionWithParamTokens | AnyTestFn,
timeOut: number = null): void {
@@ -226,12 +262,7 @@ export function xit(name: string, fn: FunctionWithParamTokens | AnyTestFn,
}
/**
- * Wrapper around Jasmine iit (focused it) function.
- * See http://jasmine.github.io/
- *
- * it may be used with the `inject` function to fetch dependencies.
- * The test will automatically wait for any asynchronous calls inside the
- * injected test function to complete.
+ * See {@link fit}.
*/
export function iit(name: string, fn: FunctionWithParamTokens | AnyTestFn,
timeOut: number = null): void {
@@ -239,12 +270,14 @@ export function iit(name: string, fn: FunctionWithParamTokens | AnyTestFn,
}
/**
- * Wrapper around Jasmine fit (focused it) function.
- * See http://jasmine.github.io/
+ * Like {@link it}, but instructs the test runner to only run this test.
+ * Useful for debugging.
*
- * it may be used with the `inject` function to fetch dependencies.
- * The test will automatically wait for any asynchronous calls inside the
- * injected test function to complete.
+ * Wrapper around Jasmine fit function. See http://jasmine.github.io/ for more details.
+ *
+ * ## Example:
+ *
+ * {@example testing/ts/testing.ts region='fit'}
*/
export function fit(name: string, fn: FunctionWithParamTokens | AnyTestFn,
timeOut: number = null): void {