summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Van Doorn <vandoorn.nick@gmail.com>2018-12-09 23:15:22 -0800
committerNick Van Doorn <vandoorn.nick@gmail.com>2018-12-09 23:15:22 -0800
commit0d164c6311a56ef1ddf09727e69746d17571dcd4 (patch)
treea59bf88dcaafb5a9fb7adf38c1ab49ee11331dca
parentc240af3c88254f15d2f64545525e4cfd635dece2 (diff)
Import new reporters & refactor report model
-rw-r--r--src/test-runner/test-runner.ts55
1 files 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<void> => {
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<Report[]> => {
- let reports = []
+): Promise<Report> => {
+ 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<Report> => {
- const nConnectedClients = await adapter.nConnectedClients()
- const uptime = await adapter.uptime()
- const leaseTime = await adapter.leaseTime()
+): Promise<ReportStat> => {
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()
}
}