mirror of
https://github.com/serverless/serverless.git
synced 2026-01-18 14:58:43 +00:00
69 lines
3.0 KiB
JavaScript
69 lines
3.0 KiB
JavaScript
'use strict';
|
|
|
|
const { expect } = require('chai');
|
|
const sinon = require('sinon');
|
|
const proxyquire = require('proxyquire');
|
|
const configureInquirerStub = require('@serverless/test/configure-inquirer-stub');
|
|
const configUtils = require('@serverless/utils/config');
|
|
const inquirer = require('@serverless/utils/inquirer');
|
|
const step = require('../../../../../lib/cli/interactive-setup/auto-update');
|
|
|
|
describe('test/unit/lib/cli/interactive-setup/auto-update.test.js', () => {
|
|
afterEach(() => {
|
|
configUtils.set('autoUpdate.isInteractiveSetupPromptDisabled', false);
|
|
sinon.restore();
|
|
});
|
|
|
|
it('Should not suggest auto update in non supported environments', async () => {
|
|
let uncachedStep = proxyquire('../../../../../lib/cli/interactive-setup/auto-update', {
|
|
'../../utils/isStandaloneExecutable': false,
|
|
'../../utils/is-locally-installed': async () => true,
|
|
'../../utils/npmPackage/isGlobal': async () => true,
|
|
'../../utils/npmPackage/isWritable': async () => true,
|
|
});
|
|
expect(await uncachedStep.isApplicable({})).to.equal(false);
|
|
uncachedStep = proxyquire('../../../../../lib/cli/interactive-setup/auto-update', {
|
|
'../../utils/isStandaloneExecutable': false,
|
|
'../../utils/is-locally-installed': async () => false,
|
|
'../../utils/npmPackage/isGlobal': async () => false,
|
|
'../../utils/npmPackage/isWritable': async () => true,
|
|
});
|
|
expect(await uncachedStep.isApplicable({})).to.equal(false);
|
|
uncachedStep = proxyquire('../../../../../lib/cli/interactive-setup/auto-update', {
|
|
'../../utils/isStandaloneExecutable': false,
|
|
'../../utils/is-locally-installed': async () => false,
|
|
'../../utils/npmPackage/isGlobal': async () => true,
|
|
'../../utils/npmPackage/isWritable': async () => false,
|
|
});
|
|
expect(await uncachedStep.isApplicable({})).to.equal(false);
|
|
});
|
|
|
|
it('Should abort if user does not want to setup auto update', async () => {
|
|
configureInquirerStub(inquirer, {
|
|
confirm: { shouldSetupAutoUpdate: false },
|
|
});
|
|
await step.run({});
|
|
expect(configUtils.get('autoUpdate.enabled')).to.be.undefined;
|
|
expect(configUtils.get('autoUpdate.isInteractiveSetupPromptDisabled')).to.be.true;
|
|
});
|
|
|
|
it('Should not prompt again is user opt out from setup', async () => {
|
|
configUtils.set('autoUpdate.isInteractiveSetupPromptDisabled', true);
|
|
const uncachedStep = proxyquire('../../../../../lib/cli/interactive-setup/auto-update', {
|
|
'../../utils/isStandaloneExecutable': false,
|
|
'../../utils/is-locally-installed': async () => false,
|
|
'../../utils/npmPackage/isGlobal': async () => true,
|
|
'../../utils/npmPackage/isWritable': async () => true,
|
|
});
|
|
expect(await uncachedStep.isApplicable({})).to.equal(false);
|
|
});
|
|
|
|
it('Should setup auto update on user request', async () => {
|
|
configureInquirerStub(inquirer, {
|
|
confirm: { shouldSetupAutoUpdate: true },
|
|
});
|
|
await step.run({});
|
|
expect(configUtils.get('autoUpdate.enabled')).to.be.true;
|
|
});
|
|
});
|