UNPKG

skutter

Version:

Skutter: Opinionated BDD Browser based test framework

328 lines (327 loc) 14.4 kB
"use strict"; const Lazy = require("lazy.js"); const feature_skipped_message_1 = require("../messages/feature-skipped-message"); const scenario_skipped_message_1 = require("../messages/scenario-skipped-message"); const step_started_message_1 = require("../messages/step-started-message"); const step_skipped_message_1 = require("../messages/step-skipped-message"); const process_finished_message_1 = require("../messages/process-finished-message"); const feature_started_message_1 = require("../messages/feature-started-message"); const scenario_started_message_1 = require("../messages/scenario-started-message"); const step_finished_message_1 = require("../messages/step-finished-message"); const sub_step_started_message_1 = require("../messages/sub-step-started-message"); const sub_step_finished_message_1 = require("../messages/sub-step-finished-message"); const result_types_1 = require("../result-aggregator/result-types"); const step_screenshotted_message_1 = require("../messages/step-screenshotted-message"); const scenario_finished_message_1 = require("../messages/scenario-finished-message"); const feature_finished_message_1 = require("../messages/feature-finished-message"); function CannotBeUndefined(propertyName) { throw Error(`ExecutionBroadcaster: Property ${propertyName} was not defined.`); } class ExecutionBroadcaster { constructor() { this.startedFeatures = []; this.startedScenarios = []; } featureSkipped(featureId = CannotBeUndefined("featureId")) { let promise = new Promise((resolve, reject) => { let payload = new feature_skipped_message_1.FeatureSkippedMessage(featureId); let result = process.send(payload, (sendError) => { if (sendError) { console.log(`Message sending failed ${sendError}`); reject(sendError); return; } resolve(); }); if (result) { resolve(); } }); return promise; } scenarioSkipped(featureId = CannotBeUndefined("featureId"), scenarioId = CannotBeUndefined("scenarioId")) { let promise = new Promise((resolve, reject) => { let payload = new scenario_skipped_message_1.ScenarioSkippedMessage(featureId, scenarioId); let result = process.send(payload, (sendError) => { if (sendError) { console.log(`Message sending failed ${sendError}`); reject(sendError); return; } resolve(); }); if (result) { resolve(); } }); return promise; } featureStarted(featureId = CannotBeUndefined("featureId")) { let promise = new Promise((resolve, reject) => { if (!Lazy(this.startedFeatures).contains(featureId)) { this.startedFeatures.push(featureId); let payload = new feature_started_message_1.FeatureStartedMessage(featureId); let result = process.send(payload, (sendError) => { if (sendError) { console.log(`Message sending failed ${sendError}`); reject(sendError); return; } resolve(); }); if (result) { resolve(); } } else { resolve(); } }); return promise; } featureFinished(featureId = CannotBeUndefined("featureId"), tearDownLog) { let promise = new Promise((resolve, reject) => { let payload = new feature_finished_message_1.FeatureFinishedMessage(featureId, tearDownLog); let result = process.send(payload, (sendError) => { if (sendError) { console.log(`Message sending failed ${sendError}`); reject(sendError); return; } resolve(); }); if (result) { resolve(); } }); return promise; } scenarioStarted(featureId = CannotBeUndefined("featureId"), scenarioId = CannotBeUndefined("scenarioId")) { let promise = new Promise((resolve, reject) => { if (!Lazy(this.startedScenarios).contains(scenarioId)) { this.startedScenarios.push(scenarioId); let payload = new scenario_started_message_1.ScenarioStartedMessage(featureId, scenarioId); let result = process.send(payload, (sendError) => { if (sendError) { console.log(`Message sending failed ${sendError}`); reject(sendError); return; } resolve(); }); if (result) { resolve(); } } else { resolve(); } }); return promise; } scenarioFinished(featureId = CannotBeUndefined("featureId"), scenarioId = CannotBeUndefined("scenarioId"), tearDownLog) { let promise = new Promise((resolve, reject) => { let payload = new scenario_finished_message_1.ScenarioFinishedMessage(featureId, scenarioId, tearDownLog); let result = process.send(payload, (sendError) => { if (sendError) { console.log(`Message sending failed ${sendError}`); reject(sendError); return; } resolve(); }); if (result) { resolve(); } }); return promise; } stepStarted(featureId = CannotBeUndefined("featureId"), scenarioId = CannotBeUndefined("scenarioId"), stepId = CannotBeUndefined("stepId")) { let promise = new Promise((resolve, reject) => { let payload = new step_started_message_1.StepStartedMessage(featureId, scenarioId, stepId); let result = process.send(payload, (sendError) => { if (sendError) { console.log(`Message sending failed ${sendError}`); reject(sendError); return; } resolve(); }); if (result) { resolve(); } }); return promise; } subStepStarted(featureId = CannotBeUndefined("featureId"), scenarioId = CannotBeUndefined("scenarioId"), ancestorStepId = CannotBeUndefined("ancestorStepId"), parentStepId = CannotBeUndefined("parentStepId"), stepId = CannotBeUndefined("stepId"), title = CannotBeUndefined("title"), depth = CannotBeUndefined("depth")) { let promise = new Promise((resolve, reject) => { let payload = new sub_step_started_message_1.SubStepStartedMessage(featureId, scenarioId, ancestorStepId, parentStepId, stepId, title, depth); let result = process.send(payload, (sendError) => { if (sendError) { console.log(`Message sending failed ${sendError}`); reject(sendError); return; } resolve(); }); if (result) { resolve(); } }); return promise; } subStepFail(featureId = CannotBeUndefined("featureId"), scenarioId = CannotBeUndefined("scenarioId"), stepId = CannotBeUndefined("stepId"), stepLog, failureReason) { let promise = new Promise((resolve, reject) => { let payload = new sub_step_finished_message_1.SubStepFinishedMessage(featureId, scenarioId, stepId, result_types_1.ResultTypes.Failed, stepLog, failureReason); let result = process.send(payload, (sendError) => { if (sendError) { console.log(`Message sending failed ${sendError}`); reject(sendError); return; } resolve(); }); if (result) { resolve(); } }); return promise; } subStepError(featureId = CannotBeUndefined("featureId"), scenarioId = CannotBeUndefined("scenarioId"), stepId = CannotBeUndefined("stepId"), stepLog, errorReason) { let promise = new Promise((resolve, reject) => { let payload = new sub_step_finished_message_1.SubStepFinishedMessage(featureId, scenarioId, stepId, result_types_1.ResultTypes.Errored, stepLog, errorReason); let result = process.send(payload, (sendError) => { if (sendError) { console.log(`Message sending failed ${sendError}`); reject(sendError); return; } resolve(); }); if (result) { resolve(); } }); return promise; } subStepPass(featureId = CannotBeUndefined("featureId"), scenarioId = CannotBeUndefined("scenarioId"), stepId = CannotBeUndefined("stepId"), stepLog) { let promise = new Promise((resolve, reject) => { let payload = new sub_step_finished_message_1.SubStepFinishedMessage(featureId, scenarioId, stepId, result_types_1.ResultTypes.Passed, stepLog); let result = process.send(payload, (sendError) => { if (sendError) { console.log(`Message sending failed ${sendError}`); reject(sendError); return; } resolve(); }); if (result) { resolve(); } }); return promise; } stepFail(featureId = CannotBeUndefined("featureId"), scenarioId = CannotBeUndefined("scenarioId"), stepId = CannotBeUndefined("stepId"), stepLog, failureReason) { let promise = new Promise((resolve, reject) => { let payload = new step_finished_message_1.StepFinishedMessage(featureId, scenarioId, stepId, result_types_1.ResultTypes.Failed, stepLog, failureReason); let result = process.send(payload, (sendError) => { if (sendError) { console.log(`Message sending failed ${sendError}`); reject(sendError); return; } resolve(); }); if (result) { resolve(); } }); return promise; } stepError(featureId = CannotBeUndefined("featureId"), scenarioId = CannotBeUndefined("scenarioId"), stepId = CannotBeUndefined("stepId"), stepLog, error) { let promise = new Promise((resolve, reject) => { let payload = new step_finished_message_1.StepFinishedMessage(featureId, scenarioId, stepId, result_types_1.ResultTypes.Errored, stepLog, error); let result = process.send(payload, (sendError) => { if (sendError) { console.log(`Message sending failed ${sendError}`); reject(sendError); return; } resolve(); }); if (result) { resolve(); } }); return promise; } stepPass(featureId = CannotBeUndefined("featureId"), scenarioId = CannotBeUndefined("scenarioId"), stepId = CannotBeUndefined("stepId"), stepLog) { let promise = new Promise((resolve, reject) => { let payload = new step_finished_message_1.StepFinishedMessage(featureId, scenarioId, stepId, result_types_1.ResultTypes.Passed, stepLog); let result = process.send(payload, (sendError) => { if (sendError) { console.log(`Message sending failed ${sendError}`); reject(sendError); return; } resolve(); }); if (result) { resolve(); } }); return promise; } stepSkipped(featureId = CannotBeUndefined("featureId"), scenarioId = CannotBeUndefined("scenarioId"), stepId = CannotBeUndefined("stepId"), reason) { let promise = new Promise((resolve, reject) => { let payload = new step_skipped_message_1.StepSkippedMessage(featureId, scenarioId, stepId, reason); let result = process.send(payload, (sendError) => { if (sendError) { console.log(`Message sending failed ${sendError}`); reject(sendError); return; } resolve(); }); if (result) { resolve(); } }); return promise; } stepScreenshotted(featureId = CannotBeUndefined("featureId"), scenarioId = CannotBeUndefined("scenarioId"), stepId = CannotBeUndefined("stepId"), screenshotFilename) { let promise = new Promise((resolve, reject) => { let payload = new step_screenshotted_message_1.StepScreenshottedMessage(featureId, scenarioId, stepId, screenshotFilename); let result = process.send(payload, (sendError) => { if (sendError) { console.log(`Message sending failed ${sendError}`); reject(sendError); return; } resolve(); }); if (result) { resolve(); } }); return promise; } executionFinished() { let promise = new Promise((resolve, reject) => { let payload = new process_finished_message_1.ProcessFinishedMessage(); let result = process.send(payload, (sendError) => { if (sendError) { console.log(`Message sending failed ${sendError}`); reject(sendError); return; } resolve(); }); if (result) { resolve(); } }); return promise; } } exports.ExecutionBroadcaster = ExecutionBroadcaster;