setup jest files, do not replace dot after extension, incrase code-coverage, refactorings
This commit is contained in:
parent
697c78f6cc
commit
888b58c33e
|
@ -0,0 +1,6 @@
|
||||||
|
module.exports = {
|
||||||
|
presets: [
|
||||||
|
['@babel/preset-env', { targets: { node: 'current' } }],
|
||||||
|
'@babel/preset-typescript',
|
||||||
|
],
|
||||||
|
};
|
|
@ -0,0 +1,7 @@
|
||||||
|
module.exports = {
|
||||||
|
'roots': ['<rootDir>'],
|
||||||
|
'modulePaths': ['<rootDir>'],
|
||||||
|
preset: 'ts-jest',
|
||||||
|
testEnvironment: 'node',
|
||||||
|
moduleDirectories: ['node_modules'],
|
||||||
|
};
|
|
@ -21,6 +21,7 @@
|
||||||
"@types/node": "^16.11.6",
|
"@types/node": "^16.11.6",
|
||||||
"@typescript-eslint/eslint-plugin": "5.29.0",
|
"@typescript-eslint/eslint-plugin": "5.29.0",
|
||||||
"@typescript-eslint/parser": "5.29.0",
|
"@typescript-eslint/parser": "5.29.0",
|
||||||
|
"alias-hq": "^5.4.0",
|
||||||
"builtin-modules": "3.3.0",
|
"builtin-modules": "3.3.0",
|
||||||
"esbuild": "0.15.5",
|
"esbuild": "0.15.5",
|
||||||
"esbuild-jest": "^0.5.0",
|
"esbuild-jest": "^0.5.0",
|
||||||
|
@ -28,6 +29,7 @@
|
||||||
"jest": "29.0.1",
|
"jest": "29.0.1",
|
||||||
"obsidian": "latest",
|
"obsidian": "latest",
|
||||||
"prettier": "2.7.1",
|
"prettier": "2.7.1",
|
||||||
|
"ts-jest": "^28.0.8",
|
||||||
"tslib": "2.4.0",
|
"tslib": "2.4.0",
|
||||||
"typescript": "^4.7.4"
|
"typescript": "^4.7.4"
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,7 +55,14 @@ const selectFilenamesWithReplacedPath = (plugin: BulkRenamePlugin) => {
|
||||||
export const replaceFilePath = (plugin: BulkRenamePlugin, file: TFile) => {
|
export const replaceFilePath = (plugin: BulkRenamePlugin, file: TFile) => {
|
||||||
const { replacePattern, existingSymbol } = plugin.settings;
|
const { replacePattern, existingSymbol } = plugin.settings;
|
||||||
|
|
||||||
return file.path.replaceAll(existingSymbol, replacePattern);
|
const pathWithoutExtension = file.path.split('.').slice(0, -1).join('.');
|
||||||
|
|
||||||
|
const newPath = pathWithoutExtension?.replaceAll(
|
||||||
|
existingSymbol,
|
||||||
|
replacePattern,
|
||||||
|
);
|
||||||
|
|
||||||
|
return `${newPath}.${file.extension}`;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const renameFilesInObsidian = (app: App, plugin: BulkRenamePlugin) => {
|
export const renameFilesInObsidian = (app: App, plugin: BulkRenamePlugin) => {
|
||||||
|
|
|
@ -18,6 +18,26 @@ describe('File Services', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Renaming', () => {
|
describe('Renaming', () => {
|
||||||
|
it('should replace symbols in naming', () => {
|
||||||
|
const plugin = {
|
||||||
|
settings: {
|
||||||
|
replacePattern: '-',
|
||||||
|
existingSymbol: '_',
|
||||||
|
},
|
||||||
|
} as unknown as BulkRenamePlugin;
|
||||||
|
|
||||||
|
const file = {
|
||||||
|
path: 'journals/2022_10_13.md',
|
||||||
|
extension: 'md',
|
||||||
|
} as unknown as TFile;
|
||||||
|
|
||||||
|
const expectedResult = 'journals/2022-10-13.md';
|
||||||
|
|
||||||
|
const result = replaceFilePath(plugin, file);
|
||||||
|
|
||||||
|
expect(result).toEqual(expectedResult);
|
||||||
|
});
|
||||||
|
|
||||||
it('should not rename extensions', () => {
|
it('should not rename extensions', () => {
|
||||||
const plugin = {
|
const plugin = {
|
||||||
settings: {
|
settings: {
|
||||||
|
@ -28,6 +48,7 @@ describe('File Services', () => {
|
||||||
|
|
||||||
const file = {
|
const file = {
|
||||||
path: '2022.10.13.md',
|
path: '2022.10.13.md',
|
||||||
|
extension: 'md',
|
||||||
} as unknown as TFile;
|
} as unknown as TFile;
|
||||||
|
|
||||||
const expectedResult = '2022-10-13.md';
|
const expectedResult = '2022-10-13.md';
|
||||||
|
@ -36,9 +57,25 @@ describe('File Services', () => {
|
||||||
|
|
||||||
expect(result).toEqual(expectedResult);
|
expect(result).toEqual(expectedResult);
|
||||||
});
|
});
|
||||||
it.todo('should replace symbols in naming');
|
|
||||||
it.todo(
|
it('should update directory path', () => {
|
||||||
'Should rename files only in a particular directory if the name could match other directories',
|
const plugin = {
|
||||||
);
|
settings: {
|
||||||
|
replacePattern: 'days',
|
||||||
|
existingSymbol: 'journals',
|
||||||
|
},
|
||||||
|
} as unknown as BulkRenamePlugin;
|
||||||
|
|
||||||
|
const file = {
|
||||||
|
path: 'journals/2022_10_13.md',
|
||||||
|
extension: 'md',
|
||||||
|
} as unknown as TFile;
|
||||||
|
|
||||||
|
const expectedResult = 'days/2022_10_13.md';
|
||||||
|
|
||||||
|
const result = replaceFilePath(plugin, file);
|
||||||
|
|
||||||
|
expect(result).toEqual(expectedResult);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue