dockest
Version:
Dockest is an integration testing tool aimed at alleviating the process of evaluating unit tests whilst running multi-container Docker applications.
30 lines • 1.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createContainerDieCheck = void 0;
const rxjs_1 = require("rxjs");
const operators_1 = require("rxjs/operators");
const createContainerDieCheck = ({ runner }) => {
const { dockerEventStream$ } = runner;
const stop$ = new rxjs_1.Subject();
const cancel$ = new rxjs_1.Subject();
const info$ = (0, rxjs_1.interval)(1000).pipe((0, operators_1.takeUntil)(stop$), (0, operators_1.tap)(() => {
runner.logger.info('Container is still running...');
}));
const containerDies$ = dockerEventStream$.pipe((0, operators_1.takeUntil)(stop$), (0, operators_1.first)((event) => event.action === 'die'));
return {
service: runner.serviceName,
done: (0, rxjs_1.race)(containerDies$, info$, cancel$)
.pipe((0, operators_1.tap)({
next: () => {
stop$.next();
stop$.complete();
},
}), (0, operators_1.mapTo)(undefined))
.toPromise(),
cancel: () => {
cancel$.complete();
},
};
};
exports.createContainerDieCheck = createContainerDieCheck;
//# sourceMappingURL=create-container-die-check.js.map