refactor: consolidate test suites under tests/ [skip-tag:sdk]#56
Merged
Conversation
Move existing test-only modules into a dedicated tests/ tree so the top-level layout reflects what each subtree is for, rather than hiding integration suites under sdk/ or developer-tools dirs: - sdk/knowledge/e2e/ -> tests/quality/knowledge/ - tools/conformance/ -> tests/conformance/ Both targets are independent Go modules (GOWORK=off) that pin sdk + sdkx via go.mod, so the 100-doc retrieval corpus stays out of every sdk patch tag and the conformance suite keeps testing the exact bytes consumers can pull. Internal import paths and module names are updated to match the new locations; no test logic is changed. Makefile updates: - MODULES_OFFWORK gains tests/quality/knowledge and renames the tools/conformance entry to tests/conformance, so 'make test' still exercises both as compile checks. - Rename 'make conformance' to 'make test-conformance' and add a new 'make test-quality' that runs the integration-tagged lane of tests/quality/knowledge against a real embedding provider. [skip-tag:sdk] because the only sdk/ change is removing the sdk/knowledge/e2e/ directory; sdk's public API is untouched and this refactor does not warrant a patch bump on its own. Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Promote the existing test-only modules to a dedicated top-level
tests/tree so the repo layout reflects what each subtree is for, rather than hiding integration suites undersdk/or under atools/developer-tools directory.sdk/knowledge/e2e/→tests/quality/knowledge/(in-process retrieval-quality regression suite)tools/conformance/→tests/conformance/(provider conformance suite that hits real HTTP endpoints when credentials are present)Both targets stay independent Go modules (
GOWORK=off) that pinsdk+sdkxviago.modrequiredirectives, so:sdkpatch tag (it would otherwise inflate every consumer's module cache without any consumer ever running these tests), andgo get.Internal
importpaths andmodulenames are rewritten to match the new locations; no test logic is changed.Makefile
MODULES_OFFWORKgainstests/quality/knowledgeand renames thetools/conformanceentry totests/conformance, somake teststill exercises both as compile checks (no credentials → tests self-skip).make conformanceis renamed tomake test-conformanceto match the newtest-*family naming.make test-qualityruns the//go:build integrationlane oftests/quality/knowledge/against a real embedding provider (skips cleanly whenEMBEDDING_PROVIDER/EMBEDDING_API_KEY/EMBEDDING_MODELare unset).[skip-tag:sdk]rationaleThe only change under
sdk/is the removal of thesdk/knowledge/e2e/directory.sdk's public API is untouched, no internal logic changes, no behaviour changes — this is a pure layout refactor and does not warrant a patch bump of thesdkmodule on its own. The[skip-tag:sdk]marker tells the auto-tag workflow to skip thesdkmodule for this push; the per-module skip surface is exactly whatauto-tag.ymlwas designed for.tests/conformance/andtests/quality/knowledge/live outside the auto-tag scope (the workflow only watchessdk/**/sdkx/**/voice/**), so they need no special handling.Test plan
make vet— passes across all in-tree + GOWORK=off modulesmake test— passes;tests/conformance/*andtests/quality/knowledgeshow up in the offwork lane and run cleanlymake test-conformance— runstests/conformance/...(no creds → suites self-skip cleanly)make test-quality— runs the integration lane (no creds → vector + hybrid tests self-skip cleanly)make help— lists the newtest-conformance/test-qualitytargetsMade with Cursor