/* Copyright IBM Corp. 2017 */ import { tmpdir } from 'os'; import { join } from 'path'; import { concat, merge } from 'rxjs'; import { v4 } from 'uuid'; import { CopyBuildCommand } from '../src/commands/copy.build.command'; import { Options } from '../src/options'; import { rxDeleteDir } from '../src/utils/rx.delete'; import { CommandFactory } from './../src/commands/factory'; import { rxCopyDir } from './../src/utils/rx.copy'; import { getAssetBaseDir } from './utils/test.utils'; const Browser = undefined; describe('copy.build', () => { it('should be able to copy the resources', () => { const dir = tmpdir(); const name = v4(); const dstBase = join(dir, name); // copy a sample app const assetBase = getAssetBaseDir(); const srcSrc = join(assetBase, 'test', 'empty-project'); const srcData = join(assetBase, 'test', 'oslo'); const srcDist = join(assetBase, 'test', 'dist'); const dstSrc = dstBase; const dstData = join(dstBase, 'data'); const dstDist = join(dstBase, 'dist'); const rxDelete = rxDeleteDir(dstBase); const rxCopySrc = rxCopyDir(srcSrc, dstSrc); const rxCopyData = rxCopyDir(srcData, dstData); const rxCopyDist = rxCopyDir(srcDist, dstDist); const rxCopy = merge(rxCopySrc, rxCopyData, rxCopyDist); const appName = 'myApp'; const fct = new CommandFactory(); const opt: Options = { 'command': CopyBuildCommand.COMMAND, 'commandType': CopyBuildCommand.TYPE, 'root': '/', 'data': dstData, 'src': dstDist, 'name': appName, 'allArgs': [] }; const cmd = fct.create(opt); const rxCmd = cmd.process(); const rxTotal = concat(rxDelete, rxCopy, rxCmd, rxDelete); return rxTotal.toPromise(); }); });