test(journey): tolerate server default RQ quantizer - #469
Merged
Merged
Conversation
There was a problem hiding this comment.
Orca Security Scan Summary
| Status | Check | Issues by priority | |
|---|---|---|---|
| Infrastructure as Code | View in Orca | ||
| SAST | View in Orca | ||
| Secrets | View in Orca | ||
| Vulnerabilities | View in Orca |
dudanogueira
force-pushed
the
fix/journey-default-quantizer
branch
2 times, most recently
from
September 1, 2026 13:29
3609064 to
6f9a442
Compare
Contributor
bevzzz
reviewed
Sep 2, 2026
bevzzz
approved these changes
Sep 2, 2026
bevzzz
left a comment
Collaborator
There was a problem hiding this comment.
@dudanogueira please please please stop writing these massive PR descriptions. It's a 4 line change in the test code. There's no need to describe Approach, Risks, Testing, etc; all it does is waste the reviews' time.
The WCD cluster this journey test targets now applies a default RQ
quantizer to HNSW indexes, so the strict deep-equal on the collection
config fails with `quantizer: undefined` vs `{type: 'rq', bits: 8,
rescoreLimit: 20}`.
Because the test connects to a fixed cloud cluster rather than the local
container, this broke every `tests-without-auth` matrix job at once, on
every Weaviate version, across all open PRs.
Pull `quantizer` out of the deep-equal and assert its shape loosely,
matching the approach already taken in fa9c488 for the openai hfresh
expectation. The rest of the config is still compared strictly.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SXVS2uKtuEH91QEVka8zWV
dudanogueira
force-pushed
the
fix/journey-default-quantizer
branch
from
September 2, 2026 21:36
6f9a442 to
ac72d67
Compare
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.
Motivation
test/collections/journey.test.tsconnects to a fixed WCD cluster (piblpmmdsiknacjnm1ltla.c1.europe-west3.gcp.weaviate.cloud), not the local container spun up for CI. That cluster was upgraded to a server version that applies a default RQ quantizer to HNSW indexes, so the stricttoEqual<CollectionConfig>on the returned config started failing withquantizer: undefined(expected) vs{ type: 'rq', bits: 8, rescoreLimit: 20 }(actual).Because the cluster is external and shared, this failed every
tests-without-authmatrix job simultaneously — all seven Node/Weaviate combinations, on every open PR — regardless of the Weaviate version under test. The red CI is not caused by anything in this repo, and it blocks all other work (e.g. #459, #466).Approach
Pull
quantizerout of the deep-equal, assert its shape loosely (expect(['rq', undefined]).toContain(quantizer?.type)), and feed the actual value back into the deep-equal so everything else in the config is still compared strictly. This keeps the test meaningful — it still catches a config field going wrong — while making it agnostic to which side of the default-quantizer change the cluster happens to be on.This mirrors the approach already taken in fa9c488 for the openai hfresh expectation in
integration.test.ts, so the codebase now handles the same server-side variability consistently in both places.Alternatives rejected:
collections.create: changes what the test covers — the point of this assertion is the default config the server returns, not one the client dictated.Key areas for review
test/collections/journey.test.ts:59-63— the destructure + loose assertion. Worth confirming theVectorIndexConfigHNSWcast is right here (the collection is created with default HNSW, not hfresh) and thatquantizer?.typeis the narrowest thing we can usefully assert.test/collections/journey.test.ts:210—quantizeris now threaded into the deep-equal; this is what preserves strictness for the remaining fields.Risks and mitigations
Low risk — test-only, one file, no
src/changes.bits/rescoreLimit; its presence and type are still checked, andintegration.test.tscovers quantizer configuration against the local container where the server version is known.undefinedis still an accepted value, so a client-side bug that drops the quantizer entirely would pass here. Accepted deliberately — the journey test targets an external cluster we don't version-control, so it can't be the place that pins quantizer behaviour.Testing
Verified against the live WCD cluster the test targets:
should get the config for the created collectionnow passes where it previously failed on thequantizermismatch, with the rest of the config deep-equal unchanged. No changes tosrc/, so no other suites are affected.Follow-up (not in this PR)
The cluster URL and API key are hardcoded in plaintext at
test/collections/journey.test.ts:19-23and have been in this public repo since 2024-05-23. Worth a separate issue to move them to Actions secrets — and to reconsider whether a shared, externally-mutable cluster belongs in the blocking CI path at all, given this failure mode (an external upgrade reddens every PR at once) will recur.🤖 Generated with Claude Code
https://claude.ai/code/session_01SXVS2uKtuEH91QEVka8zWV