Skip to content

Conversation

@janb87
Copy link
Contributor

@janb87 janb87 commented Oct 8, 2025

Summary by cubic

Prevented beforeAll timeouts and enabled concurrent e2e test runs to speed up execution. Updated the GraphQL schema with new fields and deprecations used by the tests.

  • Bug Fixes

    • Increased the default test timeout with setDefaultTimeout to avoid beforeAll timing out.
    • Enabled concurrent tests via Bun’s concurrentTestGlob.
    • Ensured cleanup runs in afterAll and exits the process to prevent hangs.
  • New Features

    • Added kitId to BlockchainNetwork types and interface.
    • Added artifactsImageTag to Besu networks; removed genesisArtifactsTag.
    • Added isPreRelease to Kit.
    • Updated ConsensusAlgorithm: added Base and Linea; removed Sonic variants.
    • Deprecated mis-cased Muir Glacier fields in Geth/Quorum genesis inputs with clear reasons.

Note

Updates dev scripts to watch ./src, switches the e2e restart test to target a blockchain node with new expectations, and increases setup timeout; removes a large generated GraphQL types file.

  • Tests:
    • Switch e2e restart flow to blockchain-node using NODE_NAME_3_WITHOUT_PK; update expected output strings.
    • Extend setup timeout in test/scripts/setup-platform-resources.ts via setDefaultTimeout(1h).
  • Build/Dev Scripts:
    • Change dev script across multiple packages (sdk/mcp, sdk/minio, sdk/next, sdk/portal, sdk/thegraph, sdk/utils, sdk/viem) to tsdown --watch ./src.
  • Cleanup:
    • Remove generated GraphQL introspection types file sdk/test/test-app/portal-env.d.ts.

Written by Cursor Bugbot for commit 7f6135b. This will update automatically on new commits. Configure here.

Copy link
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

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

Sorry @janb87, your pull request is larger than the review limit of 150000 diff characters

@dosubot dosubot bot added the size:M This PR changes 30-99 lines, ignoring generated files. label Oct 8, 2025
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @janb87, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request by janb87 addresses test infrastructure improvements by configuring concurrent test execution and extending beforeAll hook timeouts. It also includes substantial updates to the GraphQL schema, introducing new fields like artifactsImageTag, kitId, and isPreRelease, modifying ConsensusAlgorithm enum values, and deprecating certain fields.

Highlights

  • Intent: This pull request primarily aims to address a timeout issue with beforeAll hooks in tests and enable concurrent test execution. Additionally, it includes significant updates to the GraphQL schema.
  • Key Changes: - Test Configuration (bunfig.toml): Configured Bun to run tests concurrently by adding concurrentTestGlob="./test/**/*.test.ts".
  • Test Setup (test/scripts/setup-platform-resources.ts): Increased the default timeout for beforeAll hooks to 10 minutes (setDefaultTimeout(1000 * 60 * 10)) to prevent premature timeouts. The afterAll hook was also updated to explicitly call process.exit(1) after cleanup.
  • GraphQL Schema (sdk/js/schema.graphql): This file received several updates:
    • Added artifactsImageTag: String to BesuIbftv2BlockchainNetwork and BesuQBFTBlockchainNetwork types.
    • Added kitId: String to various BlockchainNetwork types (e.g., BesuIbftv2BlockchainNetwork, CordaBlockchainNetwork, FabricRaftBlockchainNetwork, GethCliqueBlockchainNetwork, PolygonEdgePoABlockchainNetwork, PolygonSupernetBlockchainNetwork, PublicEvmBlockchainNetwork, QuorumQBFTBlockchainNetwork, TezosBlockchainNetwork, TezosTestnetBlockchainNetwork) and the BlockchainNetwork interface.
    • Added isPreRelease: Boolean! to the Kit type.
    • Removed genesisArtifactsTag: String from BesuIbftv2BlockchainNetwork and BesuQBFTBlockchainNetwork.
    • Added new ConsensusAlgorithm enum values: BASE_MAINNET, BASE_SEPOLIA, LINEA_MAINNET, LINEA_SEPOLIA.
    • Removed SONIC_BLAZE and SONIC_MAINNET from the ConsensusAlgorithm enum.
    • Deprecated muirGlacierblock and muirglacierblock fields in GethGenesisConfigInput and QuorumGenesisConfigInput, recommending muirGlacierBlock instead.
  • Reviewer Activity: No specific reviewer activity to report at this time.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@github-actions github-actions bot added the qa:running QA workflow is currently running label Oct 8, 2025
@github-actions
Copy link

github-actions bot commented Oct 8, 2025

To view in Slack, search for: 1759925529.574969

@github-actions github-actions bot added the status:ready-for-review Pull request is ready for review label Oct 8, 2025
cursor[bot]

This comment was marked as outdated.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a couple of important changes to the testing setup, namely enabling concurrent test execution and adjusting timeouts. While these are good steps, there are a couple of critical issues in the implementation that need to be addressed. I've left detailed comments on them.

@dosubot dosubot bot added the fix Bug fix label Oct 8, 2025
@github-actions
Copy link

github-actions bot commented Oct 8, 2025

📦 Packages

Package NPM Docker
SDK Cli @settlemint/sdk-cli@2.6.2-predd71073
SDK The Graph @settlemint/sdk-thegraph@2.6.2-predd71073
SDK Portal @settlemint/sdk-portal@2.6.2-predd71073
SDK Hasura @settlemint/sdk-hasura@2.6.2-predd71073
SDK JS @settlemint/sdk-js@2.6.2-predd71073
SDK Utils @settlemint/sdk-utils@2.6.2-predd71073
SDK Next @settlemint/sdk-next@2.6.2-predd71073
SDK Minio @settlemint/sdk-minio@2.6.2-predd71073
SDK IPFS @settlemint/sdk-ipfs@2.6.2-predd71073
SDK Blockscout @settlemint/sdk-blockscout@2.6.2-predd71073
SDK MCP @settlemint/sdk-mcp@2.6.2-predd71073
SDK Viem @settlemint/sdk-viem@2.6.2-predd71073
SDK EAS @settlemint/sdk-eas@2.6.2-predd71073

@github-actions github-actions bot added qa:success QA workflow passed successfully and removed qa:running QA workflow is currently running labels Oct 8, 2025
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

@dosubot
Copy link

dosubot bot commented Oct 8, 2025

Related Documentation

Checked 6 published document(s). No updates required.

You have 10 draft document(s). Publish docs to keep them always up-to-date

How did I do? Any feedback?  Join Discord

@coderabbitai
Copy link

coderabbitai bot commented Oct 8, 2025

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

📝 Walkthrough

Walkthrough

  • bunfig.toml: Restores coverageSkipTestFiles = true and adds concurrentTestGlob = "./test/**/*.test.ts".
  • sdk/js/schema.graphql: Adds artifactsImageTag and kitId fields across multiple blockchain network types and interfaces; adds isPreRelease (Boolean!) to Kit; expands ConsensusAlgorithm with BASE_MAINNET, BASE_SEPOLIA, LINEA_MAINNET, LINEA_SEPOLIA; removes genesisArtifactsTag from BesuIbftv2BlockchainNetwork and BesuQBFTBlockchainNetwork; deprecates muirGlacierblock/muirglacierblock in favor of muirGlacierBlock.
  • test/scripts/setup-platform-resources.ts: Sets default test timeout to 10 minutes via setDefaultTimeout(1000 * 60 * 10); adds early return in cleanup when DISABLE_WORKSPACE_DELETE is true and force is not set; changes afterAll to await cleanup() then call process.exit(1).

Possibly related PRs

Suggested labels

fix

Pre-merge checks

❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Title Check ⚠️ Warning The title focuses on e2e tests and concurrent execution but omits the substantial GraphQL schema updates and public API additions introduced in this pull request, so it does not adequately capture the main scope of changes. Revise the title to succinctly reflect both the test configuration fixes and the key GraphQL schema enhancements (for example, adding artifactsImageTag, kitId, and new consensus options) to clearly convey all major changes.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed The pull request description directly references the test timeout increase, concurrent test execution settings, cleanup changes, and GraphQL schema enhancements that correspond to the modifications in bunfig.toml, setup scripts, and schema.graphql, so it is clearly related to the actual changeset.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 7b51a09 and e96b762.

📒 Files selected for processing (3)
  • bunfig.toml (1 hunks)
  • sdk/js/schema.graphql (19 hunks)
  • test/scripts/setup-platform-resources.ts (3 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
**/*.{ts,tsx}

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.{ts,tsx}: Do not use default exports in TypeScript (except when a framework requires it)
Use import type for type-only imports in TypeScript
Prefer interfaces over type aliases for object shapes
Never use any; use unknown or proper types instead
Use discriminated unions for error handling
File names should be kebab-case
Use camelCase for variable and function names
Use PascalCase for types, interfaces, and classes
Use UPPER_SNAKE_CASE for constants
Prefer nullish coalescing (??) over logical OR (||)
Use early returns to reduce nesting
Extract complex logic into well-named functions
Keep functions small and focused
Use structured logging with proper context

**/*.{ts,tsx}: Inside generic functions, using any for concise type narrowing is acceptable; outside of generics, use any extremely sparingly
Avoid default exports unless explicitly required by the framework (e.g., Next.js pages)
Use discriminated unions to model variant data and avoid 'bag of optionals'
Handle discriminated unions with switch statements over the discriminant
Do not introduce new enums; prefer as const objects for enum-like behavior; retain existing enums
Use top-level import type when importing types instead of inline import { type ... }
Prefer interface extends over intersection types (&) for modeling inheritance; use & only when extends is not possible
Use JSDoc comments to annotate functions and types when behavior isn’t obvious; keep comments concise
Use JSDoc inline @link to reference related functions and types within the same file
File names should be kebab-case (e.g., my-component.ts)
Use camelCase for variables and function names
Use UpperCamelCase (PascalCase) for classes, types, and interfaces
Use ALL_CAPS for constants (and enum values where enums already exist)
Prefix generic type parameters with T (e.g., TKey, TValue)
Be mindful of noUncheckedIndexedAccess: treat indexed object/array access as possibly undefined
Use optional properties sparingly; prefer required prop...

Files:

  • test/scripts/setup-platform-resources.ts
test/**/*.{ts,tsx}

📄 CodeRabbit inference engine (CLAUDE.md)

Create end-to-end tests for CLI commands

Files:

  • test/scripts/setup-platform-resources.ts
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/bun.mdc)

Use Bun.File() for file reading and writing

Files:

  • test/scripts/setup-platform-resources.ts
🧠 Learnings (2)
📚 Learning: 2025-10-06T23:18:37.400Z
Learnt from: CR
PR: settlemint/sdk#0
File: .cursor/rules/bun.mdc:0-0
Timestamp: 2025-10-06T23:18:37.400Z
Learning: Applies to {package.json,**/jest.config.@(js|ts|cjs|mjs)} : Use `bun run test` (Bun test runner) instead of Jest

Applied to files:

  • test/scripts/setup-platform-resources.ts
📚 Learning: 2025-10-06T23:18:37.400Z
Learnt from: CR
PR: settlemint/sdk#0
File: .cursor/rules/bun.mdc:0-0
Timestamp: 2025-10-06T23:18:37.400Z
Learning: Applies to {package.json,**/vitest.config.@(js|ts|cjs|mjs)} : Use `bun run test` (Bun test runner) instead of Vitest

Applied to files:

  • test/scripts/setup-platform-resources.ts
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: cubic · AI code reviewer
  • GitHub Check: QA
  • GitHub Check: QA
🔇 Additional comments (2)
bunfig.toml (1)

9-9: Fix TOML syntax for concurrentTestGlob.

concurrentTestGlob="./test/**/*.test.ts" violates the TOML key/value separator rule (requires whitespace after =), so bun won’t be able to parse this section. Please add the missing spaces.

-concurrentTestGlob="./test/**/*.test.ts"
+concurrentTestGlob = "./test/**/*.test.ts"
⛔ Skipped due to learnings
Learnt from: CR
PR: settlemint/sdk#0
File: CLAUDE.md:0-0
Timestamp: 2025-10-06T23:17:27.585Z
Learning: Applies to **/*.{test,spec}.{ts,tsx} : Test error scenarios
Learnt from: CR
PR: settlemint/sdk#0
File: CLAUDE.md:0-0
Timestamp: 2025-10-06T23:17:29.417Z
Learning: Applies to **/*.{test,spec}.{ts,tsx} : Test error scenarios explicitly
Learnt from: CR
PR: settlemint/sdk#0
File: CLAUDE.md:0-0
Timestamp: 2025-10-06T23:17:22.726Z
Learning: Applies to **/*.{test,spec}.{ts,tsx} : Test error scenarios explicitly
Learnt from: CR
PR: settlemint/sdk#0
File: CLAUDE.md:0-0
Timestamp: 2025-10-06T23:17:27.585Z
Learning: Applies to **/*.{test,spec}.{ts,tsx} : Use test fixtures for consistency
Learnt from: CR
PR: settlemint/sdk#0
File: CLAUDE.md:0-0
Timestamp: 2025-10-06T23:17:22.726Z
Learning: Applies to test/**/*.ts : Write end-to-end tests for CLI commands
sdk/js/schema.graphql (1)

8299-8301: Double-check resolver coverage for isPreRelease.

isPreRelease is declared as Boolean!, so every Kit resolver must now return a non-null value. If the backing data or serializers have not been updated yet, any request for this field will fail at runtime. Please confirm the upstream resolvers populate it (and consider making it nullable until all data sources are ready).

@dosubot dosubot bot added size:L This PR changes 100-499 lines, ignoring generated files. and removed size:M This PR changes 30-99 lines, ignoring generated files. labels Oct 8, 2025
@github-actions github-actions bot added qa:running QA workflow is currently running and removed qa:success QA workflow passed successfully labels Oct 8, 2025
@janb87 janb87 changed the title fix: beforeAll hook timeout and run tests concurrently fix: e2e tests, dev build and concurrent e2e tests Oct 8, 2025
Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

2 issues found across 4 files

Prompt for AI agents (all 2 issues)

Understand the root cause of the following 2 issues and fix them.


<file name="test/scripts/setup-platform-resources.ts">

<violation number="1" location="test/scripts/setup-platform-resources.ts:48">
Timeout value computes to 10 minutes but the trailing comment says 1 hour; align code and comment to avoid confusion.</violation>

<violation number="2" location="test/scripts/setup-platform-resources.ts:101">
Don&#39;t force-exit the test process in afterAll; this will always fail the suite. Remove the process.exit(1) and let the runner finish normally, or only exit on explicit error paths.</violation>
</file>

React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.

cursor[bot]

This comment was marked as outdated.

@socket-security
Copy link

socket-security bot commented Oct 8, 2025

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedkubo-rpc-client@​5.4.09710010092100

View full report

@github-actions github-actions bot added qa:success QA workflow passed successfully and removed qa:running QA workflow is currently running labels Oct 8, 2025
@github-actions github-actions bot added qa:running QA workflow is currently running and removed qa:success QA workflow passed successfully labels Oct 8, 2025
@github-actions github-actions bot added qa:failed QA workflow failed qa:running QA workflow is currently running and removed qa:running QA workflow is currently running qa:failed QA workflow failed labels Oct 8, 2025
cursor[bot]

This comment was marked as outdated.

@github-actions github-actions bot added qa:success QA workflow passed successfully and removed qa:running QA workflow is currently running labels Oct 8, 2025
@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Oct 8, 2025
@github-actions github-actions bot added status:mergeable Pull request is approved, tests pass, and ready to merge and removed status:ready-for-review Pull request is ready for review labels Oct 8, 2025
@janb87 janb87 enabled auto-merge (squash) October 8, 2025 12:30
@github-actions github-actions bot added qa:running QA workflow is currently running and removed qa:success QA workflow passed successfully labels Oct 8, 2025
@github-actions github-actions bot added qa:success QA workflow passed successfully status:ready-for-review Pull request is ready for review and removed qa:running QA workflow is currently running status:ready-for-review Pull request is ready for review labels Oct 8, 2025
@janb87 janb87 merged commit e3c69db into main Oct 8, 2025
13 checks passed
@janb87 janb87 deleted the jan/e2e-tests branch October 8, 2025 12:32
@github-actions github-actions bot added status:merged Pull request has been merged and removed status:mergeable Pull request is approved, tests pass, and ready to merge labels Oct 8, 2025
@dosubot
Copy link

dosubot bot commented Oct 8, 2025

Documentation Updates

Checked 6 published document(s). No updates required.

You have 10 draft document(s). Publish docs to keep them always up-to-date

How did I do? Any feedback?  Join Discord

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fix Bug fix lgtm This PR has been approved by a maintainer qa:success QA workflow passed successfully size:L This PR changes 100-499 lines, ignoring generated files. status:merged Pull request has been merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants