basant307/AI_Governance_Project
048
1/**2 * @license3 * Copyright 2025 Google LLC4 * SPDX-License-Identifier: Apache-2.05 */6import { describe, it, expect } from 'vitest';7import { extensionsCommand } from './extensions.js';8import { updateCommand } from './extensions/update.js';9import { disableCommand } from './extensions/disable.js';10import { enableCommand } from './extensions/enable.js';11import { linkCommand } from './extensions/link.js';12import { newCommand } from './extensions/new.js';13import yargs from 'yargs';14describe('extensions command', () => {15 it('should have correct command name', () => {16 expect(extensionsCommand.command).toBe('extensions <command>');17 });18 it('should have a description', () => {19 expect(extensionsCommand.describe).toBe('Manage Qwen Code extensions.');20 });21 it('should require a subcommand', () => {22 const parser = yargs([])23 .command(extensionsCommand)24 .fail(false)25 .locale('en');26 expect(() => parser.parse('extensions')).toThrow();27 });28 it('should register install subcommand', () => {29 const parser = yargs([])30 .command(extensionsCommand)31 .fail(false)32 .locale('en');33 // This should throw as 'install' requires a source argument34 expect(() => parser.parse('extensions install')).toThrow('Not enough non-option arguments');35 });36 it('should register uninstall subcommand', () => {37 const parser = yargs([])38 .command(extensionsCommand)39 .fail(false)40 .locale('en');41 expect(() => parser.parse('extensions uninstall')).toThrow('Not enough non-option arguments');42 });43 it('should register list subcommand', () => {44 const parser = yargs([])45 .command(extensionsCommand)46 .fail(false)47 .locale('en');48 // list doesn't require arguments, so it should not throw49 expect(() => parser.parse('extensions list')).not.toThrow();50 });51 it('should register update subcommand', () => {52 const parser = yargs([]).command(updateCommand).fail(false).locale('en');53 expect(() => parser.parse('update')).toThrow('Either an extension name or --all must be provided');54 });55 it('should register disable subcommand', () => {56 const parser = yargs([]).command(disableCommand).fail(false).locale('en');57 expect(() => parser.parse('disable')).toThrow('Not enough non-option arguments');58 });59 it('should register enable subcommand', () => {60 const parser = yargs([]).command(enableCommand).fail(false).locale('en');61 expect(() => parser.parse('enable')).toThrow('Not enough non-option arguments');62 });63 it('should register link subcommand', () => {64 const parser = yargs([]).command(linkCommand).fail(false).locale('en');65 expect(() => parser.parse('link')).toThrow('Not enough non-option arguments');66 });67 it('should register new subcommand', async () => {68 const parser = yargs([]).command(newCommand).fail(false).locale('en');69 await expect(parser.parseAsync('new')).rejects.toThrow('Not enough non-option arguments');70 });71});72//# sourceMappingURL=extensions.test.js.map