UNPKG

@tsdi/unit

Version:

unit testing framework, base on AOP, Ioc container

135 lines (133 loc) 4.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AfterEach = exports.After = exports.AfterAll = exports.BeforeEach = exports.Before = exports.BeforeAll = exports.Test = exports.createTestDecorator = exports.Suite = exports.createSuiteDecorator = void 0; var tslib_1 = require("tslib"); var ioc_1 = require("@tsdi/ioc"); /** * create filed decorator. * * @export * @template T * @param {string} [SuiteType] * @param {ArgsIteratorAction<T>[]} [actions] * @param {MetadataExtends<T>} [metaExtends] * @returns {IFiledDecorator<T>} */ function createSuiteDecorator(actions, metaExtends) { return ioc_1.createClassDecorator('Suite', tslib_1.__spreadArrays((actions || []), [ function (ctx, next) { var arg = ctx.currArg; if (ioc_1.isString(arg)) { ctx.metadata.describe = arg; ctx.next(next); } }, function (ctx, next) { var arg = ctx.currArg; if (ioc_1.isNumber(arg)) { ctx.metadata.timeout = arg; ctx.next(next); } } ]), function (metadata) { if (metaExtends) { metaExtends(metadata); } metadata.singleton = true; return metadata; }); } exports.createSuiteDecorator = createSuiteDecorator; exports.Suite = createSuiteDecorator(); /** * create Test decorator. * * @export * @template T * @param {string} [TestType] * @param {MetadataAdapter} [actions] * @param {MetadataExtends<T>} [metaExtends] * @returns {ITestDecorator<T>} */ function createTestDecorator(name, actions, finallyActions, metaExtends) { return ioc_1.createMethodDecorator(name, tslib_1.__spreadArrays((actions ? (ioc_1.isArray(actions) ? actions : [actions]) : []), [ function (ctx, next) { var arg = ctx.currArg; if (ioc_1.isNumber(arg)) { ctx.metadata.timeout = arg; ctx.next(next); } } ], (finallyActions ? (ioc_1.isArray(finallyActions) ? finallyActions : [finallyActions]) : [])), metaExtends); } exports.createTestDecorator = createTestDecorator; /** * @Test decorator. define the method of class as unit test case. Describe a specification or test-case with the given `title` and callback `fn` acting * as a thunk. * * @export * @interface ITestDecorator * @template T */ exports.Test = createTestDecorator('TestCase', function (ctx, next) { var arg = ctx.currArg; if (ioc_1.isString(arg)) { ctx.metadata.title = arg; ctx.next(next); } }, function (ctx, next) { var arg = ctx.currArg; if (ioc_1.isNumber(arg)) { ctx.metadata.setp = arg; ctx.next(next); } }); /** * @BeforeAll decorator. define the method of class as unit test action run before all test case. * * @export * @interface IBeforeTestDecorator * @template T */ exports.BeforeAll = createTestDecorator('BeforeAll'); /** * @BeforeAll decorator. define the method of class as unit test action run before all test case. * * @export * @interface IBeforeTestDecorator * @template T */ exports.Before = exports.BeforeAll; /** * @BeforeEach decorator. define the method of class as unit test action run before each test case. * * @export * @interface IBeforeEachTestDecorator * @template T */ exports.BeforeEach = createTestDecorator('TestBeforeEach'); /** * @AfterAll decorator. define the method of class as unit test action run after all test case. * * @export * @interface IAfterTestDecorator * @template T */ exports.AfterAll = createTestDecorator('AfterAll'); /** * @AfterAll decorator. define the method of class as unit test action run after all test case. * * @export * @interface IAfterTestDecorator * @template T */ exports.After = exports.AfterAll; /** * @AfterEach decorator. define the method of class as unit test action run after each test case. * * @export * @interface IAfterEachTestDecorator * @template T */ exports.AfterEach = createTestDecorator('TestAfterEach'); //# sourceMappingURL=sourcemaps/decorators.js.map