mirror of
https://github.com/serverless/serverless.git
synced 2026-01-18 14:58:43 +00:00
injects usersStat dependency to improve code coverage of Logs class
This commit is contained in:
parent
d197c69eb9
commit
21450dfd7f
@ -1,11 +1,12 @@
|
||||
'use strict';
|
||||
|
||||
const BbPromise = require('bluebird');
|
||||
const userStats = require('../../utils/userStats');
|
||||
const defaultUserStats = require('../../utils/userStats');
|
||||
|
||||
class Logs {
|
||||
constructor(serverless) {
|
||||
constructor(serverless, userStats) {
|
||||
this.serverless = serverless;
|
||||
this.userStats = userStats || defaultUserStats;
|
||||
|
||||
this.commands = {
|
||||
logs: {
|
||||
@ -55,7 +56,7 @@ class Logs {
|
||||
if (sls && sls.processedInput && sls.processedInput.options) {
|
||||
const opts = sls.processedInput.options;
|
||||
const type = (opts.tail) ? 'service_logsTailed' : 'service_logsViewed';
|
||||
userStats.track(type);
|
||||
this.userStats.track(type);
|
||||
}
|
||||
return BbPromise.resolve();
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
'use strict';
|
||||
|
||||
const expect = require('chai').expect;
|
||||
const sinon = require('sinon');
|
||||
const Logs = require('./logs');
|
||||
const Serverless = require('../../Serverless');
|
||||
|
||||
@ -16,4 +17,45 @@ describe('Logs', () => {
|
||||
describe('#constructor()', () => {
|
||||
it('should have commands', () => expect(logs.commands).to.be.not.empty);
|
||||
});
|
||||
|
||||
describe('#track()', () => {
|
||||
let userStats;
|
||||
|
||||
beforeEach(() => {
|
||||
userStats = { track: sinon.spy() };
|
||||
});
|
||||
|
||||
describe('Without cli processed input', () => {
|
||||
it('do not track user stats', () => {
|
||||
const newLogs = new Logs(serverless, userStats);
|
||||
|
||||
return newLogs.track()
|
||||
.then(() => {
|
||||
expect(userStats.track.called).to.be.equal(false);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('With cli processed input', () => {
|
||||
it('tracks user stats with viewed option', () => {
|
||||
serverless.processedInput = { commands: [], options: {} };
|
||||
|
||||
return new Logs(serverless, userStats).track()
|
||||
.then(() => {
|
||||
expect(userStats.track.calledWithExactly('service_logsViewed'))
|
||||
.to.be.equal(true);
|
||||
});
|
||||
});
|
||||
|
||||
it('tracks user stats with tailed option', () => {
|
||||
serverless.processedInput = { commands: [], options: { tail: true } };
|
||||
|
||||
return new Logs(serverless, userStats).track()
|
||||
.then(() => {
|
||||
expect(userStats.track.calledWithExactly('service_logsTailed'))
|
||||
.to.be.equal(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user