Skip to content

test: remove --proxyquire-shim from common, bigquery, datastore, and dns - #9643

Draft
danieljbruce wants to merge 4 commits into
mainfrom
fix/remove-proxyquire-shim-core-dns-ds-bq
Draft

danieljbruce wants to merge 4 commits into
mainfrom
fix/remove-proxyquire-shim-core-dns-ds-bq

Conversation

@danieljbruce

@danieljbruce danieljbruce commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Description

Centralizes the runtime-agnostic proxyquire helper in core/test-utils (google-test-utils, Path 1B) and replaces the global --proxyquire-shim in core/common, handwritten/bigquery, handwritten/datastore, and handwritten/google-cloud-dns.

Impact

Removes --proxyquire-shim from common, bigquery, datastore, and google-cloud-dns test scripts while eliminating per-package test/proxyquire.ts duplication by exporting proxyquire and createProxyquire from google-test-utils.

Changes

Testing

  • Executed pnpm test in core/test-utils and under both Node.js and Bun (JS_RUNTIME=bun) in core/common, handwritten/bigquery, handwritten/datastore, and handwritten/google-cloud-dns.
  • Verified strict lint and type checks pass via bin/linter.mjs --strict.

Alternatives

  • Per-package test/proxyquire.ts files (Path 1A) were replaced with a single centralized implementation in core/test-utils (google-test-utils, 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 multiple packages and updates the test scripts to remove the --proxyquire-shim flag. Feedback on the new proxyquire.ts files highlights a bug in the hasOwn helper, which currently only checks for 'object' types and fails to recognize function-based stubs, thereby ignoring @noCallThru and @global behaviors. It is recommended to update hasOwn to support both 'object' and 'function' types.

Comment thread core/common/test/proxyquire.ts Outdated
Comment thread handwritten/bigquery/test/proxyquire.ts Outdated
Comment thread handwritten/datastore/test/proxyquire.ts Outdated
Comment thread handwritten/google-cloud-dns/test/proxyquire.ts Outdated
@danieljbruce
danieljbruce added this pull request to stack #9647 October 15, 2026 21:18
Base automatically changed from fix/remove-proxyquire-shim-sinon to main October 20, 2026 14:27
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-core-dns-ds-bq branch from 05e25a8 to d2820c8 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