123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- function RunsDatastore() {
- 'use strict';
- // NOT PERSISTING RUNS
- // For the moment, maybe one day
- var runs = {};
- var STATUS_AWAITING = 'awaiting';
- var STATUS_RUNNING = 'running';
- var STATUS_COMPLETE = 'complete';
- var STATUS_FAILED = 'failed';
- this.add = function(run, position) {
- runs[run.runId] = run;
- this.updatePosition(run.runId, position);
- };
- this.get = function(runId) {
- return runs[runId];
- };
-
- this.updatePosition = function(runId, position) {
- var run = runs[runId];
-
- if (position > 0) {
- run.status = {
- statusCode: STATUS_AWAITING,
- position: position
- };
- } else {
- run.status = {
- statusCode: STATUS_RUNNING
- };
- }
- runs[runId] = run;
- };
- // When the test is launched, set the progress bar
- this.updateRunProgress = function(runId, progress) {
- var run = runs[runId];
- run.progress = progress;
- runs[runId] = run;
- };
- this.markAsComplete = function(runId) {
- var run = runs[runId];
- run.status = {
- statusCode: STATUS_COMPLETE
- };
- runs[runId] = run;
- };
- this.markAsFailed = function(runId, err) {
- var run = runs[runId];
- var errorMessage;
- switch(err) {
- case '1':
- errorMessage = "Error 1: unknown error";
- break;
- case '252':
- errorMessage = "Error 252: page timeout in Phantomas";
- break;
- case '253':
- errorMessage = "Error 253: Phantomas config error";
- break;
- case '254':
- errorMessage = "Error 254: page loading failed in PhantomJS";
- break;
- case '255':
- errorMessage = "Error 255: Phantomas error";
- break;
- case '1001':
- errorMessage = "Error 1001: JavaScript profiling failed";
- break;
- case '1002':
- errorMessage = "Error 1002: missing Phantomas metrics";
- break;
- case '1003':
- errorMessage = "Error 1003: Phantomas not returning";
- break;
- default:
- errorMessage = err;
- }
- run.status = {
- statusCode: STATUS_FAILED,
- error: errorMessage
- };
- runs[runId] = run;
- };
- this.delete = function(runId) {
- delete runs[runId];
- };
- this.list = function() {
- var runsArray = [];
- Object.keys(runs).forEach(function(key) {
- runsArray.push(runs[key]);
- });
- return runsArray;
- };
- }
- module.exports = RunsDatastore;
|