electron-dl-manager
Version:
A library for implementing file downloads in Electron with 'save as' dialog and id support.
53 lines • 1.79 kB
JavaScript
import { EventEmitter } from "node:events";
import { generateRandomId } from "../index";
export const DownloadData = jest.fn().mockImplementation(() => {
return createMockDownloadData().downloadData;
});
export function createMockDownloadData() {
const itemEmitter = new EventEmitter();
const item = {
setSaveDialogOptions: jest.fn(),
setSavePath: jest.fn(),
getSavePath: jest.fn().mockReturnValue("/path/to/save"),
getReceivedBytes: jest.fn().mockReturnValue(900),
getTotalBytes: jest.fn().mockReturnValue(1000),
getCurrentBytesPerSecond: jest.fn(),
getPercentComplete: jest.fn(),
getStartTime: jest.fn(),
cancel: jest.fn(),
pause: jest.fn(),
resume: jest.fn(),
isPaused: jest.fn(),
getState: jest.fn(),
getFilename: jest.fn().mockReturnValue("filename.txt"),
// @ts-ignore
on: itemEmitter.on.bind(itemEmitter),
// @ts-ignore
once: itemEmitter.once.bind(itemEmitter),
// @ts-ignore
off: itemEmitter.off.bind(itemEmitter),
};
const downloadData = {
id: generateRandomId(),
cancelledFromSaveAsDialog: false,
percentCompleted: 0,
downloadRateBytesPerSecond: 0,
estimatedTimeRemainingSeconds: 0,
resolvedFilename: `${generateRandomId()}.txt`,
webContents: {},
event: {},
isDownloadInProgress: jest.fn(),
isDownloadCompleted: jest.fn(),
isDownloadCancelled: jest.fn(),
isDownloadInterrupted: jest.fn(),
isDownloadResumable: jest.fn(),
isDownloadPaused: jest.fn(),
item,
};
return {
downloadData,
item,
itemEmitter,
};
}
//# sourceMappingURL=DownloadData.js.map