Skip to content

Commit

Permalink
Fixing types and creating describeStruct
Browse files Browse the repository at this point in the history
  • Loading branch information
Farenheith committed Dec 14, 2019
1 parent 37f5123 commit 380c78d
Show file tree
Hide file tree
Showing 11 changed files with 141 additions and 71 deletions.
2 changes: 1 addition & 1 deletion build/index.d.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
export { method } from './strict-describers';
export { describeClass } from './strict-describe-class';
export { describeClass, describeStaticClass, describeSruct } from './strict-describe-class';
2 changes: 2 additions & 0 deletions build/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion build/index.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 14 additions & 8 deletions build/strict-describe-class.d.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { ClassOf } from './strict-describers';
import { MethodSuite, StaticMethodSuite } from './strict-describe-method';
export declare function mountClassDescribe<Target>(cls: ClassOf<Target>, bootStrap: () => Target, fn: (describe: MethodSuite<Target>) => void, suite: (description: string, fn: () => void) => void): void;
export declare function mountStaticClassDescribe<Target>(cls: ClassOf<Target>, fn: (describe: StaticMethodSuite<Target>) => void, suite: (description: string, fn: () => void) => void): void;
export declare function mountClassDescribe<Target, Class extends ClassOf<Target>>(cls: Class, bootStrap: () => Target, fn: (describe: MethodSuite<Target, Class>) => void, suite: (description: string, fn: () => void) => void): void;
export declare function mountSructDescribe<Target>(cls: Target, description: string, fn: (describe: StaticMethodSuite<Target>) => void, suite: (description: string, fn: () => void) => void): void;
export declare function mountStaticClassDescribe<Target, Class extends ClassOf<Target>>(cls: Class, fn: (describe: StaticMethodSuite<Class>) => void, suite: (description: string, fn: () => void) => void): void;
/**
* A describer to create a Test Suite for a single class.
* Using this describer is way to enforce a strict organization in the unit test,
Expand All @@ -20,13 +21,18 @@ export declare function mountStaticClassDescribe<Target>(cls: ClassOf<Target>, f
* will throw an error. This behavior helps to eliminate scope invasion during the tests, and you're assured that no other code
* other than the method being tested will run.
*/
export declare function describeClass<Target>(cls: ClassOf<Target>, bootStrapper: () => Target, fn: (describe: MethodSuite<Target>) => void): void;
export declare function describeClass<Target, Class extends ClassOf<Target>>(cls: Class, bootStrapper: () => Target, fn: (describe: MethodSuite<Target, Class>) => void): void;
export declare namespace describeClass {
function only<Target>(cls: ClassOf<Target>, bootStrapper: () => Target, fn: (describe: MethodSuite<Target>) => void): void;
function skip<Target>(cls: ClassOf<Target>, bootStrapper: () => Target, fn: (describe: MethodSuite<Target>) => void): void;
function only<Target, Class extends ClassOf<Target>>(cls: Class, bootStrapper: () => Target, fn: (describe: MethodSuite<Target, Class>) => void): void;
function skip<Target, Class extends ClassOf<Target>>(cls: Class, bootStrapper: () => Target, fn: (describe: MethodSuite<Target, Class>) => void): void;
}
export declare function describeStaticClass<Target>(cls: ClassOf<Target>, fn: (describe: StaticMethodSuite<Target>) => void): void;
export declare function describeStaticClass<Target, Class extends ClassOf<Target>>(cls: Class, fn: (describe: StaticMethodSuite<Class>) => void): void;
export declare namespace describeStaticClass {
function only<Target>(cls: ClassOf<Target>, fn: (describe: StaticMethodSuite<Target>) => void): void;
function skip<Target>(cls: ClassOf<Target>, fn: (describe: StaticMethodSuite<Target>) => void): void;
function only<Target, Class extends ClassOf<Target>>(cls: Class, fn: (describe: StaticMethodSuite<Class>) => void): void;
function skip<Target, Class extends ClassOf<Target>>(cls: Class, fn: (describe: StaticMethodSuite<Class>) => void): void;
}
export declare function describeSruct<Struct>(struct: Struct, description: string, fn: (describe: StaticMethodSuite<Struct>) => void): void;
export declare namespace describeSruct {
function only<Struct>(struct: Struct, description: string, fn: (describe: StaticMethodSuite<Struct>) => void): void;
function skip<Struct>(struct: Struct, description: string, fn: (describe: StaticMethodSuite<Struct>) => void): void;
}
21 changes: 21 additions & 0 deletions build/strict-describe-class.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion build/strict-describe-class.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

30 changes: 15 additions & 15 deletions build/strict-describe-method.d.ts
Original file line number Diff line number Diff line change
@@ -1,30 +1,30 @@
import { TestFunction } from "mocha";
import { ClassOf } from "./strict-describers";
import { MethodTestFunction } from "./strict-it";
export declare class StaticMethodDescribeHelper<Target> {
protected readonly cls: ClassOf<Target>;
constructor(cls: ClassOf<Target>);
createSingleStaticDescribe(suite: (title: string, fn: () => void) => void): (method: "prototype" | "name", fn: (it: TestFunction) => void) => void;
createStaticDescribe(): StaticMethodSuite<Target>;
export declare class StaticMethodDescribeHelper<Class> {
protected readonly cls: Class;
constructor(cls: Class);
createSingleStaticDescribe(suite: (title: string, fn: () => void) => void): (method: keyof Class, fn: (it: TestFunction) => void) => void;
createStaticDescribe(): StaticMethodSuite<Class>;
}
export declare class MethodDescribeHelper<Target> extends StaticMethodDescribeHelper<Target> {
export declare class MethodDescribeHelper<Target, Class extends ClassOf<Target>> extends StaticMethodDescribeHelper<Class> {
protected readonly bootstrap: () => Target;
constructor(bootstrap: () => Target, cls: ClassOf<Target>);
constructor(bootstrap: () => Target, cls: Class);
createMethodDescribe(suite: (title: string, fn: () => void) => void): (method: keyof Target, fn: (it: MethodTestFunction<Target>, getTarget: () => Target) => void) => void;
createDescribe(): MethodSuite<Target>;
createDescribe(): MethodSuite<Target, Class>;
}
export interface BaseMethodSuite<Target> {
(methodName: keyof Target, fn: (it: MethodTestFunction<Target>, getTarget: () => Target) => void): any;
}
export interface MethodSuite<Target> extends BaseMethodSuite<Target> {
export interface MethodSuite<Target, Class extends ClassOf<Target>> extends BaseMethodSuite<Target> {
only: BaseMethodSuite<Target>;
skip: BaseMethodSuite<Target>;
static: StaticMethodSuite<Target>;
static: StaticMethodSuite<Class>;
}
export interface BaseStaticMethodSuite<Target> {
(methodName: keyof ClassOf<Target>, fn: (it: TestFunction) => void): any;
export interface BaseStaticMethodSuite<Class> {
(methodName: keyof Class, fn: (it: TestFunction) => void): any;
}
export interface StaticMethodSuite<Target> extends BaseStaticMethodSuite<Target> {
only: BaseStaticMethodSuite<Target>;
skip: BaseStaticMethodSuite<Target>;
export interface StaticMethodSuite<Class> extends BaseStaticMethodSuite<Class> {
only: BaseStaticMethodSuite<Class>;
skip: BaseStaticMethodSuite<Class>;
}
2 changes: 1 addition & 1 deletion build/strict-describe-method.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion src/index.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
export { method } from './strict-describers';
export { describeClass } from './strict-describe-class';
export { describeClass, describeStaticClass, describeSruct } from './strict-describe-class';
Loading

0 comments on commit 380c78d

Please sign in to comment.