From 7ae65ed402f10cb19437d7b754d01e8f99066d25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nils=20Norman=20Hauk=C3=A5s?= Date: Fri, 13 Nov 2015 21:45:46 +0100 Subject: [PATCH] Added mocha dependency for testing. --- package.json | 3 + src/services/selectedWord.service.ts | 74 ++++----- tsd.json | 3 + typings/mocha/mocha.d.ts | 236 +++++++++++++++++++++++++++ typings/tsd.d.ts | 1 + 5 files changed, 280 insertions(+), 37 deletions(-) create mode 100644 typings/mocha/mocha.d.ts diff --git a/package.json b/package.json index 4db473c..e01c0e1 100644 --- a/package.json +++ b/package.json @@ -39,5 +39,8 @@ "lodash": "^3.10.1", "merge2": "^0.3.6", "requirejs": "^2.1.20" + }, + "devDependencies": { + "mocha": "^2.3.3" } } diff --git a/src/services/selectedWord.service.ts b/src/services/selectedWord.service.ts index 9258d5c..ac35ad1 100644 --- a/src/services/selectedWord.service.ts +++ b/src/services/selectedWord.service.ts @@ -40,42 +40,42 @@ export class SelectedWordService { } } - // place spans around a tagged word. - addTagToPage (sense : ISense) { - var windowSelection = window.getSelection(); - var range = this.currentSelectionRange; - var span : HTMLSpanElement = document.createElement('span'); - span.id = sense.senseid; - span.title = sense.explanation; - span.className = 'tagit-tag'; - range.surroundContents(span); - windowSelection.removeAllRanges(); - // windowSelection.addRange(range); - this.$log.debug('addTagToPage'); - } + // place spans around a tagged word. + addTagToPage (sense : ISense) { + var windowSelection = window.getSelection(); + var range = this.currentSelectionRange; + var span : HTMLSpanElement = document.createElement('span'); + span.id = sense.senseid; + span.title = sense.explanation; + span.className = 'tagit-tag'; + range.surroundContents(span); + windowSelection.removeAllRanges(); + // windowSelection.addRange(range); + this.$log.debug('addTagToPage'); + } - private findSelection () { - var focused : any = document.activeElement; - var selectedText : string; - // try grabbing text from an input or textarea field - // commenting this until we need to figure out tagging of editable fields - // if (focused) { - // try { - // selectedText = focused.value.substring( - // focused.selectionStart, focused.selectionEnd); - // } catch (err) { - // } - // } - // if previous method did not work ask window for selection - if (selectedText == undefined) { - var currentSelection : Selection = window.getSelection(); - var selectedText = currentSelection.toString(); - } - if (selectedText) { - this.$log.debug('text that was selected: ' + selectedText); - return currentSelection; - } else { - return; - } - } + private findSelection () { + var focused : any = document.activeElement; + var selectedText : string; + // try grabbing text from an input or textarea field + // commenting this until we need to figure out tagging of editable fields + // if (focused) { + // try { + // selectedText = focused.value.substring( + // focused.selectionStart, focused.selectionEnd); + // } catch (err) { + // } + // } + // if previous method did not work ask window for selection + if (selectedText == undefined) { + var currentSelection : Selection = window.getSelection(); + var selectedText = currentSelection.toString(); + } + if (selectedText) { + this.$log.debug('text that was selected: ' + selectedText); + return currentSelection; + } else { + return; + } + } } diff --git a/tsd.json b/tsd.json index 211fbc2..e81a2c5 100644 --- a/tsd.json +++ b/tsd.json @@ -25,6 +25,9 @@ }, "chrome/chrome.d.ts": { "commit": "3191f6e0088eee07c4d8fd24e4d27a40a60d9eb9" + }, + "mocha/mocha.d.ts": { + "commit": "efd40e67ff323f7147651bdbef03c03ead7b1675" } } } diff --git a/typings/mocha/mocha.d.ts b/typings/mocha/mocha.d.ts new file mode 100644 index 0000000..1e09d7b --- /dev/null +++ b/typings/mocha/mocha.d.ts @@ -0,0 +1,236 @@ +// Type definitions for mocha 2.2.5 +// Project: http://mochajs.org/ +// Definitions by: Kazi Manzur Rashid , otiai10 , jt000 , Vadim Macagon +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +interface MochaSetupOptions { + //milliseconds to wait before considering a test slow + slow?: number; + + // timeout in milliseconds + timeout?: number; + + // ui name "bdd", "tdd", "exports" etc + ui?: string; + + //array of accepted globals + globals?: any[]; + + // reporter instance (function or string), defaults to `mocha.reporters.Spec` + reporter?: any; + + // bail on the first test failure + bail?: boolean; + + // ignore global leaks + ignoreLeaks?: boolean; + + // grep string or regexp to filter tests with + grep?: any; +} + +interface MochaDone { + (error?: Error): void; +} + +declare var mocha: Mocha; +declare var describe: Mocha.IContextDefinition; +declare var xdescribe: Mocha.IContextDefinition; +// alias for `describe` +declare var context: Mocha.IContextDefinition; +// alias for `describe` +declare var suite: Mocha.IContextDefinition; +declare var it: Mocha.ITestDefinition; +declare var xit: Mocha.ITestDefinition; +// alias for `it` +declare var test: Mocha.ITestDefinition; + +declare function before(action: () => void): void; + +declare function before(action: (done: MochaDone) => void): void; + +declare function before(description: string, action: () => void): void; + +declare function before(description: string, action: (done: MochaDone) => void): void; + +declare function setup(action: () => void): void; + +declare function setup(action: (done: MochaDone) => void): void; + +declare function after(action: () => void): void; + +declare function after(action: (done: MochaDone) => void): void; + +declare function after(description: string, action: () => void): void; + +declare function after(description: string, action: (done: MochaDone) => void): void; + +declare function teardown(action: () => void): void; + +declare function teardown(action: (done: MochaDone) => void): void; + +declare function beforeEach(action: () => void): void; + +declare function beforeEach(action: (done: MochaDone) => void): void; + +declare function beforeEach(description: string, action: () => void): void; + +declare function beforeEach(description: string, action: (done: MochaDone) => void): void; + +declare function suiteSetup(action: () => void): void; + +declare function suiteSetup(action: (done: MochaDone) => void): void; + +declare function afterEach(action: () => void): void; + +declare function afterEach(action: (done: MochaDone) => void): void; + +declare function afterEach(description: string, action: () => void): void; + +declare function afterEach(description: string, action: (done: MochaDone) => void): void; + +declare function suiteTeardown(action: () => void): void; + +declare function suiteTeardown(action: (done: MochaDone) => void): void; + +declare class Mocha { + constructor(options?: { + grep?: RegExp; + ui?: string; + reporter?: string; + timeout?: number; + bail?: boolean; + }); + + /** Setup mocha with the given options. */ + setup(options: MochaSetupOptions): Mocha; + bail(value?: boolean): Mocha; + addFile(file: string): Mocha; + /** Sets reporter by name, defaults to "spec". */ + reporter(name: string): Mocha; + /** Sets reporter constructor, defaults to mocha.reporters.Spec. */ + reporter(reporter: (runner: Mocha.IRunner, options: any) => any): Mocha; + ui(value: string): Mocha; + grep(value: string): Mocha; + grep(value: RegExp): Mocha; + invert(): Mocha; + ignoreLeaks(value: boolean): Mocha; + checkLeaks(): Mocha; + /** + * Function to allow assertion libraries to throw errors directly into mocha. + * This is useful when running tests in a browser because window.onerror will + * only receive the 'message' attribute of the Error. + */ + throwError(error: Error): void; + /** Enables growl support. */ + growl(): Mocha; + globals(value: string): Mocha; + globals(values: string[]): Mocha; + useColors(value: boolean): Mocha; + useInlineDiffs(value: boolean): Mocha; + timeout(value: number): Mocha; + slow(value: number): Mocha; + enableTimeouts(value: boolean): Mocha; + asyncOnly(value: boolean): Mocha; + noHighlighting(value: boolean): Mocha; + /** Runs tests and invokes `onComplete()` when finished. */ + run(onComplete?: (failures: number) => void): Mocha.IRunner; +} + +// merge the Mocha class declaration with a module +declare module Mocha { + /** Partial interface for Mocha's `Runnable` class. */ + interface IRunnable { + title: string; + fn: Function; + async: boolean; + sync: boolean; + timedOut: boolean; + } + + /** Partial interface for Mocha's `Suite` class. */ + interface ISuite { + parent: ISuite; + title: string; + + fullTitle(): string; + } + + /** Partial interface for Mocha's `Test` class. */ + interface ITest extends IRunnable { + parent: ISuite; + pending: boolean; + + fullTitle(): string; + } + + /** Partial interface for Mocha's `Runner` class. */ + interface IRunner {} + + interface IContextDefinition { + (description: string, spec: () => void): ISuite; + only(description: string, spec: () => void): ISuite; + skip(description: string, spec: () => void): void; + timeout(ms: number): void; + } + + interface ITestDefinition { + (expectation: string, assertion?: () => void): ITest; + (expectation: string, assertion?: (done: MochaDone) => void): ITest; + only(expectation: string, assertion?: () => void): ITest; + only(expectation: string, assertion?: (done: MochaDone) => void): ITest; + skip(expectation: string, assertion?: () => void): void; + skip(expectation: string, assertion?: (done: MochaDone) => void): void; + timeout(ms: number): void; + } + + export module reporters { + export class Base { + stats: { + suites: number; + tests: number; + passes: number; + pending: number; + failures: number; + }; + + constructor(runner: IRunner); + } + + export class Doc extends Base {} + export class Dot extends Base {} + export class HTML extends Base {} + export class HTMLCov extends Base {} + export class JSON extends Base {} + export class JSONCov extends Base {} + export class JSONStream extends Base {} + export class Landing extends Base {} + export class List extends Base {} + export class Markdown extends Base {} + export class Min extends Base {} + export class Nyan extends Base {} + export class Progress extends Base { + /** + * @param options.open String used to indicate the start of the progress bar. + * @param options.complete String used to indicate a complete test on the progress bar. + * @param options.incomplete String used to indicate an incomplete test on the progress bar. + * @param options.close String used to indicate the end of the progress bar. + */ + constructor(runner: IRunner, options?: { + open?: string; + complete?: string; + incomplete?: string; + close?: string; + }); + } + export class Spec extends Base {} + export class TAP extends Base {} + export class XUnit extends Base { + constructor(runner: IRunner, options?: any); + } + } +} + +declare module "mocha" { + export = Mocha; +} diff --git a/typings/tsd.d.ts b/typings/tsd.d.ts index ec65be8..fbf14a9 100644 --- a/typings/tsd.d.ts +++ b/typings/tsd.d.ts @@ -6,3 +6,4 @@ /// /// /// +///