Browse Source

fix: fix ClientRequest.getUploadProgress (#21388)

Jeremy Apthorp 5 years ago
parent
commit
092e00f7f0
2 changed files with 12 additions and 1 deletions
  1. 1 1
      lib/browser/api/net.js
  2. 11 0
      spec-main/api-net-spec.ts

+ 1 - 1
lib/browser/api/net.js

@@ -454,7 +454,7 @@ class ClientRequest extends Writable {
   }
 
   getUploadProgress () {
-    return { ...this._uploadProgress } || { active: false }
+    return this._uploadProgress ? { ...this._uploadProgress } : { active: false }
   }
 }
 

+ 11 - 0
spec-main/api-net-spec.ts

@@ -1205,6 +1205,17 @@ describe('net module', () => {
       })
     })
 
+    it('should report upload progress', async () => {
+      const serverUrl = await respondOnce.toSingleURL((request, response) => {
+        response.end()
+      })
+      const netRequest = net.request({ url: serverUrl, method: 'POST' })
+      expect(netRequest.getUploadProgress()).to.deep.equal({ active: false })
+      netRequest.end(Buffer.from('hello'))
+      const [position, total] = await emittedOnce(netRequest, 'upload-progress')
+      expect(netRequest.getUploadProgress()).to.deep.equal({ active: true, started: true, current: position, total })
+    })
+
     it('should emit error event on server socket destroy', async () => {
       const serverUrl = await respondOnce.toSingleURL((request) => {
         request.socket.destroy()