UNPKG

@gullerya/just-test

Version:

JavaScript multiplatform tests runner

50 lines (44 loc) 1.65 kB
/** * Service to provide interactive environment, that is: * - not opening browsers * - not being shut down automatically * * @param {Object} envConfig environment configuration * @param {boolean} envConfig.interactive in this context expected always to equal true */ import { ENVIRONMENT_KEYS } from '../../../runner/environment-config.js'; import Logger from '../../logger/logger.js'; import { config as serverConfig } from '../../server-service.js'; import { EnvironmentBase } from '../environment-base.js'; export default launch; const logger = new Logger({ context: 'interactive env service' }); class InteractiveEnvImpl extends EnvironmentBase { constructor(sessionId, envConfig) { super(sessionId); this.envConfig = envConfig; } async launch() { logger.info(`interactive environment for session '${this.sessionId}' launched`); logger.info(`open your browser and navigate to ${serverConfig.origin}` + `?${ENVIRONMENT_KEYS.SESSION_ID}=${this.sessionId}` + `&${ENVIRONMENT_KEYS.ENVIRONMENT_ID}=${this.envConfig.id} URL`); return Promise.resolve(); } async dismiss() { logger.info(`please close your browser/tab, environment '${this.envConfig.id}' is not longer alive`); return Promise.resolve(); } } /** * 'launches' interactive browsing environment * - won't actually do anything beside logging what use should do * * @param {string} sessionId * @param {object} envConfig * @returns environment */ async function launch(sessionId, envConfig) { const result = new InteractiveEnvImpl(sessionId, envConfig); await result.launch(); return result; }