better mocking of FileReader and events
This commit is contained in:
parent
ade4216642
commit
7416534ab8
3 changed files with 35 additions and 20 deletions
|
@ -1,19 +1,35 @@
|
|||
import { DataFileServiceImpl } from './datafile.service.impl';
|
||||
import { Mock } from 'ts-mocks';
|
||||
|
||||
|
||||
describe("DataFileServiceImpl", () => {
|
||||
var dataFileServiceImpl: DataFileServiceImpl;
|
||||
var fileReaderMock: Mock<FileReader>;
|
||||
var fileReader: FileReader;
|
||||
|
||||
beforeEach(() => {
|
||||
dataFileServiceImpl = new DataFileServiceImpl();
|
||||
fileReaderMock = new Mock<FileReader>();
|
||||
fileReader = fileReaderMock.Object;
|
||||
dataFileServiceImpl = new DataFileServiceImpl(() => fileReader);
|
||||
});
|
||||
|
||||
describe("blobToString", () => {
|
||||
|
||||
beforeEach(() => {
|
||||
fileReaderMock.setup(mock => mock.readAsText).is((blob: Blob) => {
|
||||
fileReaderMock.Object.onload(<any>{target: {result: blob.toString()}});
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe("arrayToString", () => {
|
||||
|
||||
beforeEach(() => {
|
||||
fileReaderMock.setup(mock => mock.readAsArrayBuffer).is((blob: Blob) => {
|
||||
fileReaderMock.Object.onload(<any>{target: {result: blob.toString()}});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("readDataArrayAsPossibleArchive", () => {
|
||||
|
|
|
@ -8,9 +8,13 @@ declare const Untar: (uint8Array: Uint8Array) => void;
|
|||
@Injectable(DataFileService.name)
|
||||
export class DataFileServiceImpl implements DataFileService {
|
||||
|
||||
constructor(private fileReaderFactory: () => FileReader) {
|
||||
|
||||
}
|
||||
|
||||
public blobToString(blob: any, callback: (result: string) => void): void {
|
||||
var reader: FileReader = new FileReader();
|
||||
reader.onload = (event: Event) => callback(reader.result);
|
||||
reader.onload = (event: Event) => callback(event.target['result']);
|
||||
reader.readAsText(blob);
|
||||
}
|
||||
|
||||
|
|
Reference in a new issue