diff --git a/siesta/siesta-tests.ts b/siesta/siesta-tests.ts
index 213990aa78..8962c042f5 100644
--- a/siesta/siesta-tests.ts
+++ b/siesta/siesta-tests.ts
@@ -1,28 +1,32 @@
///
-StartTest(function (t: Siesta.Test) {
+StartTest(function (t: Siesta.Test.ExtJS) {
});
-startTest(function (t: Siesta.Test) {
+startTest(function (t: Siesta.Test.Browser) {
});
-describe(function (t: Siesta.Test) {
+describe(function (t: Siesta.Test.jQuery) {
});
var Harness = Siesta.Harness.Browser;
-Harness.start({
+Harness.start({
group: 'MyGroup',
items: [
'test-script01.js',
'test-script02.js',
- {
+ {
url: 'http://somesite.com/test-script03.js',
- preload: [{
+ preload: [{
type: 'css',
- url: 'http://somesite.com/test-script03.css'
+ url: 'http://somesite.com/test-script03.ashx'
}]
}
],
option1: true
-});
\ No newline at end of file
+});
+
+var temp: Siesta.Test.ExtJS;
+
+var temps: Shapes.Point;
diff --git a/siesta/siesta.d.ts b/siesta/siesta.d.ts
index e987f3ce6c..bf2ec6c1f4 100644
--- a/siesta/siesta.d.ts
+++ b/siesta/siesta.d.ts
@@ -1,14 +1,11 @@
-declare function StartTest(testScript: (t: Siesta.Test) => void): void;
-
-declare var startTest: typeof StartTest;
-
-declare var describe: typeof StartTest;
-
declare module Siesta {
//#region Harness
- class Harness {
+ /**
+ * @abstract
+ */
+ interface IHarness {
alsoPreload: any[];
autoCheckGlobals: boolean;
@@ -45,7 +42,7 @@ declare module Siesta {
subTestTimeout: number;
- testClass: Siesta.Test;
+ testClass: Siesta.ITest;
title: string;
@@ -59,33 +56,36 @@ declare module Siesta {
}
module Harness {
- interface ITestGroupDescriptor {
- group: string;
+ //interface ITestGroupDescriptor {
+ // group: string;
- items: any[];
- }
+ // items: any[];
+ //}
- interface ITestUrlDescriptor {
- url: string;
- }
+ //interface ITestUrlDescriptor {
+ // url: string;
+ //}
- interface IPreloadUrlDescriptor {
- type: string;
+ //interface IPreloadUrlDescriptor {
+ // type: string;
- url: string;
- }
+ // url: string;
+ //}
- interface IPreloadContentDescriptor {
- type: string;
+ //interface IPreloadContentDescriptor {
+ // type: string;
- content: string;
- }
+ // content: string;
+ //}
- interface IPreloadTextDescriptor {
- text: string;
- }
+ //interface IPreloadTextDescriptor {
+ // text: string;
+ //}
- interface IBrowser extends Harness {
+ /**
+ * @singleton
+ */
+ interface IBrowser extends IHarness {
autoRun: boolean;
autoScrollElementsIntoView: boolean;
@@ -114,8 +114,6 @@ declare module Siesta {
speedRun: boolean;
- testClass: Function;
-
useStrictMode: boolean;
viewDOM: boolean;
@@ -125,6 +123,9 @@ declare module Siesta {
viewportWidth: number;
}
+ /**
+ * @mixin
+ */
interface IBrowserExtJSCore {
coverageUnit: string;
@@ -133,6 +134,9 @@ declare module Siesta {
installLoaderInstrumentationHook: boolean;
}
+ /**
+ * @singleton
+ */
interface IBrowserExtJS extends IBrowser, IBrowserExtJSCore {
allowExtVersionChange: boolean;
@@ -143,6 +147,9 @@ declare module Siesta {
waitForExtReady;
}
+ /**
+ * @singleton
+ */
interface IBrowserSenchaTouch extends IBrowser, IBrowserExtJSCore {
loaderPath: any;
@@ -159,7 +166,10 @@ declare module Siesta {
SenchaTouch: IBrowserSenchaTouch;
}
- interface IHarnessNodeJS extends Harness {
+ /**
+ * @singleton
+ */
+ interface IHarnessNodeJS extends IHarness {
}
var Browser: IBrowserSingleton;
@@ -169,147 +179,333 @@ declare module Siesta {
//#endregion
- export class Test implements Test.BDD, Test.Date, Test.Function, Test.More {
+ //#region Test
+
+ /**
+ * @abstract
+ */
+ interface ITest extends Test.IBDD, Test.IDate, Test.IFunction, Test.IMore {
}
- export module Test {
- export class Action {
+ module Test {
+ /**
+ * @abstract
+ */
+ interface IAction {
+ desc?: string;
}
- export module Action {
- export module Role {
- export class HasTarget {
+ module Action {
+ module Role {
+ /**
+ * @mixin
+ */
+ interface IHasTarget {
+ passTargetToNext?: boolean;
+
+ target?: any;
+
+ el?: typeof target;
}
}
- export class Click extends Action implements Role.HasTarget {
+ /**
+ * @class
+ */
+ interface Click extends IAction, Role.IHasTarget {
+ options?: any;
}
- export class Done extends Action {
+ /**
+ * @class
+ */
+ interface Done extends IAction {
+ delay?: number;
}
- export class DoubleClick extends Action implements Role.HasTarget {
+ /**
+ * @class
+ */
+ interface DoubleClick extends IAction, Role.IHasTarget {
+ options?: any;
}
- export class DoubleTap extends Action implements Role.HasTarget {
+ /**
+ * @class
+ */
+ interface DoubleTap extends IAction, Role.IHasTarget {
}
- export class Drag extends Action {
+ /**
+ * @class
+ */
+ interface Drag extends IAction {
+ by?: any;
+
+ dragOnly?: boolean;
+
+ source?: any;
+
+ target?: any;
+
+ to?: any;
}
- export class Eval extends Action {
+ /**
+ * @class
+ */
+ interface Eval extends IAction {
+ options?: any;
}
- export class LongPress extends Action implements Role.HasTarget {
+ /**
+ * @class
+ */
+ interface LongPress extends IAction, Role.IHasTarget {
}
- export class MouseDown extends Action implements Role.HasTarget {
+ /**
+ * @class
+ */
+ interface MouseDown extends IAction, Role.IHasTarget {
+ options?: any;
}
- export class MouseUp extends Action implements Role.HasTarget {
+ /**
+ * @class
+ */
+ interface MouseUp extends IAction, Role.IHasTarget {
+ options?: any;
}
- export class MoveCursor extends Action implements Role.HasTarget {
+ /**
+ * @class
+ */
+ interface MoveCursor extends IAction, Role.IHasTarget {
+ by?: any;
+
+ to?: any;
}
- export class MoveCursorTo extends Action implements Role.HasTarget {
+ /**
+ * @class
+ */
+ interface MoveCursorTo extends IAction, Role.IHasTarget {
}
- export class RightClick extends Action implements Role.HasTarget {
+ /**
+ * @class
+ */
+ interface RightClick extends IAction, Role.IHasTarget {
+ options?: any;
}
- export class Swipe extends Action implements Role.HasTarget {
+ /**
+ * @class
+ */
+ interface Swipe extends IAction, Role.IHasTarget {
+ direction?: string;
}
- export class Tap extends Action implements Role.HasTarget {
+ /**
+ * @class
+ */
+ interface Tap extends IAction, Role.IHasTarget {
+ options?: any;
+
+ text?: string;
}
- export class Type extends Action implements Role.HasTarget {
+ /**
+ * @class
+ */
+ interface Type extends IAction, Role.IHasTarget {
}
- export class Wait extends Action {
+ /**
+ * @class
+ */
+ interface Wait extends IAction {
+ args?: any[];
+
+ delay?: number;
+
+ timeout?: number;
+
+ waitFor?: string;
}
}
- export class BDD {
+ /**
+ * @mixin
+ */
+ interface IBDD {
+ any(clsConstructor: Function): any;
+
+ ddescribe(name: string, code: Function, timeout?: number);
+
+ describe(name: string, code: Function, timeout?: number);
+
+ expect(value: any): BDD.Expectation;
+
+ iit(name: string, code: Function, timeout?: number);
+
+ it(name: string, code: Function, timeout?: number);
+
+ xdescribe(name: string, code: Function, timeout?: number);
+
+ xit(name: string, code: Function, timeout?: number);
}
- export module BDD {
- export class Expectation {
+ module BDD {
+ /**
+ @class
+ */
+ interface Expectation {
}
}
- export class ExtJS extends Browser implements ExtJS.Ajax, ExtJS.Component, ExtJS.DataView, ExtJS.Element, ExtJS.FormField, ExtJS.Grid, ExtJS.Observable, ExtJS.Store, ExtJSCore {
+ /**
+ * @mixin
+ */
+ interface IExtJSAjax {
}
- export module ExtJS {
- export class Ajax {
+ /**
+ * @mixin
+ */
+ interface IExtJSComponent {
+ }
+
+ /**
+ * @mixin
+ */
+ interface IExtJSDataView {
+ }
+
+ /**
+ * @mixin
+ */
+ interface IExtJSElement {
+ }
+
+ /**
+ * @mixin
+ */
+ interface IExtJSFormField {
+ }
+
+ /**
+ * @mixin
+ */
+ interface IExtJSGrid {
+ }
+
+ /**
+ * @mixin
+ */
+ interface IExtJSObservable {
+ }
+
+ /**
+ * @mixin
+ */
+ interface IExtJSStore {
+ }
+
+ /**
+ * @class
+ */
+ interface ExtJS extends Browser, IExtJSAjax, IExtJSComponent, IExtJSDataView, IExtJSElement, IExtJSFormField, IExtJSGrid, IExtJSObservable, IExtJSStore, IExtJSCore {
+ }
+
+ module Simulate {
+ /**
+ * @mixin
+ */
+ interface IEvent {
+ simulateEventsWith: string;
+
+ simulateEvent(el: any, type: string, the?: any, suppressLog?: boolean): void;
}
- export class Component {
+ /**
+ * @mixin
+ */
+ interface IKeyboard {
}
- export class DataView {
+ module KeyCodes {
}
- export class Element {
- }
-
- export class FormField {
- }
-
- export class Grid {
- }
-
- export class Observable {
- }
-
- export class Store {
+ /**
+ * @mixin
+ */
+ interface IMouse {
}
}
- export module Simulate {
- export class Event {
- }
-
- export class Keyboard {
- }
-
- export module KeyCodes {
- }
-
- export class Mouse {
- }
+ /**
+ * @class
+ */
+ interface Browser extends Simulate.IEvent, Simulate.IKeyboard, Simulate.IMouse, IElement, ITextSelection {
}
- export class ActionTarget {
+ /**
+ * @mixin
+ */
+ interface IDate {
}
- export class Browser implements Simulate.Event, Simulate.Keyboard, Simulate.Mouse, TextSelection {
+ /**
+ * @mixin
+ */
+ interface IElement {
}
- export class Date {
+ /**
+ * @mixin
+ */
+ interface IExtJSCore {
}
- export class Element {
+ /**
+ * @mixin
+ */
+ interface IFunction {
}
- export class ExtJSCore {
+ /**
+ * @class
+ */
+ interface jQuery extends Browser {
}
- export class Function {
+ /**
+ * @mixin
+ */
+ interface IMore {
}
- export class jQuery extends Browser {
+ /**
+ * @class
+ */
+ interface SenchaTouch extends Browser, IExtJSComponent, IExtJSElement, IExtJSFormField, IExtJSObservable, IExtJSStore, IExtJSCore {
}
- export class More {
- }
-
- export class SenchaTouch extends Browser implements ExtJS.Component, ExtJS.Element, ExtJS.FormField, ExtJS.Observable, ExtJS.Store, ExtJSCore {
- }
-
- export class TextSelection {
+ /**
+ * @mixin
+ */
+ interface ITextSelection {
}
}
-}
\ No newline at end of file
+
+ //#endregion
+
+}
+
+declare function StartTest(testScript: (t: Siesta.ITest) => void): void;
+
+declare var startTest: typeof StartTest;
+
+declare var describe: typeof StartTest;