360 lines
7.4 KiB
JavaScript
360 lines
7.4 KiB
JavaScript
import dayjs from 'dayjs';
|
|
import test from 'ava';
|
|
|
|
import { InfluxDBDataGenerator as DataGenerator } from '../lib/plugins/influxdb/data-generator.js';
|
|
|
|
test(`Test influxdb dataGenerator`, t => {
|
|
const message = {
|
|
uuid: '33774328-e781-4152-babe-a367cee27153',
|
|
type: 'coach.summary',
|
|
timestamp: '2017-04-04T09:55:59+02:00',
|
|
source: 'coach',
|
|
data: {
|
|
score: {
|
|
median: '96',
|
|
mean: '96',
|
|
min: '96',
|
|
p90: '96',
|
|
max: '96'
|
|
},
|
|
accessibility: {
|
|
score: {
|
|
median: '95',
|
|
mean: '95',
|
|
min: '95',
|
|
p90: '95',
|
|
max: '95'
|
|
},
|
|
altImages: {
|
|
median: '80',
|
|
mean: '80',
|
|
min: '80',
|
|
p90: '80',
|
|
max: '80'
|
|
},
|
|
headings: {
|
|
median: '90',
|
|
mean: '90',
|
|
min: '90',
|
|
p90: '90',
|
|
max: '90'
|
|
},
|
|
labelOnInput: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
landmarks: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
neverSuppressZoom: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
sections: {
|
|
median: '0',
|
|
mean: '0',
|
|
min: '0',
|
|
p90: '0',
|
|
max: '0'
|
|
},
|
|
table: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
}
|
|
},
|
|
bestpractice: {
|
|
score: {
|
|
median: '85',
|
|
mean: '85',
|
|
min: '85',
|
|
p90: '85',
|
|
max: '85'
|
|
},
|
|
charset: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
doctype: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
https: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
httpsH2: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
language: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
metaDescription: {
|
|
median: '50',
|
|
mean: '50',
|
|
min: '50',
|
|
p90: '50',
|
|
max: '50'
|
|
},
|
|
optimizely: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
pageTitle: {
|
|
median: '50',
|
|
mean: '50',
|
|
min: '50',
|
|
p90: '50',
|
|
max: '50'
|
|
},
|
|
spdy: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
url: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
}
|
|
},
|
|
performance: {
|
|
score: {
|
|
median: '98',
|
|
mean: '98',
|
|
min: '98',
|
|
p90: '98',
|
|
max: '98'
|
|
},
|
|
avoidScalingImages: {
|
|
median: '50',
|
|
mean: '50',
|
|
min: '50',
|
|
p90: '50',
|
|
max: '50'
|
|
},
|
|
cssPrint: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
fastRender: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
inlineCss: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
jquery: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
spof: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
thirdPartyAsyncJs: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
assetsRedirects: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
cacheHeaders: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
cacheHeadersLong: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
compressAssets: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
connectionKeepAlive: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
cssSize: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
documentRedirect: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
favicon: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
fewFonts: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
fewRequestsPerDomain: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
headerSize: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
imageSize: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
javascriptSize: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
mimeTypes: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
optimalCssSize: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
pageSize: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
privateAssets: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
},
|
|
responseOk: {
|
|
median: '100',
|
|
mean: '100',
|
|
min: '100',
|
|
p90: '100',
|
|
max: '100'
|
|
}
|
|
}
|
|
},
|
|
group: 'www.sitespeed.io'
|
|
};
|
|
|
|
let generator = new DataGenerator(false, {
|
|
_: ['filename'],
|
|
browser: 'chrome',
|
|
connectivity: 'cable',
|
|
influxdb: {
|
|
tags: 'tool=sitespeed.io'
|
|
}
|
|
});
|
|
|
|
const data = generator.dataFromMessage(message, dayjs());
|
|
const seriesName = data[0].seriesName;
|
|
const numberOfTags = Object.keys(data[0].tags).length;
|
|
t.is(seriesName, 'score');
|
|
t.is(numberOfTags, 6);
|
|
});
|