Skip to content

test: remove --proxyquire-shim from bigtable, spanner, and storage - #9645

Draft
danieljbruce wants to merge 6 commits into
fix/remove-proxyquire-shim-logging-pubsubfrom
fix/remove-proxyquire-shim-bigtable-spanner-storage
Draft

danieljbruce wants to merge 6 commits into
fix/remove-proxyquire-shim-logging-pubsubfrom
fix/remove-proxyquire-shim-bigtable-spanner-storage

Conversation

@danieljbruce

@danieljbruce danieljbruce commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Description

Replaces the global --proxyquire-shim in handwritten/bigtable, handwritten/spanner, and handwritten/storage using the centralized proxyquire helper from google-test-utils (Path 1B).

Impact

Removes --proxyquire-shim from bigtable, spanner, and storage unit test scripts without duplicating per-package test/proxyquire.ts helpers.

Changes

Testing

  • Executed pnpm test under both Node.js and Bun (JS_RUNTIME=bun) in handwritten/bigtable, handwritten/spanner, and handwritten/storage.
  • Verified strict lint and type checks pass via bin/linter.mjs --strict.

Alternatives

  • Per-package test/proxyquire.ts files (Path 1A) were replaced with the centralized google-test-utils helper (Path 1B) per review discussion in b/570091189.

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

Copy link
Copy Markdown
Contributor

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 replaces the external proxyquire dependency with a custom local implementation across the bigtable, spanner, and storage packages, updating test scripts and import paths accordingly. The feedback highlights an issue in the custom proxyquire implementation where directly mutating the user-provided stub object by copying properties from the real module can lead to test pollution or throw a TypeError if the stub is frozen. It is recommended to use a Proxy to dynamically delegate property accesses to the real module instead.

Comment thread handwritten/bigtable/test/proxyquire.ts Outdated
Comment thread handwritten/spanner/test/proxyquire.ts Outdated
Comment thread handwritten/storage/test/proxyquire.ts Outdated
@danieljbruce
danieljbruce added this pull request to stack #9647 October 15, 2026 21:18
@danieljbruce

Copy link
Copy Markdown
Contributor Author

This seems to just create a localized shim which is better and acceptable, but adjustments to the exact tests would likely be ideal.

1 similar comment
@danieljbruce

Copy link
Copy Markdown
Contributor Author

This seems to just create a localized shim which is better and acceptable, but adjustments to the exact tests would likely be ideal.

danieljbruce added a commit that referenced this pull request Oct 20, 2026
…translate (#9642)

## Description

Replaces proxyquire with sinon and direct stubs across four packages.

## Impact

Removes --proxyquire-shim from gax, googleapis-common, error-reporting,
and translate unit tests.

## Changes

- **Part 1 of 5 in stacked PR series**: **#9642** -> #9643 -> #9644 ->
#9645 -> #9646 (b/570680750).
- `core/packages/gax`: Replace `proxyquire` in `test/unit/grpc.ts` with
`sinon.stub(fs, 'existsSync')` and remove `--proxyquire-shim` from
`package.json`.
- `core/packages/nodejs-googleapis-common`: Replace `proxyquire` in
`test/test.authplus.ts` and `test/test.http2.ts` with
`sinon.stub(auth.GoogleAuth.prototype, 'getClient')` and
`sinon.stub(coreHttp2, 'connect')`, and remove `--proxyquire-shim` from
`package.json`.
- `handwritten/error-reporting`: Stub
`util.makeAuthenticatedRequestFactory` and
`RequestHandler.prototype.request` directly in
`test/unit/google-apis/auth-client.ts` and remove `--proxyquire-shim`
from `package.json`.
- `packages/google-cloud-translate`: Intercept
`Module.prototype.require` directly in `test/index.ts` `before()` hook
and remove `--proxyquire-shim` from `package.json`.

## Testing

- Executed `pnpm test` under both Node.js and Bun (`JS_RUNTIME=bun`) in
`core/packages/gax`, `core/packages/nodejs-googleapis-common`,
`handwritten/error-reporting`, and `packages/google-cloud-translate`.
- Verified strict lint and type checks pass via `bin/linter.mjs
--strict`.

## Alternatives

- Not merging this pull request was considered, which would leave these
four packages dependent on the global `bin/proxyquire-bun-shim.cjs`
preload shim.
@danieljbruce
danieljbruce force-pushed the fix/remove-proxyquire-shim-bigtable-spanner-storage branch from 8af69b6 to 01e56cd Compare October 20, 2026 14:27

This branch has not been deployed

No deployments
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.

1 participant