setup jest files, do not replace dot after extension, incrase code-coverage, refactorings

This commit is contained in:
Oleg 2022-08-28 13:44:46 +03:00
parent 697c78f6cc
commit 888b58c33e
6 changed files with 64 additions and 5 deletions

6
babel.config.js Normal file
View File

@ -0,0 +1,6 @@
module.exports = {
presets: [
['@babel/preset-env', { targets: { node: 'current' } }],
'@babel/preset-typescript',
],
};

0
jest-preset.js Normal file
View File

7
jest.config.js Normal file
View File

@ -0,0 +1,7 @@
module.exports = {
'roots': ['<rootDir>'],
'modulePaths': ['<rootDir>'],
preset: 'ts-jest',
testEnvironment: 'node',
moduleDirectories: ['node_modules'],
};

View File

@ -21,6 +21,7 @@
"@types/node": "^16.11.6",
"@typescript-eslint/eslint-plugin": "5.29.0",
"@typescript-eslint/parser": "5.29.0",
"alias-hq": "^5.4.0",
"builtin-modules": "3.3.0",
"esbuild": "0.15.5",
"esbuild-jest": "^0.5.0",
@ -28,6 +29,7 @@
"jest": "29.0.1",
"obsidian": "latest",
"prettier": "2.7.1",
"ts-jest": "^28.0.8",
"tslib": "2.4.0",
"typescript": "^4.7.4"
}

View File

@ -55,7 +55,14 @@ const selectFilenamesWithReplacedPath = (plugin: BulkRenamePlugin) => {
export const replaceFilePath = (plugin: BulkRenamePlugin, file: TFile) => {
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) => {

View File

@ -18,6 +18,26 @@ describe('File Services', () => {
});
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', () => {
const plugin = {
settings: {
@ -28,6 +48,7 @@ describe('File Services', () => {
const file = {
path: '2022.10.13.md',
extension: 'md',
} as unknown as TFile;
const expectedResult = '2022-10-13.md';
@ -36,9 +57,25 @@ describe('File Services', () => {
expect(result).toEqual(expectedResult);
});
it.todo('should replace symbols in naming');
it.todo(
'Should rename files only in a particular directory if the name could match other directories',
);
it('should update directory path', () => {
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);
});
});
});