Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document companion core functionality / test plan #3268

Closed
29 tasks
mifi opened this issue Oct 17, 2021 · 1 comment
Closed
29 tasks

Document companion core functionality / test plan #3268

mifi opened this issue Oct 17, 2021 · 1 comment
Labels
Companion The auth server (for Instagram, GDrive, etc) and upload proxy (for S3) 💬 Discussion Stale Old issues that haven't had activity recently

Comments

@mifi
Copy link
Contributor

mifi commented Oct 17, 2021

As requested by @Murderlon it could be interesting to make a list of companion’s core technical functionalities to make it easier to understand companion. Then cross off if we have tests for it and then we can write a test for something in-between other work. Over time, this also means we could do bigger refactors with more confidence.

Here is a list of companion's most important functionalities and important edge cases. Until we have tests for everything, this can also be used as kind of a test plan after when doing changes to certain functionality. Feel free to edit and add to this list and check off those we have a test for.

In the future when releasing a new major (after #3159 is merged) we could remove the streamingUpload option, and default to always download/upload concurrently (except when not possible).

  • Provider: Authenticate with error callback (which will show "Authentication Aborted" notification to user)
  • Provider: Open provider after authentication token timed out after x minutes (should show notificatoon to user)
  • Provider: Download/upload a file
    • Upload protocol: TUS
    • Upload protocol: Form Multipart
    • Upload protocol: S3 Multipart
  • Provider: Pause/resume with streamingUpload true
  • Pause/resume/cancel with streamingUpload false
    • Before upload has started (during download)
    • After upload has started (download complete)
  • Reports correct progress with streamingUpload true
  • Reports correct progress with streamingUpload false
    • Before upload has started (during download)
    • After upload has started (download complete)
  • Reports upload progress when client disconnects and reconnects to websocket while download/upload is going in companion (see socket.js)
  • URL: Download/upload a file
  • URL: Download/upload a file with a HTTP error or invalid URL
  • URL: Download/upload a file with a successful HTTP status, but connection breaks after download/upload has started
    • download connection breaks
    • upload connection breaks
  • Provider: list files
  • Provider: Google Drive: List files with a shared file in the list
  • Provider: Google Drive: List files with a shared drive
  • Provider: Google Drive: Download a shared file (export) - has no size, but should still work even with streamingUpload true
  • Client S3 support
    • non-multipart signing
    • multipart
      • create upload
      • sign single part
      • batch sign parts
      • complete upload
      • abort
  • Search provider
    • list files
    • download file
  • Make integration test with mocked provider (http server) to test many uploads (to check that streams are not leaking memory or hitting any node.js or OS limits
@mifi mifi added 💬 Discussion Companion The auth server (for Instagram, GDrive, etc) and upload proxy (for S3) labels Oct 17, 2021
@Murderlon Murderlon mentioned this issue Nov 2, 2021
11 tasks
@stale
Copy link

stale bot commented Nov 4, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the Stale Old issues that haven't had activity recently label Nov 4, 2022
@stale stale bot closed this as completed Nov 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Companion The auth server (for Instagram, GDrive, etc) and upload proxy (for S3) 💬 Discussion Stale Old issues that haven't had activity recently
Projects
None yet
Development

No branches or pull requests

1 participant