From 0d164c6311a56ef1ddf09727e69746d17571dcd4 Mon Sep 17 00:00:00 2001 From: Nick Van Doorn Date: Sun, 9 Dec 2018 23:15:22 -0800 Subject: Import new reporters & refactor report model --- src/test-runner/test-runner.ts | 55 +++++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 22 deletions(-) diff --git a/src/test-runner/test-runner.ts b/src/test-runner/test-runner.ts index b29b955..3a03296 100644 --- a/src/test-runner/test-runner.ts +++ b/src/test-runner/test-runner.ts @@ -6,6 +6,7 @@ import { Reporter } from '../models/reporter.model' import { Report } from '../models/report.model' import { Context } from '../models/context.model' import { ExecState } from '../models/exec-state.model' +import { ReportStat } from '../models/report-stat.model' // Physical hardware adapters (a standard Telus one for now) import { ActiontecT3200M } from '../adapters/actiontec-t3200m' @@ -16,6 +17,8 @@ import { Fast } from '../test-services/fast' // Data reporters import { Firebase } from '../reporters/firebase' +import { Sheets } from '../reporters/sheets' +import { File } from '../reporters/file' import { Scheduler } from '../scheduler' @@ -29,9 +32,13 @@ const testServiceMap = { } const reportersMap = { - firebase: Firebase + firebase: Firebase, + sheets: Sheets, + file: File } +const now = () => Date.now() / 1000 + const mapToObj = (keys: string[], mapObj: Object) => keys.map(k => mapObj[k]).filter(k => k != null) @@ -66,15 +73,18 @@ export const testRunner = async (ctx: Context) => { export const reportEach = async ( reporters: Reporter[], - reports: Report[], + report: Report, ctx: Context ): Promise => { for (let reporter of reporters) { - ctx.logger(`Reporting results to ${reporter.name}`) - for (let report of reports) { + try { + ctx.logger(`Reporting results to ${reporter.name}`) reporter.record(report) + await reporter.publish() + } catch (err) { + ctx.logger('shit') + ctx.logger(err) } - await reporter.publish() } } @@ -82,35 +92,36 @@ export const testEachService = async ( adapter: Adapter, services: TestService[], ctx: Context -): Promise => { - let reports = [] +): Promise => { + const isOnline = await adapter.isOnline() + const nConnectedClients = await adapter.nConnectedClients() + const leaseTime = await adapter.leaseTime() + const uptime = await adapter.uptime() + const tests = [] for (let service of services) { ctx.logger(`Testing ${service.name}`) - const report = await testService(adapter, service, ctx) - reports.push(report) + const stats: ReportStat[] = [await testService(service, ctx)] + tests.push({ stats, testServiceName: service.name }) + } + return { + nConnectedClients, + leaseTime, + uptime, + tests, + adapterName: adapter.name, + datetime: now() } - return reports } export const testService = async ( - adapter: Adapter, service: TestService, ctx: Context -): Promise => { - const nConnectedClients = await adapter.nConnectedClients() - const uptime = await adapter.uptime() - const leaseTime = await adapter.leaseTime() +): Promise => { const download = await service.testDownload() const upload = await service.testUpload() - const datetime = Date.now() / 1000 return { - nConnectedClients, - uptime, - leaseTime, download, upload, - datetime, - adapter: adapter.name, - service: service.name + datetime: now() } } -- cgit v1.2.3