gulp-msbuild
Version:
msbuild plugin for gulp. Inspired by grunt-msbuild.
122 lines (102 loc) • 4.57 kB
text/typescript
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);
});
});
});