• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mozilla / fx-private-relay / 27248121-df67-4761-aaaa-5de5fcf843d0
92%
main: 92%

Build:
Build:
LAST BUILD BRANCH: gh-readonly-queue/main/pr-6674-423c669045d5815965e9956291311404d302ab6c
DEFAULT BRANCH: main
Ran 02 Mar 2026 09:36PM UTC
Jobs 1
Files 263
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

02 Mar 2026 09:19PM UTC coverage: 91.603% (+0.03%) from 91.578%
27248121-df67-4761-aaaa-5de5fcf843d0

Pull #6345

circleci

groovecoder
build(frontend): upgrade ESLint v8 to v9, fix all violations

Use `ESLINT_USE_FLAT_CONFIG=false` to keep `.eslintrc.js`. Add explicit
`'./src'` pattern, required by v9 legacy config mode.

ESLint v9 can run some plugins that v8 silently ignored.
Fix all newly-enforced violations:

`react-hooks/globals|/refs|/static-components` (React Compiler rules):
* SSR hydration `useState+useEffect` → `useSyncExternalStore`
* `setState` in effects → `startTransition`
* in `render`:
  * components, ref access → moved to module scope
  * `Date.now()` → `useMemo(() => Date.now(), [])` with eslint-disable
  * `Object.assign` instead of mutation

`testing-library/no-container|no-node-access`:
* `container.querySelector()` → `within()`
* `firstChild` checks → `toBeEmptyDOMElement()`

`testing-library/render-result-naming-convention`:
* render result variable "result" → "view"

`@typescript-eslint/no-explicit-any`:
* `any` → typed or `unknown`

`jest-dom/prefer-empty|prefer-in-document|prefer-to-have-attribute`:
* `toHaveTextContent("")` → `toBeEmptyDOMElement()`
* `toBeNull()` → `not.toBeInTheDocument()`
* `getAttribute("class")` → `toHaveClass()`

`prefer-const`
* `let` → `const` where never reassigned
Pull Request #6345: build(frontend): upgrade ESLint v8 to v9, fix all violations

3041 of 3901 branches covered (77.95%)

Branch coverage included in aggregate %.

70 of 86 new or added lines in 21 files covered. (81.4%)

1 existing line in 1 file now uncovered.

18822 of 19966 relevant lines covered (94.27%)

14.06 hits per line

Uncovered Changes

Lines Coverage ∆ File
6
16.67
0.88% frontend/src/hooks/addon.ts
6
0.0
0.0% frontend/src/hooks/l10n.ts
1
76.92
-23.08% frontend/src/components/Localized.tsx
1
61.11
-1.75% frontend/src/components/dashboard/aliases/LabelEditor.tsx
1
88.64
0.0% frontend/src/components/layout/navigation/Navigation.tsx
1
82.72
0.22% frontend/src/components/waitlist/WaitlistPage.tsx

Coverage Regressions

Lines Coverage ∆ File
1
16.67
0.88% frontend/src/hooks/addon.ts
Jobs
ID Job ID Ran Files Coverage
1 27248121-df67-4761-aaaa-5de5fcf843d0.1 02 Mar 2026 09:36PM UTC 263
91.6
CircleCI Job
Source Files on build 27248121-df67-4761-aaaa-5de5fcf843d0
  • Tree
  • List 263
  • Changed 18
  • Source Changed 0
  • Coverage Changed 18
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • CircleCI Build #27248121...
  • Pull Request #6345
  • PR Base - main (#1585F4CD...)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc