ask-cli
Version:
Alexa Skills Kit (ASK) Command Line Interfaces
74 lines (61 loc) • 2.81 kB
JavaScript
const { expect } = require('chai');
const sinon = require('sinon');
const fs = require('fs-extra');
const jsonfile = require('jsonfile');
const { METRICS } = require('@src/utils/constants');
const MetricConfig = require('@src/model/metric-config');
describe('Model test - metric config test', () => {
const configPath = 'somepath';
describe('# inspect correctness of getters when config file is present', () => {
const existingMachineId = 'existing-machine-id';
beforeEach(() => {
const createdAt = new Date();
createdAt.setDate(createdAt.getDate() - METRICS.NEW_USER_LENGTH_DAYS - 1);
sinon.stub(fs, 'existsSync').returns(true);
sinon.stub(fs, 'ensureDirSync');
sinon.stub(fs, 'readFileSync').returns(JSON.stringify({ machineId: existingMachineId, createdAt }));
sinon.stub(jsonfile, 'writeFileSync');
});
it('| returns correct machine id', () => {
const metricConfig = new MetricConfig(configPath);
const { machineId } = metricConfig;
expect(metricConfig).to.be.instanceof(MetricConfig);
expect(machineId).eq(existingMachineId);
});
it('| returns correct is new user flag', () => {
const metricConfig = new MetricConfig(configPath);
const isNewUser = metricConfig.isNewUser();
expect(metricConfig).to.be.instanceof(MetricConfig);
expect(isNewUser).eq(false);
});
afterEach(() => {
sinon.restore();
});
});
describe('# inspect correctness of getters when config file is not present', () => {
const newMachineId = 'new-machine-id';
beforeEach(() => {
const createdAt = new Date();
createdAt.setDate(createdAt.getDate() - METRICS.NEW_USER_LENGTH_DAYS + 1);
sinon.stub(fs, 'existsSync').returns(true);
sinon.stub(fs, 'ensureDirSync');
sinon.stub(fs, 'readFileSync').returns(JSON.stringify({ machineId: newMachineId, createdAt }));
sinon.stub(jsonfile, 'writeFileSync');
});
it('| returns correct machine id', () => {
const metricConfig = new MetricConfig(configPath);
const { machineId } = metricConfig;
expect(metricConfig).to.be.instanceof(MetricConfig);
expect(machineId).eq(newMachineId);
});
it('| returns correct is new user flag', () => {
const metricConfig = new MetricConfig(configPath);
const isNewUser = metricConfig.isNewUser();
expect(metricConfig).to.be.instanceof(MetricConfig);
expect(isNewUser).eq(true);
});
afterEach(() => {
sinon.restore();
});
});
});