diff --git a/README.md b/README.md
index ce41353f7..4f05068a6 100755
--- a/README.md
+++ b/README.md
@@ -91,6 +91,7 @@ List of Definitions
* [iScroll](http://cubiq.org/iscroll-4) (by [Boris Yankov](https://github.com/borisyankov))
* [jake](https://github.com/mde/jake) (by [Kon](http://phyzkit.net/))
* [Jasmine](http://pivotal.github.com/jasmine/) (by [Boris Yankov](https://github.com/borisyankov))
+* [Jasmine-jQuery](https://github.com/velesin/jasmine-jquery) (by [Gregor Stamac](https://github.com/gstamac))
* [jQRangeSlider](http://ghusse.github.com/jQRangeSlider) (by [Dániel Tar](https://github.com/qcz))
* [jQuery](http://jquery.com/) (from TypeScript samples)
* [jQuery Mobile](http://jquerymobile.com) (by [Boris Yankov](https://github.com/borisyankov))
diff --git a/jasmine-jquery/jasmine-jquery-tests.ts b/jasmine-jquery/jasmine-jquery-tests.ts
new file mode 100644
index 000000000..15877ed60
--- /dev/null
+++ b/jasmine-jquery/jasmine-jquery-tests.ts
@@ -0,0 +1,135 @@
+///
+///
+///
+
+describe("Jasmine jQuery extension", () => {
+ it("Adds jQuery matchers", () => {
+ expect($('
')).toBe('div');
+ expect($('')).toBe('div#some-id');
+ expect($('')).toBeChecked();
+ expect($('')).toBeHidden();
+ expect($('')).toHaveCss({ display: "none", margin: "10px" });
+ expect($('')).toHaveCss({ margin: "10px" });
+ expect($('')).toBeSelected();
+ expect($('')).toBeVisible();
+ expect($('
')).toContain('span.some-class');
+ expect($('').addClass('js-something')).toBeMatchedBy('.js-something');
+ expect($('')).toExist();
+ expect($('')).toHaveAttr('id', 'some-id');
+ expect($('')).toHaveProp('id', 'some-id');
+ expect($('')).toHaveBeenTriggered();
+ expect($('')).toHaveBeenTriggeredOn('#some-id');
+ expect($('')).toHaveBeenTriggeredOnAndWith('#some-id', 'eventParam');
+ expect($('')).toHaveBeenPrevented();
+ expect($('')).toHaveBeenPreventedOn('#some-id');
+ expect($('')).toHaveBeenStopped();
+ expect($('')).toHaveBeenStoppedOn('#some-id');
+ expect($('')).toHaveClass("some-class");
+ expect($('')).toHaveData('item', 'value');
+ expect($('
')).toHaveHtml('');
+ expect($('')).toContainHtml('');
+ expect($('')).toContainText('header');
+ expect($('')).toHaveId("some-id");
+ expect($('some text
')).toHaveText('some text');
+ expect($('')).toHaveValue('some text');
+ expect($('ul > li')).toHaveLength(3);
+ expect($('')).toBeDisabled();
+ expect($('').focus()).toBeFocused();
+ //expect($form).toHandle("submit")
+ //expect($form).toHandleWith("submit", yourSubmitCallback)
+ });
+
+ it("Handles HTML Fixtures", () => {
+ jasmine.getFixtures().fixturesPath = 'my/new/path';
+ jasmine.getFixtures().containerId = 'my-new-id';
+
+ jasmine.getFixtures().load('myfixture.html');
+ jasmine.getFixtures().appendLoad('myfixture.html', 'myfixture2.html');
+ jasmine.getFixtures().read('myfixture.html', 'myfixture2.html');
+ jasmine.getFixtures().set('');
+ jasmine.getFixtures().appendSet('');
+ jasmine.getFixtures().preload('myfixture.html', 'myfixture2.html');
+ jasmine.getFixtures().clearCache();
+ jasmine.getFixtures().cleanUp();
+
+ loadFixtures('myfixture.html');
+ appendLoadFixtures('myfixture.html');
+ readFixtures('myfixture.html');
+ setFixtures('');
+ appendSetFixtures('');
+
+ sandbox();
+ sandbox({
+ id: 'my-id',
+ class: 'my-class',
+ myattr: 'my-attr'
+ });
+
+ setFixtures(sandbox({ class: 'my-class' }));
+ });
+
+ it("Handles Style Fixtures", () => {
+ jasmine.getStyleFixtures().fixturesPath = 'my/new/path';
+
+ jasmine.getStyleFixtures().load('myfixture.css');
+ jasmine.getStyleFixtures().appendLoad('myfixture.css', 'myfixture2.css');
+ jasmine.getStyleFixtures().set('.elem { position: absolute }');
+ jasmine.getStyleFixtures().appendSet('.elem { position: absolute }');
+ jasmine.getStyleFixtures().preload('myfixture.css', 'myfixture2.css');
+ jasmine.getStyleFixtures().clearCache();
+ jasmine.getStyleFixtures().cleanUp();
+
+ loadStyleFixtures('myfixture.css');
+ appendLoadFixtures('myfixture.css');
+ setStyleFixtures('.elem { position: absolute }');
+ appendSetStyleFixtures('.elem { position: absolute }');
+ });
+
+ it("Handles JSON Fixtures", () => {
+ jasmine.getJSONFixtures().fixturesPath = 'my/new/path';
+
+ jasmine.getJSONFixtures().load('myfixture.json');
+ jasmine.getJSONFixtures().read('myfixture.json');
+ jasmine.getJSONFixtures().clearCache();
+
+ var data = getJSONFixture('myjsonfixture.json');
+ var fixtures = loadJSONFixtures('myjsonfixture.json');
+ var data = fixtures['myjsonfixture.json'];
+ });
+
+ describe("Event Spies", () => {
+ it("First, spy on the event", () => {
+ var spyEvent = spyOnEvent('#some_element', 'click');
+ $('#some_element').click();
+ expect('click').toHaveBeenTriggeredOn('#some_element');
+ expect(spyEvent).toHaveBeenTriggered();
+ });
+
+ it("You can reset spy events", () => {
+ var spyEvent = spyOnEvent('#some_element', 'click');
+ $('#some_element').click();
+ expect('click').toHaveBeenTriggeredOn('#some_element');
+ expect(spyEvent).toHaveBeenTriggered();
+ // reset spy events
+ spyEvent.reset();
+ expect('click').not.toHaveBeenTriggeredOn('#some_element');
+ expect(spyEvent).not.toHaveBeenTriggered();
+ });
+
+ it("You can similarly check if triggered event was prevented", () => {
+ var spyEvent = spyOnEvent('#some_element', 'click');
+ $('#some_element').click(function (event) { event.preventDefault(); });
+ $('#some_element').click();
+ expect('click').toHaveBeenPreventedOn('#some_element');
+ expect(spyEvent).toHaveBeenPrevented();
+ });
+
+ it("You can also check if the triggered event was stopped", () => {
+ var spyEvent = spyOnEvent('#some_element', 'click');
+ $('#some_element').click(function (event) { event.stopPropagation(); });
+ $('#some_element').click();
+ expect('click').toHaveBeenStoppedOn('#some_element');
+ expect(spyEvent).toHaveBeenStopped();
+ });
+ });
+})
diff --git a/jasmine-jquery/jasmine-jquery.d.ts b/jasmine-jquery/jasmine-jquery.d.ts
index 6fa4be7e7..520445a23 100644
--- a/jasmine-jquery/jasmine-jquery.d.ts
+++ b/jasmine-jquery/jasmine-jquery.d.ts
@@ -3,24 +3,29 @@
// Definitions by: Gregor Stamac
// DefinitelyTyped: https://github.com/borisyankov/DefinitelyTyped
+///
///
+declare function sandbox(attributes?: any): string;
+
declare function readFixtures(...uls: string[]): string;
declare function preloadFixtures(...uls: string[]);
declare function loadFixtures(...uls: string[]);
declare function appendLoadFixtures(...uls: string[]);
declare function setFixtures(html: string): string;
-declare function appendSetFixtures();
-declare function sandbox(attributes): JQuery;
-declare function spyOnEvent(selector: JQuery, eventName: string): any;
-declare function preloadStyleFixtures();
-declare function loadStyleFixtures();
-declare function appendLoadStyleFixtures();
+declare function appendSetFixtures(html: string);
+
+declare function preloadStyleFixtures(...uls: string[]);
+declare function loadStyleFixtures(...uls: string[]);
+declare function appendLoadStyleFixtures(...uls: string[]);
declare function setStyleFixtures(html: string);
declare function appendSetStyleFixtures(html: string);
-declare function loadJSONFixtures(): jasmine.JSONFixtures;
+
+declare function loadJSONFixtures(...uls: string[]): jasmine.JSONFixtures;
declare function getJSONFixture(url: string): any;
+declare function spyOnEvent(selector: string, eventName: string): jasmine.JQueryEventSpy;
+
declare module jasmine {
function spiedEventsKey(selector: JQuery, eventName: string): string;
@@ -30,6 +35,7 @@ declare module jasmine {
interface Fixtures {
fixturesPath: string;
+ containerId: string;
set(html: string): string;
appendSet(html: string);
preload(...uls: string[]);
@@ -38,16 +44,17 @@ declare module jasmine {
read(...uls: string[]): string;
clearCache();
cleanUp();
- sandbox(attributes): JQuery;
+ sandbox(attributes?: any): string;
createContainer_(html: string);
addToContainer_(html: string);
getFixtureHtml_(url: string): string;
loadFixtureIntoCache_(relativeUrl: string);
makeFixtureUrl_(relativeUrl: string): string;
- proxyCallTo_(methodName, passedArguments): any;
+ proxyCallTo_(methodName: string, passedArguments): any;
}
interface StyleFixtures {
+ fixturesPath: string;
set(html: string): string;
appendSet(html: string);
preload(...uls: string[]);
@@ -60,22 +67,19 @@ declare module jasmine {
getFixtureHtml_(url: string): string;
loadFixtureIntoCache_(relativeUrl: string);
makeFixtureUrl_(relativeUrl: string): string;
- proxyCallTo_(methodName, passedArguments): any;
+ proxyCallTo_(methodName: string, passedArguments): any;
}
interface JSONFixtures {
+ fixturesPath: string;
load(...uls: string[]);
read(...uls: string[]): string;
clearCache();
getFixtureData_(url: string): any;
loadFixtureIntoCache_(relativeUrl: string);
- proxyCallTo_(methodName, passedArguments): any;
+ proxyCallTo_(methodName: string, passedArguments): any;
}
- var Fixtures: Fixtures;
- var StyleFixtures: StyleFixtures;
- var JSONFixtures: JSONFixtures;
-
interface Matchers {
toHaveClass(className: string): boolean;
toHaveCss(css): boolean;
@@ -97,25 +101,43 @@ declare module jasmine {
toHaveData(key, expectedValue): boolean;
toBe(selector: JQuery): boolean;
toContain(selector: JQuery): boolean;
- toBeMatchedBy(selector: JQuery): boolean;
- toBeDisabled(selector: JQuery): boolean;
- toBeFocused(selector: JQuery): boolean;
+ toBeMatchedBy(selector: string): boolean;
+ toBeDisabled(): boolean;
+ toBeFocused(): boolean;
toHandle(event): boolean;
toHandleWith(eventName: string, eventHandler): boolean;
- toHaveBeenTriggeredOn(selector: JQuery): boolean;
toHaveBeenTriggered(): boolean;
- toHaveBeenTriggeredOnAndWith(...args: any[]): boolean;
- toHaveBeenPreventedOn(selector: JQuery): boolean;
+ toHaveBeenTriggeredOn(selector: string): boolean;
+ toHaveBeenTriggeredOnAndWith(selector: string, ...args: any[]): boolean;
toHaveBeenPrevented(): boolean;
- toHaveBeenStoppedOn(selector: JQuery): boolean;
+ toHaveBeenPreventedOn(selector: string): boolean;
toHaveBeenStopped(): boolean;
+ toHaveBeenStoppedOn(selector: string): boolean;
+ }
+
+ interface JQueryEventSpy {
+ selector: string;
+ eventName: string;
+ handler(eventObject: JQueryEventObject): any;
+ reset(): any;
}
interface JasmineJQuery {
browserTagCaseIndependentHtml(html: string): string;
elementToString(element: JQuery): string;
matchersClass: any;
+ events: JasmineJQueryEvents;
+ }
+
+ interface JasmineJQueryEvents {
+ spyOn(selector: string, eventName: string): JQueryEventSpy;
+ args(selector: string, eventName: string): any;
+ wasTriggered(selector: string, eventName: string): boolean;
+ wasTriggeredWith(selector: string, eventName: string, expectedArgs: any, env: jasmine.Env): boolean;
+ wasPrevented(selector: string, eventName: string): boolean;
+ wasStopped(selector: string, eventName: string): boolean;
+ cleanUp();
}
var JQuery: JasmineJQuery;
diff --git a/jasmine/jasmine.d.ts b/jasmine/jasmine.d.ts
index 3a6692003..62d4d2fed 100644
--- a/jasmine/jasmine.d.ts
+++ b/jasmine/jasmine.d.ts
@@ -4,15 +4,15 @@
// DefinitelyTyped: https://github.com/borisyankov/DefinitelyTyped
-declare function describe(description: string, specDefinitions: Function): void;
-declare function xdescribe(description: string, specDefinitions: Function): void;
+declare function describe(description: string, specDefinitions: () => void): void;
+declare function xdescribe(description: string, specDefinitions: () => void): void;
-declare function it(expectation: string, assertion: () => void ): void;
-declare function it(expectation: string, assertion: (done: (err?:any) => void) => void ): void;
-declare function xit(expectation: string, assertion: Function): void;
+declare function it(expectation: string, assertion: () => void): void;
+declare function it(expectation: string, assertion: (done: (err?: any) => void) => void): void;
+declare function xit(expectation: string, assertion: () => void): void;
-declare function beforeEach(action: Function): void;
-declare function afterEach(action: Function): void;
+declare function beforeEach(action: () => void): void;
+declare function afterEach(action: () => void): void;
declare function expect(spy: Function): jasmine.Matchers;
//declare function expect(spy: jasmine.Spy): jasmine.Matchers;
@@ -28,7 +28,7 @@ declare module jasmine {
var Clock: Clock;
- function any(aclass: any):any;
+ function any(aclass: any): Any;
function objectContaining(sample: any): ObjectContaining;
function createSpy(name: string, originalFn?: Function): Spy;
function createSpyObj(baseName: string, methodNames: any[]): any;
@@ -37,123 +37,173 @@ declare module jasmine {
interface Any {
- new (expectedClass:any):any;
+ new (expectedClass: any): any;
- jasmineMatches(other:any):any;
- jasmineToString():any;
+ jasmineMatches(other: any): boolean;
+ jasmineToString(): string;
}
interface ObjectContaining {
new (sample: any): any;
- jasmineMatches(other: any, mismatchKeys: any[], mismatchValues: any[]): any;
- jasmineToString(): any;
+ jasmineMatches(other: any, mismatchKeys: any[], mismatchValues: any[]): boolean;
+ jasmineToString(): string;
}
interface Block {
- new (env: Env, func: Function, spec: Spec):any;
+ new (env: Env, func: SpecFunction, spec: Spec): any;
- execute(onComplete:any):any;
+ execute(onComplete: () => void): void;
+ }
+
+ interface WaitsBlock extends Block {
+ new (env: Env, timeout: number, spec: Spec): any;
+ }
+
+ interface WaitsForBlock extends Block {
+ new (env: Env, timeout: number, latchFunction: SpecFunction, message: string, spec: Spec): any;
}
interface Clock {
reset(): void;
- tick(millis:any): void;
- runFunctionsWithinRange(oldMillis:any, nowMillis:any): void;
- scheduleFunction(timeoutKey:any, funcToCall:any, millis:any, recurring:any): void;
+ tick(millis: number): void;
+ runFunctionsWithinRange(oldMillis: number, nowMillis: number): void;
+ scheduleFunction(timeoutKey: any, funcToCall: () => void, millis: number, recurring: boolean): void;
useMock(): void;
installMock(): void;
uninstallMock(): void;
- real:any;
+ real: void;
assertInstalled(): void;
isInstalled(): boolean;
installed: any;
}
interface Env {
- setTimeout:any;
- clearTimeout:any;
- setInterval:any;
- clearInterval:any;
- updateInterval:any;
+ setTimeout: any;
+ clearTimeout: void;
+ setInterval: any;
+ clearInterval: void;
+ updateInterval: number;
currentSpec: Spec;
- version():any;
+ matchersClass: Matchers;
+
+ version(): any;
versionString(): string;
nextSpecId(): number;
- addReporter(reporter:any):any;
- execute():any;
- describe(description:any, specDefinitions:any):any;
- beforeEach(beforeEachFunction:any):any;
- currentRunner():any;
- afterEach(afterEachFunction:any):any;
- xdescribe(desc:any, specDefinitions:any):any;
- it(description:any, func:any):any;
- xit(desc:any, func:any):any;
- compareObjects_(a:any, b:any, mismatchKeys:any, mismatchValues:any):any;
- equals_(a:any, b:any, mismatchKeys:any, mismatchValues:any):any;
- contains_(haystack:any, needle:any):any;
- addEqualityTester(equalityTester:any):any;
- specFilter(spec:any): boolean;
+ addReporter(reporter: Reporter): void;
+ execute(): void;
+ describe(description: string, specDefinitions: () => void): Suite;
+ beforeEach(beforeEachFunction: () => void): void;
+ currentRunner(): Runner;
+ afterEach(afterEachFunction: () => void): void;
+ xdescribe(desc: string, specDefinitions: () => void): XSuite;
+ it(description: string, func: () => void): Spec;
+ xit(desc: string, func: () => void): XSpec;
+ compareRegExps_(a: RegExp, b: RegExp, mismatchKeys: string[], mismatchValues: string[]): boolean;
+ compareObjects_(a: any, b: any, mismatchKeys: string[], mismatchValues: string[]): boolean;
+ equals_(a: any, b: any, mismatchKeys: string[], mismatchValues: string[]): boolean;
+ contains_(haystack: any, needle: any): boolean;
+ addEqualityTester(equalityTester: (a: any, b: any, env: Env, mismatchKeys: string[], mismatchValues: string[]) => boolean): void;
+ specFilter(spec: Spec): boolean;
}
interface FakeTimer {
- new ():any;
+ new (): any;
reset(): void;
- tick(millis:any): void;
- runFunctionsWithinRange(oldMillis:any, nowMillis:any): void;
- scheduleFunction(timeoutKey:any, funcToCall:any, millis:any, recurring:any): void;
+ tick(millis: number): void;
+ runFunctionsWithinRange(oldMillis: number, nowMillis: number): void;
+ scheduleFunction(timeoutKey: any, funcToCall: () => void, millis: number, recurring: boolean): void;
}
interface HtmlReporter {
- new ():any;
+ new (): any;
}
- interface NestedResults {
-
- new ():any;
-
- rollupCounts(result:any):any;
- log(values:any):any;
- getItems():any;
- addResult(result:any):any;
- passed():any;
+ interface Result {
+ type: string;
}
+ interface NestedResults extends Result {
+ description: string;
+
+ totalCount: number;
+ passedCount: number;
+ failedCount: number;
+
+ skipped: boolean;
+
+ rollupCounts(result: NestedResults): void;
+ log(values: any): void;
+ getItems(): Result[];
+ addResult(result: Result): void;
+ passed(): boolean;
+ }
+
+ interface MessageResult extends Result {
+ values: any;
+ trace: Trace;
+ }
+
+ interface ExpectationResult extends Result {
+ matcherName: string;
+ passed(): boolean;
+ expected: any;
+ actual: any;
+ message: string;
+ trace: Trace;
+ }
+
+ interface Trace {
+ name: string;
+ message: string;
+ stack: any;
+ }
interface PrettyPrinter {
- new ():any;
+ new (): any;
- format(value:any):any;
- iterateObject(obj:any, fn:any):any;
- emitScalar(value:any):any;
- emitString(value:any):any;
- emitArray(array:any):any;
- emitObject(obj:any):any;
- append(value:any):any;
+ format(value: any): void;
+ iterateObject(obj: any, fn: (property: string, isGetter: boolean) => void): void;
+ emitScalar(value: any): void;
+ emitString(value: string): void;
+ emitArray(array: any[]): void;
+ emitObject(obj: any): void;
+ append(value: any): void;
+ }
+
+ interface StringPrettyPrinter extends PrettyPrinter {
}
interface Queue {
- new (env:any):any;
+ new (env: any): any;
- addBefore(block:any, ensure:any):any;
- add(block:any, ensure:any):any;
- insertNext(block:any, ensure:any):any;
- start(onComplete:any):any;
- isRunning():any;
- next_():any;
- results():any;
+ env: Env;
+ ensured: boolean[];
+ blocks: Block[];
+ running: boolean;
+ index: number;
+ offset: number;
+ abort: boolean;
+
+ addBefore(block: Block, ensure?: boolean): void;
+ add(block: any, ensure?: boolean): void;
+ insertNext(block: any, ensure?: boolean): void;
+ start(onComplete?: () => void): void;
+ isRunning(): boolean;
+ next_(): void;
+ results(): NestedResults;
}
interface Matchers {
- new (env: Env, actual:any, spec: Env, isNot?: boolean):any;
+ new (env: Env, actual: any, spec: Env, isNot?: boolean): any;
env: Env;
actual: any;
@@ -161,12 +211,12 @@ declare module jasmine {
isNot?: boolean;
message(): any;
- toBe(expected:any): boolean;
- toNotBe(expected:any): boolean;
- toEqual(expected:any): boolean;
- toNotEqual(expected:any): boolean;
- toMatch(expected:any): boolean;
- toNotMatch(expected:any): boolean;
+ toBe(expected: any): boolean;
+ toNotBe(expected: any): boolean;
+ toEqual(expected: any): boolean;
+ toNotEqual(expected: any): boolean;
+ toMatch(expected: any): boolean;
+ toNotMatch(expected: any): boolean;
toBeDefined(): boolean;
toBeUndefined(): boolean;
toBeNull(): boolean;
@@ -176,86 +226,118 @@ declare module jasmine {
toHaveBeenCalled(): boolean;
wasNotCalled(): boolean;
toHaveBeenCalledWith(...params: any[]): boolean;
- toContain(expected:any): boolean;
- toNotContain(expected:any): boolean;
- toBeLessThan(expected:any): boolean;
- toBeGreaterThan(expected:any): boolean;
- toBeCloseTo(expected:any, precision:any): boolean;
+ toContain(expected: any): boolean;
+ toNotContain(expected: any): boolean;
+ toBeLessThan(expected: any): boolean;
+ toBeGreaterThan(expected: any): boolean;
+ toBeCloseTo(expected: any, precision: any): boolean;
toContainHtml(expected: string): boolean;
toContainText(expected: string): boolean;
- toThrow(expected?:any ): boolean;
+ toThrow(expected?: any): boolean;
not: Matchers;
Any: Any;
}
- interface MultiReporter {
-
- new ():any;
-
- addReporter(reporter: Reporter):any;
+ interface Reporter {
+ reportRunnerStarting(runner: Runner): void;
+ reportRunnerResults(runner: Runner): void;
+ reportSuiteResults(suite: Suite): void;
+ reportSpecStarting(spec: Spec): void;
+ reportSpecResults(spec: Spec): void;
+ log(str: string): void;
}
- interface Reporter {
- reportRunnerStarting(runner:any):any;
- reportRunnerResults(runner:any):any;
- reportSuiteResults(suite:any):any;
- reportSpecStarting(spec:any):any;
- reportSpecResults(spec:any):any;
- log(str:any):any;
+ interface MultiReporter extends Reporter {
+ addReporter(reporter: Reporter): void;
}
interface Runner {
- new (env: Env):any;
+ new (env: Env): any;
- execute():any;
- beforeEach(beforeEachFunction:any):any;
- afterEach(afterEachFunction:any):any;
- finishCallback():any;
- addSuite(suite:any):any;
- add(block:any):any;
- specs():any;
- suites():any;
- topLevelSuites():any;
- results():any;
+ execute(): void;
+ beforeEach(beforeEachFunction: SpecFunction): void;
+ afterEach(afterEachFunction: SpecFunction): void;
+ finishCallback(): void;
+ addSuite(suite: Suite): void;
+ add(block: Block): void;
+ specs(): Spec[];
+ suites(): Suite[];
+ topLevelSuites(): Suite[];
+ results(): NestedResults;
}
- interface Spec {
-
- new (env: Env, suite: Suite, description: string):any;
+ interface SpecFunction {
+ (spec?: Spec): void
+ }
+ interface SuiteOrSpec {
id: number;
env: Env;
- suite: Suite;
description: string;
queue: Queue;
+ }
+
+ interface Spec extends SuiteOrSpec {
+
+ new (env: Env, suite: Suite, description: string): any;
+
+ suite: Suite;
- afterCallbacks: any;
- spies_: any;
+ afterCallbacks: SpecFunction[];
+ spies_: Spy[];
results_: NestedResults;
- matchersClass: any;
+ matchersClass: Matchers;
getFullName(): string;
- results():any;
- log():any;
- runs(func: Function):any;
- addToQueue(block:any):any;
- addMatcherResult(result:any):any;
- expect(actual:any):any;
- waitsFor(latchFunction: Function, timeoutMessage?: string, timeout?: number):any;
- fail(e:any):any;
- getMatchersClass_():any;
- addMatchers(matchersPrototype:any):any;
- finishCallback():any;
- finish(onComplete:any):any;
- after(doAfter:any):any;
- execute(onComplete:any):any;
- addBeforesAndAftersToQueue():any;
- explodes():any;
- spyOn(obj:any, methodName:any, ignoreMethodDoesntExist:any):any;
- removeAllSpies():any;
+ results(): NestedResults;
+ log(arguments): any;
+ runs(func: SpecFunction): Spec;
+ addToQueue(block: Block): void;
+ addMatcherResult(result: Result): void;
+ expect(actual: any): any;
+ waits(timeout: number): Spec;
+ waitsFor(latchFunction: SpecFunction, timeoutMessage?: string, timeout?: number): Spec;
+ fail(e?: any): void;
+ getMatchersClass_(): Matchers;
+ addMatchers(matchersPrototype: any): void;
+ finishCallback(): void;
+ finish(onComplete?: () => void): void;
+ after(doAfter: SpecFunction): void;
+ execute(onComplete?: () => void): any;
+ addBeforesAndAftersToQueue(): void;
+ explodes(): void;
+ spyOn(obj: any, methodName: string, ignoreMethodDoesntExist: boolean): Spy;
+ removeAllSpies(): void;
+ }
+
+ interface XSpec {
+ id: number;
+ runs(): void;
+ }
+
+ interface Suite extends SuiteOrSpec {
+
+ new (env: Env, description: string, specDefinitions: () => void, parentSuite: Suite): any;
+
+ parentSuite: Suite;
+
+ getFullName(): string;
+ finish(onComplete?: () => void): void;
+ beforeEach(beforeEachFunction: SpecFunction): void;
+ afterEach(afterEachFunction: SpecFunction): void;
+ results(): NestedResults;
+ add(suiteOrSpec: SuiteOrSpec): void;
+ specs(): Spec[];
+ suites(): Suite[];
+ children(): any[];
+ execute(onComplete?: () => void): void;
+ }
+
+ interface XSuite {
+ execute(): void;
}
interface Spy {
@@ -268,53 +350,35 @@ declare module jasmine {
wasCalled: boolean;
callCount: number;
- andReturn(value:any): Spy;
+ andReturn(value: any): Spy;
andCallThrough(): Spy;
andCallFake(fakeFunc: Function): Spy;
}
- interface Suite {
-
- new (env: Env, description: string, specDefinitions: Function, parentSuite: Suite):any;
-
- getFullName():any;
- finish(onComplete:any):any;
- beforeEach(beforeEachFunction:any):any;
- afterEach(afterEachFunction:any):any;
- results():any;
- add(suiteOrSpec:any):any;
- specs():any;
- suites():any;
- children():any;
- execute(onComplete:any):any;
- }
-
interface Util {
- inherit(childClass: Function, parentClass: Function):any;
- formatException(e:any):any;
+ inherit(childClass: Function, parentClass: Function): any;
+ formatException(e: any): any;
htmlEscape(str: string): string;
- argsToArray(args:any):any;
- extend(destination:any, source:any):any;
+ argsToArray(args: any): any;
+ extend(destination: any, source: any): any;
}
- interface JsApiReporter {
+ interface JsApiReporter extends Reporter {
- result:any;
- messages:any;
+ started: boolean;
+ finished: boolean;
+ result: any;
+ messages: any;
- new ():any;
+ new (): any;
- reportRunnerStarting(runner:any):any;
- suites():any;
- summarize_(suiteOrSpec:any):any;
- results():any;
- resultsForSpec(specId:any):any;
- reportRunnerResults(runner:any):any;
- reportSuiteResults(suite:any):any;
- reportSpecResults(spec:any):any;
- log(str:any):any;
- resultsForSpecs(specIds:any):any;
- summarizeResult_(result:any):any;
+ suites(): Suite[];
+ summarize_(suiteOrSpec: SuiteOrSpec): any;
+ results(): any;
+ resultsForSpec(specId: any): any;
+ log(str: any): any;
+ resultsForSpecs(specIds: any): any;
+ summarizeResult_(result: any): any;
}
interface Jasmine {
diff --git a/jquery/jquery-tests.ts b/jquery/jquery-tests.ts
index 2fd4ff9cb..fa91dc6b6 100644
--- a/jquery/jquery-tests.ts
+++ b/jquery/jquery-tests.ts
@@ -1124,7 +1124,9 @@ function test_error() {
$(this).hide();
})
.attr("src", "missing.png");
- jQuery.error = console.error;
+ jQuery.error = (message?: string) => {
+ console.error(message); return this;
+ }
}
function test_eventParams() {