Skip to content

Conversation

SgtPooki
Copy link
Member

@SgtPooki SgtPooki commented Aug 12, 2025

Fix E2E tests for bring-your-own Kubo node functionality

Problem

E2E tests were failing when using E2E_API_URL to connect to an existing Kubo node. The test setup wasn't properly handling the external node scenario.

The external node was needed to test new log/tail and get log level API functionality, see #2392 for more details.

Root Cause

The E2E_API_URL functionality was broken because:

  1. ipfs-backend.js wasn't creating the required ipfs-backend.json file when connecting to an existing node
  2. global-setup.js expected this file to exist but it was never created
  3. Playwright configuration had redundant webServer setup that conflicted with the external node scenario

Solution

1. Fixed E2E_API_URL Support

  • Modified global-setup.js: Added proper handling for E2E_API_URL environment variable, including port extraction and backend setup
  • Updated ipfs-backend.js: Fixed to create ipfs-backend.json file even when connecting to existing node via E2E_API_URL
  • Simplified Playwright config: Removed redundant webServer configuration that was conflicting with external node setup

2. Updated Dependencies for Compatibility

After fixing the E2E_API_URL issue, we updated several dependencies to their latest versions for better compatibility and to resolve any potential conflicts:

Updated dependencies:

  • @multiformats/multiaddr: ^12.1.14^12.5.1
  • @multiformats/multiaddr-to-uri: ^9.0.7^11.0.2
  • kubo-rpc-client: ^5.0.2^5.2.0
  • ipfsd-ctl: ^14.1.0^15.0.2
  • kubo: ^0.32.1^0.36.0
  • multiformats: ^13.0.1^13.4.0
Details 🔍 Getting detailed dependency changes for all updated packages in 59ec535 to HEAD...

Found 5 package updates:

📦 @multiformats/multiaddr-to-uri: 9.0.7 → 11.0.2
⚠️ MAJOR VERSION BUMP - Potential breaking changes!
📋 GitHub: https://github.com/multiformats/js-multiaddr-to-uri
🔗 Compare: multiformats/js-multiaddr-to-uri@v9.0.7...v11.0.2
📝 Releases between v9.0.7 and v11.0.2:

Breaking Changes:
• [11.0.0] p2p-webrtc-direct/p2p-websocket-star support has been removed
• [10.0.0] dns addresses previously returned domain names, now they return URLs

Other:
• [11.0.2] dev: bump aegir from 45.2.1 to 47.0.18 (#167) (b1c3cbc)
• [11.0.1] refactor to not use deprecated multiaddr functions (#168) (a0f1751)
• [11.0.0] p2p-webrtc-direct/p2p-websocket-star support has been removed
• [11.0.0] remove deprecated transports and do not append peer ids (#155) (161329c)
• [11.0.0] dev: bump aegir from 44.1.4 to 45.0.1 (#156) (b82d7c0)
• [10.1.2] handle ports in multiaddrs with SNI tuples (#154) (9fd5bdb)
• [10.1.1] dev: bump aegir from 43.0.3 to 44.1.4 (#153) (d6cc0a0)
• [10.1.0] add support for http-path (#148) (65aa537)
• [10.1.0] dev: bump aegir from 42.2.11 to 43.0.1 (#147) (266001f)
• [10.0.1] rename master to main (81d94e5)
• [10.0.1] update readme (3f42a05)
• [10.0.0] dns addresses previously returned domain names, now they return URLs
• [10.0.0] always return a URI for DNS addresses (#130) (dae8350), closes #8
• [9.0.8] add or force update .github/workflows/js-test-and-release.yml (#137) (1b886c6)
• [9.0.8] delete templates [skip ci] (#136) (92fae51)
• [9.0.8] dev: bump aegir from 39.0.13 to 41.0.5 (#145) (a90dca4)
• [9.0.7] support /dns addresses (#129) (c852bfc), closes #9

================================================================================

📦 kubo-rpc-client: 5.0.2 → 5.2.0
📋 GitHub: https://github.com/ipfs/js-kubo-rpc-client
🔗 Compare: ipfs/js-kubo-rpc-client@v5.0.2...v5.2.0
📝 Releases between v5.0.2 and v5.2.0:

Other:
• [5.2.0] support pin.update (#337) (c66360a)
• [5.2.0] Create FUNDING.json for OP RPF (#273) (1ab7941)
• [5.1.0] support name in pin.ls (#260) (df1d483), closes /docs.ipfs.tech/reference/kubo/rpc/#api-v0
• [5.1.0] bump @multiformats/multiaddr-to-uri from 10.1.2 to 11.0.0 (#249) (dafa529)
• [5.1.0] bump parse-duration from 1.1.2 to 2.1.2 (#257) (3d28859)
• [5.1.0] dev: bump nock from 13.5.6 to 14.0.1 (#259) (06f6f1e)
• [5.0.2] dev: bump aegir from 44.1.4 to 45.0.0 (#248) (72910b3)
• [5.0.2] dev: bump sinon from 18.0.1 to 19.0.2 (#245) (c612761)

================================================================================

📦 multiformats: 13.0.1 → 13.4.0
📋 GitHub: https://github.com/multiformats/js-multiformats
🔗 Compare: multiformats/js-multiformats@v13.0.1...v13.4.0
📝 Releases between v13.0.1 and v13.4.0:

Other:
• [13.4.0] support truncating digests (#329) (e4d3a22), closes #328
• [13.3.7] dev: bump @types/node from 22.15.31 to 24.0.0 (#326) (bbb518e)
• [13.3.6] remove package-lock.json (#324) (c65d07e)
• [13.3.6] dev: bump aegir from 46.0.0 to 47.0.6 (#325) (ea828e1)
• [13.3.5] perf: improve rfc4648 base decoding (#323) (900b5f6)
• [13.3.4] dev: bump @types/node from 22.15.17 to 22.15.18 (#319) (dbf6eb5)
• [13.3.3] dev: bump aegir from 45.2.1 to 46.0.0 (#317) (5fcf67b)
• [13.3.2] add missing base36 from default multibases (#315) (d03762a)
• [13.3.1] adjust examples for new linting rules (adc534b)
• [13.3.1] dev: bump aegir from 44.1.4 to 45.0.0 (1cd48bf)
• [13.3.0] add hasCode to Digest (#308) (a5fbf61)
• [13.2.4] fix linting (9d24b62)
• [13.2.4] dev: bump aegir from 43.0.3 to 44.1.1 (a0fdb76)
• [13.2.3] CID.parse(base36) (#307) (892f198)
• [13.2.2] dev: bump @types/node from 20.14.13 to 22.0.0 (2b65321)
• [13.2.0] BlockCodec methods are generic (2ee062e)
• [13.1.3] dev: bump @stablelib/sha512 from 1.0.1 to 2.0.0 (3091935)
• [13.1.2] dev: bump @stablelib/sha256 from 1.0.1 to 2.0.0 (bc7f8a5)
• [13.1.1] dev: bump aegir from 42.2.11 to 43.0.1 (bc14c48)
• [13.1.0] support decoding ArrayBuffers (#287) (e7f3272)
• [13.1.0] Update .github/dependabot.yml [skip ci] (aa9c730)
• [13.0.1] dev: bump aegir from 41.3.5 to 42.1.0 (12c8686)

================================================================================

📦 ipfsd-ctl: 14.1.0 → 15.0.2
⚠️ MAJOR VERSION BUMP - Potential breaking changes!
📋 GitHub: https://github.com/ipfs/js-ipfsd-ctl
🔗 Compare: ipfs/js-ipfsd-ctl@v14.1.0...v15.0.2
📝 Releases between v14.1.0 and v15.0.2:

Breaking Changes:
• [15.0.0] uses [email protected] deps

Other:
• [15.0.2] return gateway href in .info response (#850) (c9dafd0)
• [15.0.1] dev: bump aegir from 44.1.4 to 45.0.1 (#848) (93dd0e5)
• [15.0.1] dev: bump kubo from 0.30.0 to 0.32.0 (#849) (f1f9f5c)
• [15.0.0] uses [email protected] deps
• [15.0.0] update libp2p deps to 2.x.x (#846) (04479ec)
• [14.1.3] stop daemon even if offline (#845) (8a07395)
• [14.1.2] dev: bump kubo from 0.28.0 to 0.30.0 (#843) (c1ca2a4)
• [14.1.1] dev: bump aegir from 42.2.11 to 44.1.0 (#842) (26aea4a)
• [14.1.0] add server.clean method (#830) (855bec9)

================================================================================

📦 kubo: 0.32.1 → 0.36.0
📋 GitHub: https://github.com/ipfs/npm-kubo
🔗 Compare: ipfs/npm-kubo@v0.32.1...v0.36.0
📝 No releases found between v0.32.1 and v0.36.0

================================================================================

These updates ensure all dependencies are using compatible versions and have access to the latest features and bug fixes.

Result

E2E tests now properly support connecting to external Kubo nodes via E2E_API_URL environment variable, with all dependencies updated to their latest compatible versions.

@SgtPooki SgtPooki requested a review from a team as a code owner August 12, 2025 16:39
Copy link
Member Author

@SgtPooki SgtPooki left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

self review

@SgtPooki SgtPooki mentioned this pull request Aug 12, 2025
5 tasks
@SgtPooki SgtPooki merged commit 0883cfa into main Aug 12, 2025
21 checks passed
@SgtPooki SgtPooki deleted the test/fix-byo-node branch August 12, 2025 17:09
ipfs-gui-bot pushed a commit that referenced this pull request Sep 17, 2025
## [4.9.0](v4.8.0...v4.9.0) (2025-09-17)

 CID `bafybeietkqxghs3hm56e3w64s4papqlvvzqzjigs4eyuy24plkpz652fee`

 ---

### Features

* add Agent Version column to peers table ([#2433](#2433)) ([614f30d](614f30d)), closes [ipfs/kubo#9465](ipfs/kubo#9465) [ipfs/js-kubo-rpc-client#342](ipfs/js-kubo-rpc-client#342) [ipfs/kubo#9465](ipfs/kubo#9465)
* add close button to file viewer for improved navigation ([#2401](#2401)) ([84969a5](84969a5))
* add diagnostics screen ([#2392](#2392)) ([f3a8179](f3a8179)), closes [#2424](#2424) [ipfs-check#102](ipfs/ipfs-check#102) [/github.com/ipfs/ipfs-check/pull/102#pullrequestreview-3214396503](https://github.com/ipfs//github.com/ipfs/ipfs-check/pull/102/issues/pullrequestreview-3214396503) [#2434](#2434)
* **files:** advanced sorting options ([#2421](#2421)) ([c9251eb](c9251eb))
* migrate Tooltip from Javascript to Typescript ([#2381](#2381)) ([dc9e9ac](dc9e9ac))

### Bug Fixes

* create redux-bundler migration helpers ([#2388](#2388)) ([d1fdb87](d1fdb87))
* display UX friendly error for missing files ([#2346](#2346)) ([d4e7fca](d4e7fca))
* **files:** rename in Grid View ([#2422](#2422)) ([e39bce6](e39bce6))
* **i18n:** prevent English replacements in translation sync workflow ([#2418](#2418)) ([323c59e](323c59e))
* macos input focus issue in draggable regions ([#2416](#2416)) ([5382688](5382688))
* migrate error boundary to typescript ([#2402](#2402)) ([b33775a](b33775a))
* **navbar:**  highlighting on browser back ([#2425](#2425)) ([cec6dfd](cec6dfd))
* Prevent layout breaks with long filenames in file preview ([#2415](#2415)) ([f82efcd](f82efcd))
* reference to `global` in browser environment ([#2408](#2408)) ([03b2e92](03b2e92))
* shared max for bandwidth chart ([#2426](#2426)) ([cd17032](cd17032))
* typecheck more files ([#2409](#2409)) ([fb967ee](fb967ee))

### Tests

* fix bring-your-own kubo node functionality ([#2396](#2396)) ([0883cfa](0883cfa))
* make e2e tests more robust ([#2438](#2438)) ([3de544b](3de544b))

### Trivial Changes

* **readme:** update links ([dc6f8f4](dc6f8f4))
* remove selectApiUrl selector ([#2412](#2412)) ([d4710e8](d4710e8))
@ipfs-gui-bot
Copy link
Collaborator

🎉 This PR is included in version 4.9.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support truncated hashes Support /dns/ Handling of /dnsaddr/example.com
2 participants