UNPKG

gulp-msbuild

Version:

msbuild plugin for gulp. Inspired by grunt-msbuild.

122 lines (102 loc) 4.57 kB
import { MSBuildOptions } from '../src/msbuild/msbuild-options'; describe('MSBuildOptions', () => { describe('constructor', () => { it('should create options with default values', () => { const options = new MSBuildOptions({}); expect(options.stdout).toBe(false); expect(options.stderr).toBe(true); expect(options.errorOnFail).toBe(false); expect(options.logCommand).toBe(false); expect(options.targets).toEqual(['rebuild']); expect(options.configuration).toBe('Release'); expect(options.verbosity).toBe('normal'); expect(options.maxcpucount).toBe(0); expect(options.nologo).toBe(true); expect(options.nodeReuse).toBe(true); }); it('should create options with custom values', () => { const options = new MSBuildOptions({ stdout: true, stderr: false, errorOnFail: true, logCommand: true, targets: ['Clean', 'Build'], configuration: 'Debug', verbosity: 'detailed', maxcpucount: 4, nologo: false }); expect(options.stdout).toBe(true); expect(options.stderr).toBe(false); expect(options.errorOnFail).toBe(true); expect(options.logCommand).toBe(true); expect(options.targets).toEqual(['Clean', 'Build']); expect(options.configuration).toBe('Debug'); expect(options.verbosity).toBe('detailed'); expect(options.maxcpucount).toBe(4); expect(options.nologo).toBe(false); }); it('should handle properties object', () => { const properties = { Platform: 'x64', OutputPath: 'bin\\output' }; const options = new MSBuildOptions({ properties: properties }); expect(options.properties).toEqual(properties); }); it('should handle toolsVersion', () => { const options = new MSBuildOptions({ toolsVersion: '15.0' }); expect(options.toolsVersion).toBe('15.0'); }); it('should handle msbuildPath', () => { const path = 'C:\\Program Files\\MSBuild\\msbuild.exe'; const options = new MSBuildOptions({ msbuildPath: path as any }); expect(options.msbuildPath).toBe(path); }); it('should handle logger parameters', () => { const options = new MSBuildOptions({ fileLoggerParameters: 'LogFile=build.log' as any, consoleLoggerParameters: 'ErrorsOnly' as any, loggerParameters: 'CustomLogger,logger.dll' as any }); expect(options.fileLoggerParameters).toBe('LogFile=build.log'); expect(options.consoleLoggerParameters).toBe('ErrorsOnly'); expect(options.loggerParameters).toBe('CustomLogger,logger.dll'); }); it('should handle publish options', () => { const options = new MSBuildOptions({ emitPublishedFiles: true, publishDirectory: 'C:\\output', webPublishMethod: 'FileSystem', deployDefaultTarget: 'WebPublish', deleteExistingFiles: 'true', findDependencies: 'true' }); expect(options.emitPublishedFiles).toBe(true); expect(options.publishDirectory).toBe('C:\\output'); expect(options.webPublishMethod).toBe('FileSystem'); expect(options.deployDefaultTarget).toBe('WebPublish'); expect(options.deleteExistingFiles).toBe('true'); expect(options.findDependencies).toBe('true'); }); it('should handle custom args array', () => { const customArgs = ['/arg1', '/arg2:value']; const options = new MSBuildOptions({ customArgs: customArgs as any }); expect(options.customArgs).toEqual(customArgs); }); it('should handle emitEndEvent flag', () => { const options = new MSBuildOptions({ emitEndEvent: true }); expect(options.emitEndEvent).toBe(true); }); }); });