From e3d8a149197d654bec3641a362a8e7971d1b3853 Mon Sep 17 00:00:00 2001 From: Colin Heathman Date: Wed, 2 Jul 2025 14:42:19 -0700 Subject: [PATCH] Fix js_collect_all in barrels Fixes a case where js_collect_all is used in a package with both an index.ts and an index.test.ts file together. --- .github/workflows/ci.yaml | 12 ++++++------ .github/workflows/release.yml | 2 +- examples/nextjs/apps/alpha/pages/index.test.tsx | 7 ------- gazelle/resolve.go | 2 +- .../nested_module/double_nested_module/BUILD.out | 7 ++++++- .../nested_module/double_nested_module/index.test.ts | 1 + 6 files changed, 15 insertions(+), 16 deletions(-) create mode 100644 tests/collect_all_nested/my_module/nested_module/double_nested_module/index.test.ts diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 4ed2a14..be3f17f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -18,10 +18,10 @@ jobs: # Steps represent a sequence of tasks that will be executed as part of the job steps: - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v2 + - name: Checkout + uses: actions/checkout@v4 - name: Mount bazel caches - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: | "~/.cache/bazel" @@ -39,10 +39,10 @@ jobs: # Steps represent a sequence of tasks that will be executed as part of the job steps: - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v2 + - name: Checkout + uses: actions/checkout@v4 - name: Mount bazel caches - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: | "~/.cache/bazel" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e0803fe..e3dee4c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Mount bazel caches uses: actions/cache@v3 with: diff --git a/examples/nextjs/apps/alpha/pages/index.test.tsx b/examples/nextjs/apps/alpha/pages/index.test.tsx index 5ada940..4d55fe3 100644 --- a/examples/nextjs/apps/alpha/pages/index.test.tsx +++ b/examples/nextjs/apps/alpha/pages/index.test.tsx @@ -16,10 +16,3 @@ describe('Home', () => { expect(heading).toBeInTheDocument(); }); }); - -describe('snapshot', () => { - it('works', () => { - const { asFragment } = render(); - expect(asFragment()).toMatchSnapshot(); - }); -}); diff --git a/gazelle/resolve.go b/gazelle/resolve.go index cfca187..1629d3c 100644 --- a/gazelle/resolve.go +++ b/gazelle/resolve.go @@ -112,7 +112,7 @@ func (lang *JS) Imports(c *config.Config, r *rule.Rule, f *rule.File) []resolve. } // modules can be resolved via the directory containing them - if isBarrel || jsConfig.CollectAll { + if (isBarrel || jsConfig.CollectAll) && r.Kind() != getKind(c, "jest_test") { importSpecs = append(importSpecs, resolve.ImportSpec{ Lang: lang.Name(), Imp: f.Pkg, diff --git a/tests/collect_all_nested/my_module/nested_module/double_nested_module/BUILD.out b/tests/collect_all_nested/my_module/nested_module/double_nested_module/BUILD.out index 5748fd8..dc66b17 100644 --- a/tests/collect_all_nested/my_module/nested_module/double_nested_module/BUILD.out +++ b/tests/collect_all_nested/my_module/nested_module/double_nested_module/BUILD.out @@ -10,9 +10,14 @@ jest_test( srcs = [ "a.test.ts", "b.test.ts", + "index.test.ts", ], config = "//:jest.config", - data = ["//:package_json"], + data = [ + ":double_nested_module", + "//:package_json", + ], + deps = [":double_nested_module"], ) ts_project( diff --git a/tests/collect_all_nested/my_module/nested_module/double_nested_module/index.test.ts b/tests/collect_all_nested/my_module/nested_module/double_nested_module/index.test.ts new file mode 100644 index 0000000..5b6309c --- /dev/null +++ b/tests/collect_all_nested/my_module/nested_module/double_nested_module/index.test.ts @@ -0,0 +1 @@ +export { some_private_var as some_var } from "./module_file"