Emily Hou 6 лет назад
Родитель
Сommit
59ba89262f
3 измененных файлов с 19 добавлено и 3 удалено
  1. 0 1
      app/api.js
  2. 2 1
      server/routes/download.js
  3. 17 1
      test/frontend/tests/workflow-tests.js

+ 0 - 1
app/api.js

@@ -169,7 +169,6 @@ function download(id, keychain, onprogress, canceller) {
     const auth = await keychain.authHeader();
     xhr.open('get', `/api/download/${id}`);
     xhr.setRequestHeader('Authorization', auth);
-    xhr.setRequestHeader('Connection', 'close');
     xhr.responseType = 'blob';
     xhr.send();
     onprogress([0, 1]);

+ 2 - 1
server/routes/download.js

@@ -21,10 +21,11 @@ module.exports = async function(req, res) {
       file_stream.destroy();
     });
 
-    file_stream.on('close', async () => {
+    file_stream.on('end', async () => {
       if (cancelled) {
         return;
       }
+
       const dl = meta.dl + 1;
       const dlimit = meta.dlimit;
       try {

+ 17 - 1
test/frontend/tests/workflow-tests.js

@@ -134,7 +134,23 @@ describe('Upload / Download flow', function() {
     }
   });
 
-  it('can cancel and not increase download count', async function() {
+  it('can increase download count on download', async function() {
+    const fs = new FileSender(blob);
+    const file = await fs.upload();
+    const fr = new FileReceiver({
+      secretKey: file.toJSON().secretKey,
+      id: file.id,
+      nonce: file.keychain.nonce,
+      requiresPassword: false
+    });
+    await fr.getMetadata();
+
+    await fr.download(noSave);
+    await file.updateDownloadCount();
+    assert.equal(file.dtotal, 1);
+  });
+
+  it('does not increase download count when download cancelled', async function() {
     const fs = new FileSender(blob);
     const file = await fs.upload();
     const fr = new FileReceiver({