sync/test/metrics/metricstest.js
Calvin Montgomery ff3ececc36 Copy utils from cytube-common and remove dep
The `cytube-common` module was created as part of a now-defunct
experiment and since then has just remained a crufty container for a few
utils.  Moved the utils to the main repo and removed the dependency.
2017-07-19 20:47:02 -07:00

34 lines
1.2 KiB
JavaScript

var assert = require('assert');
var JSONFileMetricsReporter = require('../../lib/metrics/jsonfilemetricsreporter').JSONFileMetricsReporter;
var Metrics = require('../../lib/metrics/metrics');
var os = require('os');
var fs = require('fs');
var path = require('path');
describe('JSONFileMetricsReporter', function () {
describe('#report', function () {
it('reports metrics to file', function (done) {
const outfile = path.resolve(os.tmpdir(),
'metrics' + Math.random() + '.txt');
const reporter = new JSONFileMetricsReporter(outfile);
Metrics.setReporter(reporter);
Metrics.incCounter('abc');
Metrics.incCounter('abc');
Metrics.incCounter('def', 10);
Metrics.addProperty('foo', { bar: 'baz' });
Metrics.flush();
setTimeout(function () {
const contents = String(fs.readFileSync(outfile));
const data = JSON.parse(contents);
assert.strictEqual(data.abc, 2);
assert.strictEqual(data.def, 10);
assert.deepStrictEqual(data.foo, { bar: 'baz' });
fs.unlinkSync(outfile);
done();
}, 100);
});
});
});