dockest
Version:
Dockest is an integration testing tool aimed at alleviating the process of evaluating unit tests whilst running multi-container Docker applications.
36 lines • 1.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.transformDockestServicesToRunners = void 0;
const create_docker_service_event_stream_1 = require("./create-docker-service-event-stream");
const errors_1 = require("../../errors");
const logger_1 = require("../../logger");
const transformDockestServicesToRunners = ({ dockerComposeFile, dockestServices, runMode, dockerEventEmitter, }) => {
const createRunner = (dockestService) => {
const { commands = [], dependsOn = [], readinessCheck = () => Promise.resolve(), serviceName } = dockestService;
const dockerComposeFileService = dockerComposeFile.services[serviceName];
if (!dockerComposeFileService) {
throw new errors_1.ConfigurationError(`Unable to find compose service "${serviceName}", make sure that the serviceName corresponds with your Compose File's service`);
}
const runner = {
commands,
containerId: '',
dependsOn: dependsOn.map(createRunner),
dockerComposeFileService,
dockerEventStream$: (0, create_docker_service_event_stream_1.createDockerServiceEventStream)(serviceName, dockerEventEmitter),
logger: new logger_1.Logger(serviceName),
readinessCheck,
serviceName,
};
if (runMode === 'docker-injected-host-socket') {
runner.host = serviceName;
runner.isBridgeNetworkMode = true;
}
return runner;
};
return dockestServices.reduce((acc, dockestService) => {
acc[dockestService.serviceName] = createRunner(dockestService);
return acc;
}, {});
};
exports.transformDockestServicesToRunners = transformDockestServicesToRunners;
//# sourceMappingURL=transform-dockest-services-to-runners.js.map