I am trying to get testing coverage for a base64 function like below:
export const fileToBase64 = (file: File | Blob): Promise<any> =>
new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result);
reader.onerror = error => reject(error);
});
describe('getFileBase64()', () => {
it('should convert file to base64', async () => {
const blob = new Blob();
const result = await getFileBase64(blob);
expect(result).toBe('data:');
});
it('should reject', async () => {
???
});
});
I already Googled some ways but had no luck, like spyOn(window, 'FileReader').
How should I make the coverage for line "reader.onerror = error => reject(error);" in Jasmine?

This is a solution inspired by: https://stackoverflow.com/a/67061047/8543478
Please check the comments in the code sample to see how I can able to trigger
onerror.