UNPKG

@swc/cli

Version:
123 lines (122 loc) 4.91 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const dirWorker_1 = __importDefault(require("../dirWorker")); const utilModule = __importStar(require("../util")); const compileModule = __importStar(require("../compile")); const path_1 = __importDefault(require("path")); const createHandleCompileOptions = (options) => ({ cliOptions: { outDir: "", outFile: "", filename: "", stripLeadingPaths: false, filenames: [], sync: false, workers: undefined, sourceMapTarget: undefined, extensions: [], watch: false, copyFiles: false, outFileExtension: "", includeDotfiles: false, deleteDirOnStart: false, quiet: true, only: [], ignore: [], }, swcOptions: {}, sync: false, outDir: "outDir", filename: "", ...options, }); jest.mock("../util", () => ({ ...jest.requireActual("../util"), compile: jest .fn() .mockReturnValue(Promise.resolve({ code: "code", map: "map" })), })); jest.mock("../compile", () => ({ outputResult: jest.fn(), })); beforeEach(() => { jest.clearAllMocks(); }); describe("dirWorker", () => { it('should call "compile" with the corresponding extension when "outFileExtension" is undefined', async () => { const filename = "test"; const options = createHandleCompileOptions({ filename: `${filename}.ts`, }); try { await (0, dirWorker_1.default)(options); } catch (err) { // We don't care about the error in this test, we want to make sure that "compile" was called } // Assert that subFunction was called with the correct parameter expect(utilModule.compile).toHaveBeenCalledWith(options.filename, { sourceFileName: `../${options.filename}` }, options.sync, path_1.default.join(options.outDir, `${filename}.${utilModule.mapTsExt(options.filename)}`)); expect(compileModule.outputResult).toHaveBeenCalledWith({ output: { code: "code", map: "map", }, sourceFile: `${filename}.ts`, destFile: path_1.default.join(options.outDir, `${filename}.${utilModule.mapTsExt(filename)}`), destDtsFile: path_1.default.join(options.outDir, `${filename}.${utilModule.mapDtsExt(filename)}`), destSourcemapFile: path_1.default.join(options.outDir, `${filename}.${utilModule.mapTsExt(filename)}.map`), options: { sourceFileName: `../${options.filename}` }, }); }); it('should call "compile" with "outFileExtension" when it is set in options', async () => { const filename = "test"; const options = createHandleCompileOptions({ filename: `${filename}.ts`, outFileExtension: "cjs", }); try { await (0, dirWorker_1.default)(options); } catch (err) { // We don't care about the error in this test, we want to make sure that "compile" was called } // Assert that subFunction was called with the correct parameter expect(utilModule.compile).toHaveBeenCalledWith(options.filename, { sourceFileName: `../${options.filename}` }, options.sync, path_1.default.join(options.outDir, `${filename}.${options.outFileExtension}`)); }); });