Skip to content

Commit

Permalink
test: analytic changes
Browse files Browse the repository at this point in the history
  • Loading branch information
remy committed Apr 15, 2016
1 parent f7afa70 commit f7a992b
Showing 1 changed file with 46 additions and 21 deletions.
67 changes: 46 additions & 21 deletions test/analytics.test.js
Original file line number Diff line number Diff line change
@@ -1,30 +1,39 @@
var tap = require('tap');
var test = require('tap-only');
var proxyquire = require('proxyquire').noPreserveCache();
var sinon = require('sinon');
var snyk = require('../lib');
var old;

tap.beforeEach(function (done) {
old = snyk.config.get('disable-analytics');
snyk.config.del('disable-analytics');
done();
});

tap.afterEach(function (done) {
if (old === undefined) {
snyk.config.del('disable-analytics');
} else {
snyk.config.set('disable-analytics', old);
}
done();
});

test('analytics disabled', function (t) {
var spy = sinon.spy();
var old = snyk.config.get('disable-analytics');
snyk.config.set('disable-analytics', '1');
var analytics = proxyquire('../lib/analytics', {
'./request': spy,
});

return analytics().then(function () {
t.equal(spy.called, false, 'the request should not have been made');
if (old === undefined) {
snyk.config.del('disable-analytics');
} else {
snyk.config.set('disable-analytics', old);
}
});
});

test('analytics', function (t) {
var spy = sinon.spy();
var old = snyk.config.get('disable-analytics');
snyk.config.del('disable-analytics');
var analytics = proxyquire('../lib/analytics', {
'./request': spy,
});
Expand All @@ -37,19 +46,11 @@ test('analytics', function (t) {
}).then(function () {
var body = spy.lastCall.args[0].body.data;
t.deepEqual(Object.keys(body).sort(), ['command', 'os', 'version', 'id', 'ci', 'metadata', 'args', 'nodeVersion'].sort(), 'keys as expected');
if (old === undefined) {
snyk.config.del('disable-analytics');
} else {
snyk.config.set('disable-analytics', old);
}
});

});

test('bad command', function (t) {
var spy = sinon.spy();
var old = snyk.config.get('disable-analytics');
snyk.config.del('disable-analytics');
process.argv = ['node', 'script.js', 'random command', '-q'];
var cli = proxyquire('../cli', {
'../lib/analytics': proxyquire('../lib/analytics', {
Expand All @@ -63,11 +64,35 @@ test('bad command', function (t) {
var payload = spy.args[0][0].body;
t.equal(payload.data.command, 'bad-command', 'correct event name');
t.equal(payload.data.metadata.command, 'random command', 'found original command');
});
});

test('test includes data', function (t) {
var spy = sinon.spy();
process.argv = ['node', 'script.js', 'test', 'snyk-demo-app', '-q'];

if (old === undefined) {
snyk.config.del('disable-analytics');
} else {
snyk.config.set('disable-analytics', old);
}
var analytics = proxyquire('../lib/analytics', {
'./request': spy,
});

var cli = proxyquire('../cli', {
'../lib/analytics': analytics,
'./args': proxyquire('../cli/args', {
'./commands': proxyquire('../cli/commands', {
'../../lib/hotload': proxyquire('../lib/hotload', {
'/Users/remy/Sites/snyk/cli/commands/test': proxyquire('../lib/test', {
'./analytics': analytics,
})
})
})
}),
});

return cli.then(function () {
t.equal(spy.callCount, 1, 'analytics was called');

var payload = spy.args[0][0].body;
t.equal(payload.data.command, 'test', 'correct event name');
t.equal(payload.data.metadata.package, 'snyk-demo-app@*', 'includes package');
});
});

0 comments on commit f7a992b

Please # to comment.