Skip to content

Introduce Kotlin client/server <--> TypeScript client/server integration tests #209

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

Conversation

skarpovdev
Copy link

@skarpovdev skarpovdev commented Aug 4, 2025

General requirement to run the tests (apart from the main requirements for running any code in the repo) is to have node.js installed. I don't see the need for a separate README.md, but let me know if there is.

  1. In setupTypeScriptSdk we clone the latest head of TypeScript SDK and instal all the dependencies. I thought about using the released version by installing it with npm, but decided to run tests with the latest commits to help us find issues faster, before the new version is released.
  2. I put edge cases coverage into separate test classes to keep the main integration tests easy to find and debug. Btw, this part is mostly done by Junie.
  3. For TypeScript server I use simpleStreamableHttp from examples. If there is a concern it will be changed and hence such usage is bad, it can easily be migrated into a separate file.
  4. Kotlin server is a custom implementation to allow for more thorough testing, pls take a closer look at it.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Additional context

@skarpovdev skarpovdev force-pushed the skarpov/integration-tests branch from d9c37e5 to 32df4dd Compare August 4, 2025 09:31
dependabot bot and others added 18 commits August 5, 2025 16:43
…xtprotocol#148)

Bumps [org.jetbrains.kotlinx.binary-compatibility-validator](https://github.com/Kotlin/binary-compatibility-validator) from 0.18.0 to 0.18.1.
- [Release notes](https://github.com/Kotlin/binary-compatibility-validator/releases)
- [Commits](Kotlin/binary-compatibility-validator@0.18.0...0.18.1)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlinx.binary-compatibility-validator
  dependency-version: 0.18.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Update PR validation workflow

* Update PR validation trigger configuration

* Add concurrency control to PR validation workflow
Bumps [io.mockk:mockk](https://github.com/mockk/mockk) from 1.14.4 to 1.14.5.
- [Release notes](https://github.com/mockk/mockk/releases)
- [Commits](mockk/mockk@1.14.4...1.14.5)

---
updated-dependencies:
- dependency-name: io.mockk:mockk
  dependency-version: 1.14.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `ktor` from 3.2.1 to 3.2.2.

Updates `io.ktor:ktor-client-cio` from 3.2.1 to 3.2.2
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](ktorio/ktor@3.2.1...3.2.2)

Updates `io.ktor:ktor-server-sse` from 3.2.1 to 3.2.2
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](ktorio/ktor@3.2.1...3.2.2)

Updates `io.ktor:ktor-server-websockets` from 3.2.1 to 3.2.2
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](ktorio/ktor@3.2.1...3.2.2)

Updates `io.ktor:ktor-server-cio` from 3.2.1 to 3.2.2
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](ktorio/ktor@3.2.1...3.2.2)

Updates `io.ktor:ktor-server-test-host` from 3.2.1 to 3.2.2
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](ktorio/ktor@3.2.1...3.2.2)

Updates `io.ktor:ktor-client-mock` from 3.2.1 to 3.2.2
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](ktorio/ktor@3.2.1...3.2.2)

---
updated-dependencies:
- dependency-name: io.ktor:ktor-client-cio
  dependency-version: 3.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.ktor:ktor-server-sse
  dependency-version: 3.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.ktor:ktor-server-websockets
  dependency-version: 3.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.ktor:ktor-server-cio
  dependency-version: 3.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.ktor:ktor-server-test-host
  dependency-version: 3.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.ktor:ktor-client-mock
  dependency-version: 3.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Modularize SDK: migrated client and server implementations to separate modules. Removed old configuration files and reorganized the source code structure

* add support native targets and update js/wasm configurations

* Refactor sample projects: add samples as composite builds, replace hardcoded dependencies with version catalog, remove obsolete gradle wrapper files

* Update .gitignore: exclude SWE agent directories (.claude/ and .junie/)

* Refine CodeQL workflow: update Kotlin build steps to target individual modules separately instead of building all at once
@skarpovdev skarpovdev force-pushed the skarpov/integration-tests branch from f1d6bbd to 2e227a7 Compare August 5, 2025 13:44
@skarpovdev skarpovdev force-pushed the skarpov/integration-tests branch from 2e227a7 to e2a70a9 Compare August 5, 2025 13:49
@skarpovdev skarpovdev closed this Aug 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants