apim-policy-utils
Version:
An XML file scripts maniputaling and debugging tool targeting to help working with Azure APIM Policy files in xml format.
54 lines • 2.13 kB
text/typescript
import { combineFromDirectory } from '../combiner';
import * as scriptCombiner from '../scriptCombiner';
import fs from 'fs';
jest.mock('../getVersion', () => ({
getVersion: jest.fn( () => '1.0.0'),
}));
jest.mock('../scriptCombiner', () => ({
combineScript: jest.fn(),
}));
const cwdSpy = jest.spyOn(process, 'cwd');
cwdSpy.mockReturnValue('/');
jest.mock('fs', () => ({
readdirSync: jest.fn((input) => {
console.log(input)
if (input.includes('error')){
return new Error('Failed to read directory');
} else {
const mockDirents = [
{ name: 'subdir1', isDirectory: jest.fn(() => true) },
{ name: 'subdir2', isDirectory: jest.fn(() => true) },
{ name: 'file1.txt', isDirectory: jest.fn(() => false) },
] as unknown as fs.Dirent[];
return mockDirents;
}
}),
dirent: jest.fn(),
}));
describe('combineFromDirectory', () => {
beforeEach(() => {
jest.clearAllMocks();
});
it('should call combineScript for directory in the directory', () => {
const combineScriptMock = jest.spyOn(scriptCombiner, 'combineScript');
combineFromDirectory('path/to/directory');
expect(combineScriptMock).toHaveBeenCalledTimes(2);
expect(combineScriptMock).toHaveBeenCalledWith(
'/path/to/directory/subdir1', undefined
);
expect(combineScriptMock).toHaveBeenCalledWith(
'/path/to/directory/subdir2', undefined
);
});
it('should call combineScript for directory in the directory when there is destination path', () => {
const combineScriptMock = jest.spyOn(scriptCombiner, 'combineScript');
combineFromDirectory('path/to/directory', 'path/to/destination');
expect(combineScriptMock).toHaveBeenCalledTimes(2);
expect(combineScriptMock).toHaveBeenCalledWith(
'/path/to/directory/subdir1', '/path/to/destination'
);
expect(combineScriptMock).toHaveBeenCalledWith(
'/path/to/directory/subdir2', '/path/to/destination'
);
});
});