From f82d8b8ee8b6534dfe69a8724d7bc83180c69c8c Mon Sep 17 00:00:00 2001 From: Luke Sneeringer Date: Thu, 19 Oct 2017 16:23:34 -0700 Subject: [PATCH] Make samples tests permissive of lack of data. (#7) --- monitoring/snippets/metrics.js | 4 ++++ monitoring/snippets/system-test/metrics.test.js | 14 +++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/monitoring/snippets/metrics.js b/monitoring/snippets/metrics.js index cc077efe6e..295e2710b6 100644 --- a/monitoring/snippets/metrics.js +++ b/monitoring/snippets/metrics.js @@ -429,6 +429,10 @@ function readTimeSeriesReduce(projectId) { client .listTimeSeries(request) .then(results => { + if (results[0].length === 0) { + console.log('No data'); + return; + } const reductions = results[0][0].points; console.log('Average CPU utilization across all GCE instances:'); diff --git a/monitoring/snippets/system-test/metrics.test.js b/monitoring/snippets/system-test/metrics.test.js index e9e87d70e0..dbec6c3444 100644 --- a/monitoring/snippets/system-test/metrics.test.js +++ b/monitoring/snippets/system-test/metrics.test.js @@ -102,6 +102,7 @@ test(`should read time series data`, async t => { }, }); const output = await tools.runAsync(`${cmd} read '${filter}'`, cwd); + t.true(true); // Do not fail if there is simply no data to return. timeSeries.forEach(data => { t.true(output.includes(`${data.metric.labels.instance_name}:`)); data.points.forEach(point => { @@ -187,7 +188,14 @@ test(`should read time series data reduced`, async t => { }, }); const output = await tools.runAsync(`${cmd} read-reduce`, cwd); - t.true(output.includes(`Average CPU utilization across all GCE instances:`)); - t.true(output.includes(` Last 10 min`)); - t.true(output.includes(` 10-20 min ago`)); + // Special case: No output. + if (output === 'No data') { + t.true(output.includes('No data')); + } else { + t.true( + output.includes(`Average CPU utilization across all GCE instances:`) + ); + t.true(output.includes(` Last 10 min`)); + t.true(output.includes(` 10-20 min ago`)); + } });