/** * @license * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. * This code may only be used under the BSD style license found at * http://polymer.github.io/LICENSE.txt The complete set of authors may be found * at http://polymer.github.io/AUTHORS.txt The complete set of contributors may * be found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by * Google as part of the polymer project is also subject to an additional IP * rights grant found at http://polymer.github.io/PATENTS.txt */ import {assert} from 'chai'; import * as path from 'path'; import {ProjectConfig} from 'polymer-project-config'; import * as sinon from 'sinon'; import {PolymerCli} from '../../../polymer-cli'; suite('install', () => { const expectedDefaultConfig = new ProjectConfig({ extraDependencies: [path.resolve('bower_components/webcomponentsjs/*.js')], }); test('runs using full command name', async () => { const cli = new PolymerCli(['install']); const installCommand = cli.commands.get('install')!; const installCommandSpy = sinon.stub(installCommand, 'run'); await cli.run(); assert.isOk(installCommandSpy.calledOnce); assert.deepEqual( installCommandSpy.firstCall.args, [{offline: false, variants: false}, expectedDefaultConfig]); }); test('runs using aliased command name', async () => { const cli = new PolymerCli(['i']); const installCommand = cli.commands.get('install')!; const installCommandSpy = sinon.stub(installCommand, 'run'); await cli.run(); assert.isOk(installCommandSpy.calledOnce); assert.deepEqual( installCommandSpy.firstCall.args, [{offline: false, variants: false}, expectedDefaultConfig]); }); test('runs using aliased command name with argument', async () => { const cli = new PolymerCli(['i', '--variants']); const installCommand = cli.commands.get('install')!; const installCommandSpy = sinon.stub(installCommand, 'run'); await cli.run(); assert.isOk(installCommandSpy.calledOnce); assert.deepEqual( installCommandSpy.firstCall.args, [{offline: false, variants: true}, expectedDefaultConfig]); }); });