Commit Graph

4 Commits

Author SHA1 Message Date
Cacie Prins bbd7efc0dd refactor: begin to use axios for cloud api requests (#31041)
* patch axios for v8 snapshots

* export httpsAgent and httpAgent discretely

* set up axios interceptors for logging and error response transformation

* use unified error transform fn

* create instance api reqs, timeouts, tests

* move axios middleware to its own dir & refactor

* refactor error handling, enable retries in createInstance

* fix invocation of createInstance - not caught by ts because record.js is js

* retry on 500 - according to system test, this is expected behavior

* resolve snapshots, report retries to stdout

* fix cdp connection usage of shouldRetry due to newly unknown error type

* axios doesnt fully follow RequestOptions shape when adding request to https agent

* note why uri is treated as optional

* hail mary on getting axios to work with v8 snapshots

* update lockfile, force no-rewrite on more axios files

* attempt to fix v8 snapshots

* add verbose debugging to api request logging

* enable verbose api debugging on server unit tests

* fix nock pattern for createInstance

* remove request logging unit test - sinon/mocha does not assert correctly

* fix a few unit tests

* use runAllAsync rather than waiting an arbitrary time for sinon fake timer

* move create_instance spec to ts file, remove redundant test

* rm debug on ci

* clarify comment on change inpackages/network

* correct .uri property on patched RequestOptions to be optional

* rm unused log_requests.ts, DRY error messages

* resolve types with record.ts migration

---------

Co-authored-by: Ryan Manuel <ryanm@cypress.io>
2025-03-10 10:58:09 -04:00
Cacie Prins eecaaf72b8 fix: Stream monitor behavior on failed and stalled upload attempts (#29959)
* fix: rethrow stalled network request error correctly

* no longer timeout from stream monitor on failure to start - allow OS to handle

* changelog

* fix system error detection

* fix test for system error throw

* Update cli/CHANGELOG.md

* Update packages/server/test/unit/cloud/network/put_fetch_spec.ts

Co-authored-by: Bill Glesias <bglesias@gmail.com>

* rm noop try-catch

---------

Co-authored-by: Bill Glesias <bglesias@gmail.com>
2024-08-07 10:05:56 -04:00
Cacie Prins 3c28109185 fix: non-JSON response body display for upload errors (#29801)
* WIP - system test snapshots

* bolster error output for response body potential on upload network errors

* edit error output for readability

* changelog

* Update packages/server/lib/cloud/artifacts/upload_artifacts.ts

Co-authored-by: Matt Schile <mschile@cypress.io>

* fix partial rename

* fix system test for single upload error vs aggregate

---------

Co-authored-by: Matt Schile <mschile@cypress.io>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2024-07-12 14:52:40 -04:00
Cacie Prins 5f2236e6cc fix: do not re-use readstreams when retry an upload of the test replay recording (#29745)
* custom async retry for any async fn

* "proxied" fetch for PUT, throwing http errors

* cleans up put_fetch return types & parsing

* move protocol upload logic to put_protocol_artifact, rm upload_stream

* changelog

* changelog

* manually fix wsp in snapshot

* reorganizes a little, properly tests retryable logic

* removes 408 as a non-retriable error in unit test

* make expectation to be resolved more clear

* rm unnecessary type coercion

* changelog

* Update cli/CHANGELOG.md

* asyncRetry only throws Aggregate errors if there is more than one attempt

* Update packages/server/test/unit/cloud/network/is_retryable_error_spec.ts

Co-authored-by: Matt Schile <mschile@cypress.io>

* Update packages/server/test/unit/cloud/network/is_retryable_error_spec.ts

---------

Co-authored-by: Matt Schile <mschile@cypress.io>
2024-07-08 09:30:05 -04:00