ngx-testing-tools
Version:
Makes Angular testing easier
35 lines • 4.52 kB
JavaScript
import { buildJasmineCallback } from '../common/jasmine/jasmine-callback';
import { mergeBaseFactory } from '../common/test-beds/base/merge-base-factory';
import { PipeTestBedFactory } from './pipe-test-bed-factory';
/**
* Creates a new `PipeTestBed` to configure the custom test bed and wrap the assertion test.
* @param rootPipe - The described Pipe.
* @param options
*/
export function pipeTestBed(rootPipe, options = {}) {
const factory = new PipeTestBedFactory(rootPipe, options);
const tb = ((assertion) => {
return buildJasmineCallback({
callback: assertion,
deferredTools: factory['deferredTools'],
postTest: (tools) => {
tools.rx['cleanAll']();
},
});
});
return mergeBaseFactory(factory, tb);
}
/**
* Only invokes the "should create" test.
*
* To be used when there are no noticeable or relevant tests to be performed on this pipe.
*
* The usage of this function and `pipeTestBed` function must be mutually exclusive.
*
* @param rootPipe - The described Pipe.
* @param options
*/
export function itShouldCreatePipe(rootPipe, options) {
pipeTestBed(rootPipe, options);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS10ZXN0LWJlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZXN0aW5nLXRvb2xzL3NyYy9saWIvcGlwZS10ZXN0LWJlZC9waXBlLXRlc3QtYmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRS9FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUEwQixRQUFpQixFQUFFLFVBQThCLEVBQUU7SUFDdEcsTUFBTSxPQUFPLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFMUQsTUFBTSxFQUFFLEdBQW1CLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtRQUN4QyxPQUFPLG9CQUFvQixDQUFDO1lBQzFCLFFBQVEsRUFBRSxTQUFTO1lBQ25CLGFBQWEsRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDO1lBQ3ZDLFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNsQixLQUFLLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDekIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBbUIsQ0FBQztJQUVyQixPQUFPLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUEwQixRQUFpQixFQUFFLE9BQW1DO0lBQ2hILFdBQVcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGVUcmFuc2Zvcm0sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGJ1aWxkSmFzbWluZUNhbGxiYWNrIH0gZnJvbSAnLi4vY29tbW9uL2phc21pbmUvamFzbWluZS1jYWxsYmFjayc7XG5pbXBvcnQgeyBtZXJnZUJhc2VGYWN0b3J5IH0gZnJvbSAnLi4vY29tbW9uL3Rlc3QtYmVkcy9iYXNlL21lcmdlLWJhc2UtZmFjdG9yeSc7XG5pbXBvcnQgeyBQaXBlVGVzdEJlZCwgUGlwZVRlc3RCZWRPcHRpb25zIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgUGlwZVRlc3RCZWRGYWN0b3J5IH0gZnJvbSAnLi9waXBlLXRlc3QtYmVkLWZhY3RvcnknO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgYFBpcGVUZXN0QmVkYCB0byBjb25maWd1cmUgdGhlIGN1c3RvbSB0ZXN0IGJlZCBhbmQgd3JhcCB0aGUgYXNzZXJ0aW9uIHRlc3QuXG4gKiBAcGFyYW0gcm9vdFBpcGUgLSBUaGUgZGVzY3JpYmVkIFBpcGUuXG4gKiBAcGFyYW0gb3B0aW9uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcGlwZVRlc3RCZWQ8VCBleHRlbmRzIFBpcGVUcmFuc2Zvcm0+KHJvb3RQaXBlOiBUeXBlPFQ+LCBvcHRpb25zOiBQaXBlVGVzdEJlZE9wdGlvbnMgPSB7fSk6IFBpcGVUZXN0QmVkPFQ+IHtcbiAgY29uc3QgZmFjdG9yeSA9IG5ldyBQaXBlVGVzdEJlZEZhY3Rvcnkocm9vdFBpcGUsIG9wdGlvbnMpO1xuXG4gIGNvbnN0IHRiOiBQaXBlVGVzdEJlZDxUPiA9ICgoYXNzZXJ0aW9uKSA9PiB7XG4gICAgcmV0dXJuIGJ1aWxkSmFzbWluZUNhbGxiYWNrKHtcbiAgICAgIGNhbGxiYWNrOiBhc3NlcnRpb24sXG4gICAgICBkZWZlcnJlZFRvb2xzOiBmYWN0b3J5WydkZWZlcnJlZFRvb2xzJ10sXG4gICAgICBwb3N0VGVzdDogKHRvb2xzKSA9PiB7XG4gICAgICAgIHRvb2xzLnJ4WydjbGVhbkFsbCddKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9KSBhcyBQaXBlVGVzdEJlZDxUPjtcblxuICByZXR1cm4gbWVyZ2VCYXNlRmFjdG9yeShmYWN0b3J5LCB0Yik7XG59XG5cbi8qKlxuICogT25seSBpbnZva2VzIHRoZSBcInNob3VsZCBjcmVhdGVcIiB0ZXN0LlxuICpcbiAqIFRvIGJlIHVzZWQgd2hlbiB0aGVyZSBhcmUgbm8gbm90aWNlYWJsZSBvciByZWxldmFudCB0ZXN0cyB0byBiZSBwZXJmb3JtZWQgb24gdGhpcyBwaXBlLlxuICpcbiAqIFRoZSB1c2FnZSBvZiB0aGlzIGZ1bmN0aW9uIGFuZCBgcGlwZVRlc3RCZWRgIGZ1bmN0aW9uIG11c3QgYmUgbXV0dWFsbHkgZXhjbHVzaXZlLlxuICpcbiAqIEBwYXJhbSByb290UGlwZSAtIFRoZSBkZXNjcmliZWQgUGlwZS5cbiAqIEBwYXJhbSBvcHRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpdFNob3VsZENyZWF0ZVBpcGU8VCBleHRlbmRzIFBpcGVUcmFuc2Zvcm0+KHJvb3RQaXBlOiBUeXBlPFQ+LCBvcHRpb25zPzogSXRTaG91bGRDcmVhdGVQaXBlT3B0aW9ucyk6IHZvaWQge1xuICBwaXBlVGVzdEJlZChyb290UGlwZSwgb3B0aW9ucyk7XG59XG5cbnR5cGUgSXRTaG91bGRDcmVhdGVQaXBlT3B0aW9ucyA9IFBpY2s8UGlwZVRlc3RCZWRPcHRpb25zLFxuICB8ICdwcm92aWRlcnMnXG4gIHwgJ2ltcG9ydHMnXG4+XG4iXX0=