From 37d8a228299bdb585c198da30eda23dbbbcc6114 Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Mon, 8 Aug 2022 14:01:38 +0300 Subject: [PATCH] Report last reported sync progress before returning result --- .gitignore | 4 +++- src/tasks/LargeFileUploadTask.ts | 14 +++++++++----- test/common/tasks/LargeFileUploadTask.ts | 2 +- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 077d0e37f..32c847494 100644 --- a/.gitignore +++ b/.gitignore @@ -26,4 +26,6 @@ samples/lib/ test/development/secrets.ts -.nyc_output/* \ No newline at end of file +.nyc_output/* + +.idea/* \ No newline at end of file diff --git a/src/tasks/LargeFileUploadTask.ts b/src/tasks/LargeFileUploadTask.ts index 31bd4229a..b9ecd5956 100644 --- a/src/tasks/LargeFileUploadTask.ts +++ b/src/tasks/LargeFileUploadTask.ts @@ -263,8 +263,8 @@ export class LargeFileUploadTask { * (rawResponse.status === 200 && responseBody.id) -> This additional condition is applicable only for OneDrive API. */ if (rawResponse.status === 201 || (rawResponse.status === 200 && responseBody.id)) { - const uploadResult = UploadResult.CreateUploadResult(responseBody, rawResponse.headers); - return uploadResult; + this.reportProgress(uploadEventHandlers, nextRange); + return UploadResult.CreateUploadResult(responseBody, rawResponse.headers); } /* Handling the API issue where the case of Outlook upload response property -'nextExpectedRanges' is not uniform. @@ -275,9 +275,13 @@ export class LargeFileUploadTask { nextExpectedRanges: responseBody.NextExpectedRanges || responseBody.nextExpectedRanges, }; this.updateTaskStatus(res); - if (uploadEventHandlers && uploadEventHandlers.progress) { - uploadEventHandlers.progress(nextRange, uploadEventHandlers.extraCallbackParam); - } + this.reportProgress(uploadEventHandlers, nextRange); + } + } + + private reportProgress(uploadEventHandlers: UploadEventHandlers, nextRange: Range) { + if (uploadEventHandlers && uploadEventHandlers.progress) { + uploadEventHandlers.progress(nextRange, uploadEventHandlers.extraCallbackParam); } } diff --git a/test/common/tasks/LargeFileUploadTask.ts b/test/common/tasks/LargeFileUploadTask.ts index a6d498201..754a2bc65 100644 --- a/test/common/tasks/LargeFileUploadTask.ts +++ b/test/common/tasks/LargeFileUploadTask.ts @@ -177,7 +177,7 @@ describe("LargeFileUploadTask.ts", () => { assert.isDefined(result); assert.instanceOf(result, UploadResult); assert.equal(result["location"], location); - assert.isFalse(isProgressReportCalled); + assert.isTrue(isProgressReportCalled); }); it("Test without progress callback", async () => {