diff --git a/packages/contentstack-config/test/unit/commands/base-branch.test.ts b/packages/contentstack-config/test/unit/commands/base-branch.test.ts index 638784ee2c..dd5cdc0a5c 100644 --- a/packages/contentstack-config/test/unit/commands/base-branch.test.ts +++ b/packages/contentstack-config/test/unit/commands/base-branch.test.ts @@ -51,5 +51,6 @@ describe('base-branch command', function () { const branchStub = stub(cliux, 'table').callsFake(() => {}); await BranchGetCommand.run([]); expect(branchStub.calledOnce).to.be.true; + branchStub.restore(); }); }); diff --git a/packages/contentstack-config/test/unit/commands/early-access-header.test.ts b/packages/contentstack-config/test/unit/commands/early-access-header.test.ts new file mode 100644 index 0000000000..c7d04c3b75 --- /dev/null +++ b/packages/contentstack-config/test/unit/commands/early-access-header.test.ts @@ -0,0 +1,99 @@ +import { expect, should } from 'chai'; +import { stub, spy } from 'sinon'; +import { configHandler } from '@contentstack/cli-utilities'; +import { cliux } from '@contentstack/cli-utilities'; +import Conf from 'conf'; +import { setEarlyAccessHeaderMockData } from '../mock/index'; +import { interactive } from '../../../src/utils/index'; + +import GetEarlyAccessHeaderCommand from '../../../src/commands/config/get/early-access-header'; +import SetEarlyAccessHeaderCommand from '../../../src/commands/config/set/early-access-header'; +import RemoveEarlyAccessHeaderCommand from '../../../src/commands/config/remove/early-access-header'; + + +const config = configHandler; +describe('Early access header command', function () { + let configSetStub; + let cliuxSuccessStub; + let configHandlerDeleteStub; + before(() => { + configSetStub = stub(configHandler, 'set').returns({} as Conf>); + cliuxSuccessStub = stub(cliux, 'success').callsFake(()=> {}); + configHandlerDeleteStub = stub(configHandler, 'delete').resolves(""); + }); + + after(() => { + // Restore the original method after each test + configSetStub.restore(); + cliuxSuccessStub.restore(); + configHandlerDeleteStub.restore(); + }); + + it('Set early access header: with all flags, should be successful', async function () { + const args = [ + '--header-alias', + setEarlyAccessHeaderMockData.flags.headerAlias, + '--header', + setEarlyAccessHeaderMockData.flags.header, + ]; + await SetEarlyAccessHeaderCommand.run(args); + expect(cliuxSuccessStub.calledOnce).to.be.true; + }); + + it('Set early access header: should prompt when header alias is not passed', async () => { + const askEarlyAccessHeaderAlias = stub(interactive, 'askEarlyAccessHeaderAlias').resolves(setEarlyAccessHeaderMockData.flags.headerAlias); + await SetEarlyAccessHeaderCommand.run(["--header", setEarlyAccessHeaderMockData.flags.header]); + expect(askEarlyAccessHeaderAlias.calledOnce).to.be.true; + askEarlyAccessHeaderAlias.restore(); + }); + + it('Set early access header: should prompt when header is not passed', async () => { + const askEarlyAccessHeaderAlias = stub(interactive, 'askEarlyAccessHeaderValue').resolves(setEarlyAccessHeaderMockData.flags.header); + await SetEarlyAccessHeaderCommand.run(["--header-alias", setEarlyAccessHeaderMockData.flags.headerAlias]); + expect(askEarlyAccessHeaderAlias.calledOnce).to.be.true; + askEarlyAccessHeaderAlias.restore(); + }); + + it('Get early access header: with all flags, should be successful', async function () { + const cliuxTableStub = stub(cliux, 'table'); + await GetEarlyAccessHeaderCommand.run([]); + expect(cliuxTableStub.calledOnce).to.be.true; + cliuxTableStub.restore(); + }); + + it('Remove early access header: with all flags, should be successful', async function () { + const configGetStub = stub(configHandler, 'get').resolves(setEarlyAccessHeaderMockData.flags.headerAlias); + const args = [ + '--header-alias', + setEarlyAccessHeaderMockData.flags.headerAlias, + '--yes' + ]; + await RemoveEarlyAccessHeaderCommand.run(args); + expect(configHandlerDeleteStub.calledOnce).to.be.true; + configGetStub.restore(); + }); + + it('Remove early access header: with only alias flag should prompt for confirmation', async function () { + const configGetStub = stub(configHandler, 'get').resolves(setEarlyAccessHeaderMockData.flags.headerAlias); + const confirmationStub = stub(interactive, 'askConfirmation').resolves(true); + const args = [ + '--header-alias', + setEarlyAccessHeaderMockData.flags.headerAlias, + ]; + await RemoveEarlyAccessHeaderCommand.run(args); + expect(confirmationStub.calledOnce).to.be.true; + configGetStub.restore(); + confirmationStub.restore() + }); + + it('Remove early access header: without alias flag should prompt', async function () { + const configGetStub = stub(configHandler, 'get').resolves(setEarlyAccessHeaderMockData.flags.headerAlias); + const askHeaderAliasStub = stub(interactive, 'askEarlyAccessHeaderAlias').resolves(setEarlyAccessHeaderMockData.flags.headerAlias); + const args = [ + "--yes" + ]; + await RemoveEarlyAccessHeaderCommand.run(args); + expect(askHeaderAliasStub.calledOnce).to.be.true; + configGetStub.restore(); + }); +}); diff --git a/packages/contentstack-config/test/unit/commands/region.test.ts b/packages/contentstack-config/test/unit/commands/region.test.ts index 6713255ed3..410a0cd263 100644 --- a/packages/contentstack-config/test/unit/commands/region.test.ts +++ b/packages/contentstack-config/test/unit/commands/region.test.ts @@ -12,6 +12,7 @@ describe('Region command', function () { name: 'test', cma: 'https://api.contentstack.com', cda: 'https://cda.contentstack.com', + uiHost: '', }; let cliuxPrintStub; beforeEach(function () { diff --git a/packages/contentstack-config/test/unit/commands/remove-base-branch.test.ts b/packages/contentstack-config/test/unit/commands/remove-base-branch.test.ts index 87fddd4d5c..13653d3dd9 100644 --- a/packages/contentstack-config/test/unit/commands/remove-base-branch.test.ts +++ b/packages/contentstack-config/test/unit/commands/remove-base-branch.test.ts @@ -41,9 +41,10 @@ describe('Delete config', () => { const config = configHandler; const getConfig = config.get(`baseBranch.${removeConfigMockData.flags.apiKey}`); - const askConfirmation = stub(interactive, 'askConfirmation').calledOnce; + const askConfirmation = stub(interactive, 'askConfirmation'); const showSuccess = stub(cliux, 'success'); await RemoveBranchConfigCommand.run(['--stack-api-key', removeConfigMockData.flags.apiKey]); - if (getConfig && askConfirmation) expect(showSuccess.calledOnce).to.be.true; + if (getConfig && askConfirmation.calledOnce) expect(showSuccess.calledOnce).to.be.true; + askConfirmation.restore(); }); }); diff --git a/packages/contentstack-config/test/unit/mock/index.ts b/packages/contentstack-config/test/unit/mock/index.ts index b49cbfd01c..fe9eb7eba4 100644 --- a/packages/contentstack-config/test/unit/mock/index.ts +++ b/packages/contentstack-config/test/unit/mock/index.ts @@ -5,6 +5,13 @@ export const setConfigMockData = { }, }; +export const setEarlyAccessHeaderMockData = { + flags: { + headerAlias: 'taxonomy', + header: 'taxonomytestorg', + }, +}; + export const removeConfigMockData = { flags: { apiKey: 'abcd',