mirror of
https://github.com/Tencent/tmagic-editor.git
synced 2026-05-14 20:43:57 +00:00
57 lines
1.3 KiB
TypeScript
57 lines
1.3 KiB
TypeScript
/*
|
|
* Tencent is pleased to support the open source community by making TMagicEditor available.
|
|
*
|
|
* Copyright (C) 2025 Tencent.
|
|
*/
|
|
import fs from 'node:fs';
|
|
import os from 'node:os';
|
|
import path from 'node:path';
|
|
|
|
import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest';
|
|
|
|
import { cli } from '../src/cli';
|
|
|
|
describe('cli', () => {
|
|
let tmpRoot: string;
|
|
let originalArgv: string[];
|
|
|
|
beforeEach(() => {
|
|
tmpRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'cli-cli-'));
|
|
originalArgv = process.argv;
|
|
vi.spyOn(console, 'log').mockImplementation(() => undefined);
|
|
});
|
|
|
|
afterEach(() => {
|
|
fs.rmSync(tmpRoot, { recursive: true, force: true });
|
|
process.argv = originalArgv;
|
|
delete require.extensions['.ts'];
|
|
vi.restoreAllMocks();
|
|
});
|
|
|
|
test('调用后注册了 .ts 扩展并能解析 --version 参数', () => {
|
|
process.argv = ['node', 'tmagic', '--version'];
|
|
|
|
expect(() =>
|
|
cli({
|
|
packages: [],
|
|
source: tmpRoot,
|
|
temp: 'tmp',
|
|
}),
|
|
).not.toThrow();
|
|
|
|
expect(typeof require.extensions['.ts']).toBe('function');
|
|
});
|
|
|
|
test('未指定子命令时不会触发 entry 动作', () => {
|
|
process.argv = ['node', 'tmagic'];
|
|
|
|
expect(() =>
|
|
cli({
|
|
packages: [],
|
|
source: tmpRoot,
|
|
temp: 'tmp',
|
|
}),
|
|
).not.toThrow();
|
|
});
|
|
});
|