mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-12 03:01:16 +00:00
79 lines
2.9 KiB
TypeScript
79 lines
2.9 KiB
TypeScript
import {
|
|
generateComponentName,
|
|
getNormalizedImportPath,
|
|
isPackagePath,
|
|
toTitleCase,
|
|
makeRelativePath,
|
|
removeVersion,
|
|
resolveAbsoluatePath,
|
|
joinPath,
|
|
} from '../../../src/builtin-simulator/utils/path';
|
|
|
|
describe('builtin-simulator/utils/path 测试', () => {
|
|
it('isPackagePath', () => {
|
|
expect(isPackagePath('a')).toBeTruthy();
|
|
expect(isPackagePath('@ali/a')).toBeTruthy();
|
|
expect(isPackagePath('@alife/a')).toBeTruthy();
|
|
expect(isPackagePath('a.b')).toBeTruthy();
|
|
expect(isPackagePath('./a')).toBeFalsy();
|
|
expect(isPackagePath('../a')).toBeFalsy();
|
|
expect(isPackagePath('/a')).toBeFalsy();
|
|
});
|
|
|
|
it('toTitleCase', () => {
|
|
expect(toTitleCase('a')).toBe('A');
|
|
expect(toTitleCase('a_b')).toBe('AB');
|
|
expect(toTitleCase('a b')).toBe('AB');
|
|
expect(toTitleCase('a-b')).toBe('AB');
|
|
expect(toTitleCase('a.b')).toBe('AB');
|
|
expect(toTitleCase('a.b.cx')).toBe('ABCx');
|
|
});
|
|
|
|
it('generateComponentName', () => {
|
|
expect(generateComponentName('a/index.js')).toBe('A');
|
|
expect(generateComponentName('a_b/index.js')).toBe('AB');
|
|
expect(generateComponentName('a_b/index.web.js')).toBe('AB');
|
|
expect(generateComponentName('a_b/index.xxx.js')).toBe('AB');
|
|
expect(generateComponentName('a_b')).toBe('AB');
|
|
expect(generateComponentName('')).toBe('Component');
|
|
});
|
|
|
|
it('getNormalizedImportPath', () => {
|
|
expect(getNormalizedImportPath('/a')).toBe('/a');
|
|
expect(getNormalizedImportPath('/a/')).toBe('/a/');
|
|
expect(getNormalizedImportPath('/a/index.js')).toBe('/a');
|
|
expect(getNormalizedImportPath('/a/index.ts')).toBe('/a');
|
|
expect(getNormalizedImportPath('/a/index.jsx')).toBe('/a');
|
|
expect(getNormalizedImportPath('/a/index.tsx')).toBe('/a');
|
|
expect(getNormalizedImportPath('/a/index.x')).toBe('/a/index.x');
|
|
});
|
|
|
|
it('makeRelativePath', () => {
|
|
expect(makeRelativePath('/a/b/c', '/a/b')).toBe('c');
|
|
expect(makeRelativePath('a/b/c', '/a/c')).toBe('a/b/c');
|
|
expect(makeRelativePath('/a/b/c', '/a/c')).toBe('./b/c');
|
|
expect(makeRelativePath('/a/b/c', '/a/c/d')).toBe('../b/c');
|
|
});
|
|
|
|
it('resolveAbsoluatePath', () => {
|
|
expect(resolveAbsoluatePath('/a/b/c', '/a')).toBe('/a/b/c');
|
|
expect(resolveAbsoluatePath('@ali/fe', '/a')).toBe('@ali/fe');
|
|
expect(resolveAbsoluatePath('./a/b', '/c')).toBe('/c/a/b');
|
|
expect(resolveAbsoluatePath('./a/b/d', '/c')).toBe('/c/a/b/d');
|
|
expect(resolveAbsoluatePath('../a/b', '/c')).toBe('/a/b');
|
|
expect(resolveAbsoluatePath('../a/b/d', '/c')).toBe('/a/b/d');
|
|
expect(resolveAbsoluatePath('../../a', 'c')).toBe('../a');
|
|
});
|
|
|
|
it('joinPath', () => {
|
|
expect(joinPath('/a', 'b', 'c')).toBe('/a/b/c');
|
|
expect(joinPath('a', 'b', 'c')).toBe('./a/b/c');
|
|
});
|
|
|
|
it('removeVersion', () => {
|
|
expect(removeVersion('@ali/fe')).toBe('@ali/fe');
|
|
expect(removeVersion('@ali/fe@1.0.0/index')).toBe('@ali/fe/index');
|
|
expect(removeVersion('haha')).toBe('haha');
|
|
});
|
|
});
|