diff --git a/alfa-client/libs/binary-file-shared/src/lib/binary-file.service.spec.ts b/alfa-client/libs/binary-file-shared/src/lib/binary-file.service.spec.ts index 27dfda65c0234821b443e77f4c04ff361a456194..681c8d901d58d373a6102b8f1fdd1fee753b204b 100644 --- a/alfa-client/libs/binary-file-shared/src/lib/binary-file.service.spec.ts +++ b/alfa-client/libs/binary-file-shared/src/lib/binary-file.service.spec.ts @@ -122,11 +122,46 @@ describe('BinaryFileService', () => { }); describe('remove uploaded file', () => { - //Implement me + const type: FileUploadType = 'dummyType'; + const key1: string = faker.string.uuid(); + const uploadFile1: UploadFile = { + key: key1, + fileToUpload: createFile(), + uploadedFile: of(createStateResource(createBinaryFileResource())), + }; + + const key2: string = faker.string.uuid(); + const uploadFile2: UploadFile = { + key: key2, + fileToUpload: createFile(), + uploadedFile: of(createStateResource(createBinaryFileResource())), + }; + + it('should remove uploaded file', () => { + service.uploadFiles.next({ [type]: [uploadFile1, uploadFile2] }); + + service.deleteUploadedFile(type, key1); + + expect(service.uploadFiles.value[type]).toHaveLength(1); + expect(service.uploadFiles.value[type]).toContain(uploadFile2); + }); }); describe('clear uploaded files', () => { - //Implement me + const uploadFile: UploadFile = { + key: faker.string.uuid(), + fileToUpload: createFile(), + uploadedFile: of(createStateResource(createBinaryFileResource())), + }; + + it('should remove entry by type from state', () => { + const type: FileUploadType = 'dummType'; + service.uploadFiles.next({ [type]: [uploadFile] }); + + service.clearUploadedFiles(type); + + expect(service.uploadFiles.value.hasOwnProperty(type)).toBeFalsy(); + }); }); describe('upload file new', () => { diff --git a/alfa-client/libs/binary-file-shared/src/lib/binary-file.service.ts b/alfa-client/libs/binary-file-shared/src/lib/binary-file.service.ts index e7be2d1b5cc72f149145fecee24173578b65d5e6..c07b4f245bc2aedd08a61362f543e16db5f93b79 100644 --- a/alfa-client/libs/binary-file-shared/src/lib/binary-file.service.ts +++ b/alfa-client/libs/binary-file-shared/src/lib/binary-file.service.ts @@ -104,11 +104,15 @@ export class BinaryFileService { } public deleteUploadedFile(type: FileUploadType, key: string): void { - //Implement me + this.uploadFiles.value[type].splice(this.getKeyIndexOf(type, key), 1); + } + + private getKeyIndexOf(type: FileUploadType, key: string): number { + return this.uploadFiles.value[type].map((uploadFile: UploadFile) => uploadFile.key).indexOf(key); } public clearUploadedFiles(type: FileUploadType): void { - //Implement me + delete this.uploadFiles.value[type]; } //TODO Rename to uploadFileOld OR refactor all use cases to uploadFileNew