Skip to content

Commit 8846d27

Browse files
committed
fix: the replace test
1 parent 7eefc1f commit 8846d27

File tree

1 file changed

+60
-30
lines changed

1 file changed

+60
-30
lines changed

test/integration/files/FilesRepository.test.ts

Lines changed: 60 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -847,10 +847,19 @@ describe('FilesRepository', () => {
847847
const testTextFile1Name = 'test-file-1.txt'
848848
const testTextFile2Name = 'test-file-2.txt'
849849
let fileId: number
850+
const testCollectionAlias = 'getFileHasBeenDeletedTestCollection'
851+
let singlepartFile: File
850852

851853
beforeAll(async () => {
852854
try {
853-
deleFileTestDatasetIds = await createDataset.execute(TestConstants.TEST_NEW_DATASET_DTO)
855+
await createCollectionViaApi(testCollectionAlias)
856+
await setStorageDriverViaApi(testCollectionAlias, 'LocalStack')
857+
deleFileTestDatasetIds = await createDataset.execute(
858+
TestConstants.TEST_NEW_DATASET_DTO,
859+
testCollectionAlias
860+
)
861+
862+
singlepartFile = await createSinglepartFileBlob()
854863
} catch (error) {
855864
throw new Error('Tests beforeAll(): Error while creating test dataset')
856865
}
@@ -909,23 +918,13 @@ describe('FilesRepository', () => {
909918

910919
const fileHasBeenDeleted = await sut.getFileHasBeenDeleted(fileId)
911920
expect(fileHasBeenDeleted).toBe(true)
921+
deletePublishedDatasetViaApi(deleFileTestDatasetIds.persistentId)
912922
})
913923

914924
test('should return True when file has been replaced', async () => {
915925
const directUploadSut: DirectUploadClient = new DirectUploadClient(sut)
916-
917-
// Upload original file
918-
await uploadFileViaApi(deleFileTestDatasetIds.numericId, testTextFile1Name).catch(() => {
919-
throw new Error(`Error while uploading file ${testTextFile1Name}`)
920-
})
921-
922-
const datasetFiles = await sut.getDatasetFiles(
923-
deleFileTestDatasetIds.numericId,
924-
latestDatasetVersionId,
925-
false,
926-
FileOrderCriteria.NAME_AZ
927-
)
928-
const originalFileId = datasetFiles.files[0].id
926+
const progressMock = jest.fn()
927+
const abortController = new AbortController()
929928

930929
const createTestFileUploadDestination = async (file: File, testDatasetId: number) => {
931930
const destination = await sut.getFileUploadDestination(testDatasetId, file)
@@ -935,16 +934,53 @@ describe('FilesRepository', () => {
935934
return destination
936935
}
937936

937+
const calculateBlobChecksum = (blob: Buffer): string => {
938+
const hash = crypto.createHash('md5')
939+
hash.update(blob)
940+
return hash.digest('hex')
941+
}
942+
943+
const fileArrayBuffer = await singlepartFile.arrayBuffer()
944+
const fileBuffer = Buffer.from(fileArrayBuffer)
945+
946+
const destination = await createTestFileUploadDestination(
947+
singlepartFile,
948+
deleFileTestDatasetIds.numericId
949+
)
950+
951+
const actualStorageId = await directUploadSut.uploadFile(
952+
deleFileTestDatasetIds.numericId,
953+
singlepartFile,
954+
progressMock,
955+
abortController,
956+
destination
957+
)
958+
959+
const uploadedFileDTO = {
960+
fileName: singlepartFile.name,
961+
storageId: actualStorageId,
962+
checksumType: 'md5',
963+
checksumValue: calculateBlobChecksum(fileBuffer),
964+
mimeType: singlepartFile.type
965+
}
966+
// Upload original file
967+
await sut.addUploadedFilesToDataset(deleFileTestDatasetIds.numericId, [uploadedFileDTO])
968+
969+
const originalDatasetFiles = await sut.getDatasetFiles(
970+
deleFileTestDatasetIds.numericId,
971+
DatasetNotNumberedVersion.LATEST,
972+
true,
973+
FileOrderCriteria.NAME_AZ
974+
)
975+
const originalFileId = originalDatasetFiles.files[0].id
976+
938977
// Create a new file and replace the original file
939978
const newFileBlob = await createSinglepartFileBlob(testTextFile2Name, 2000)
940979
const newDestination = await createTestFileUploadDestination(
941980
newFileBlob,
942981
deleFileTestDatasetIds.numericId
943982
)
944983

945-
const progressMock = jest.fn()
946-
const abortController = new AbortController()
947-
948984
const newStorageId = await directUploadSut.uploadFile(
949985
deleFileTestDatasetIds.numericId,
950986
newFileBlob,
@@ -953,20 +989,14 @@ describe('FilesRepository', () => {
953989
newDestination
954990
)
955991

956-
const fileArrayBuffer = await newFileBlob.arrayBuffer()
957-
const fileBuffer = Buffer.from(fileArrayBuffer)
958-
959-
const calculateBlobChecksum = (blob: Buffer): string => {
960-
const hash = crypto.createHash('md5')
961-
hash.update(blob)
962-
return hash.digest('hex')
963-
}
992+
const fileArrayBuffer2 = await newFileBlob.arrayBuffer()
993+
const fileBuffer2 = Buffer.from(fileArrayBuffer2)
964994

965995
const newUploadedFileDTO = {
966996
fileName: newFileBlob.name,
967997
storageId: newStorageId,
968998
checksumType: 'md5',
969-
checksumValue: calculateBlobChecksum(fileBuffer),
999+
checksumValue: calculateBlobChecksum(fileBuffer2),
9701000
mimeType: newFileBlob.type
9711001
}
9721002

@@ -980,12 +1010,12 @@ describe('FilesRepository', () => {
9801010
const isDeleted = await sut.getFileHasBeenDeleted(originalFileId)
9811011
expect(isDeleted).toBe(true)
9821012
})
983-
})
9841013

985-
test('should return error when file does not exist', async () => {
986-
const expectedError = new ReadError(`[404] File with ID ${nonExistentFiledId} not found.`)
1014+
test('should return error when file does not exist', async () => {
1015+
const expectedError = new ReadError(`[404] File with ID ${nonExistentFiledId} not found.`)
9871016

988-
await expect(sut.getFileHasBeenDeleted(nonExistentFiledId)).rejects.toThrow(expectedError)
1017+
await expect(sut.getFileHasBeenDeleted(nonExistentFiledId)).rejects.toThrow(expectedError)
1018+
})
9891019
})
9901020

9911021
describe('restrictFile', () => {

0 commit comments

Comments
 (0)