Project Overview
Enzyme is a React testing utility for component traversal, inspection, and interaction-style assertions.
Install enzyme plus the matching adapter, then configure once in test setup.
Key Challenges Addressed
It helps legacy suites stay readable, but adapter compatibility creates ongoing upgrade risk.
Your team can maintain established wrapper-based React tests while planning gradual migration paths.
Getting Started
Install enzyme plus the matching adapter, then configure once in test setup.
Your team should confirm environment prerequisites and CI runtime alignment before scaling usage.
Features and Use Cases
Your team can maintain established wrapper-based React tests while planning gradual migration paths.
It integrates with Jest, Mocha, and Chai ecosystems and depends heavily on adapter availability.
Ecosystem and Dependencies
It integrates with Jest, Mocha, and Chai ecosystems and depends heavily on adapter availability.
Wrapper APIs operate over rendered component trees, with adapters bridging React-version behavior.
Architectural Overview
Wrapper APIs operate over rendered component trees, with adapters bridging React-version behavior.
Pros are concise traversal in existing suites; cons are adapter bottlenecks and forward-compatibility limits.
Pros and Cons
Pros are concise traversal in existing suites; cons are adapter bottlenecks and forward-compatibility limits.
Your team gets clear strengths and clear operational constraints, so fit depends on your testing scope.
Comparison and Alternatives
GitHub stars
Weekly star gains
Full metrics details
GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.
Enzyme
GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.
180 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Vitest
GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.
151 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
React Cosmos
GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.
180 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Cypress
GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.
157 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Issues opened
Weekly total
Full metrics details
GitHub API observation. Historical values render only when the source provides a real observation for that day.
Enzyme
GitHub API observation. Historical values render only when the source provides a real observation for that day.
36 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Vitest
GitHub API observation. Historical values render only when the source provides a real observation for that day.
179 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
React Cosmos
GitHub API observation. Historical values render only when the source provides a real observation for that day.
36 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Cypress
GitHub API observation. Historical values render only when the source provides a real observation for that day.
68 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Issues closed
Weekly total
Full metrics details
GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.
Enzyme
GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.
36 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Vitest
GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.
179 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
React Cosmos
GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.
36 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Cypress
GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.
68 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Pull requests opened
Weekly total
Full metrics details
GitHub API observation. Historical values render only when the source provides a real observation for that day.
Enzyme
GitHub API observation. Historical values render only when the source provides a real observation for that day.
36 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Vitest
GitHub API observation. Historical values render only when the source provides a real observation for that day.
179 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
React Cosmos
GitHub API observation. Historical values render only when the source provides a real observation for that day.
36 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Cypress
GitHub API observation. Historical values render only when the source provides a real observation for that day.
68 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Pull requests closed
Weekly total
Full metrics details
GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.
Enzyme
GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.
36 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Vitest
GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.
179 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
React Cosmos
GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.
36 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Cypress
GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.
68 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Pull requests merged
Weekly total
Full metrics details
GitHub API observation. Historical values render only when the source provides a real observation for that day.
Enzyme
GitHub API observation. Historical values render only when the source provides a real observation for that day.
36 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Vitest
GitHub API observation. Historical values render only when the source provides a real observation for that day.
179 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
React Cosmos
GitHub API observation. Historical values render only when the source provides a real observation for that day.
36 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Cypress
GitHub API observation. Historical values render only when the source provides a real observation for that day.
68 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Open/closed pull request ratio
Weekly average
Full metrics details
GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.
Enzyme
GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.
180 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Vitest
GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.
180 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
React Cosmos
GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.
180 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Cypress
GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.
180 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Open/closed issues ratio
Weekly average
Full metrics details
GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.
Enzyme
GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.
180 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Vitest
GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.
180 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
React Cosmos
GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.
180 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Cypress
GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.
180 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Releases
Weekly total
Full metrics details
GitHub release published_at events bucketed by UTC day; drafts are excluded.
Enzyme
GitHub release published_at events bucketed by UTC day; drafts are excluded.
180 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Vitest
GitHub release published_at events bucketed by UTC day; drafts are excluded.
180 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
React Cosmos
GitHub release published_at events bucketed by UTC day; drafts are excluded.
180 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Cypress
GitHub release published_at events bucketed by UTC day; drafts are excluded.
180 observed daily rows. Missing days are not fabricated.
| Date | Value |
|---|
Hotness score
Weekly average
Full metrics details
Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.
Enzyme
Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.
180 observed daily rows. Missing days are not fabricated.
Per-day formula: 0.40 × Hot today + 0.40 × Hot week + 0.20 × Breakout.
- Same-day multiplier = stars 1d ÷ max(1, stars 7d ÷ 7)
- Weekly multiplier = stars 7d ÷ max(1, stars 30d ÷ 30 × 7)
- Fortnight multiplier = stars 14d ÷ max(1, stars 90d ÷ 90 × 14)
- Hot today = clamp(70 × log-scale(stars 1d, 1000) + 30 × breakout-scale(same-day, 4))
- Hot week = clamp(75 × log-scale(stars 7d, 5000) + 25 × breakout-scale(weekly, 3))
- Breakout = clamp(35 × breakout-scale(same-day, 4) + 40 × breakout-scale(weekly, 3) + 25 × breakout-scale(fortnight, 2.5))
| Date | Stars | Stars 1d | Stars 7d | Stars 14d | Stars 30d | Stars 90d | Same-day multiplier | Weekly multiplier | Fortnight multiplier | Hot today | Hot week | Breakout | Stored score |
|---|
Vitest
Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.
180 observed daily rows. Missing days are not fabricated.
Per-day formula: 0.40 × Hot today + 0.40 × Hot week + 0.20 × Breakout.
- Same-day multiplier = stars 1d ÷ max(1, stars 7d ÷ 7)
- Weekly multiplier = stars 7d ÷ max(1, stars 30d ÷ 30 × 7)
- Fortnight multiplier = stars 14d ÷ max(1, stars 90d ÷ 90 × 14)
- Hot today = clamp(70 × log-scale(stars 1d, 1000) + 30 × breakout-scale(same-day, 4))
- Hot week = clamp(75 × log-scale(stars 7d, 5000) + 25 × breakout-scale(weekly, 3))
- Breakout = clamp(35 × breakout-scale(same-day, 4) + 40 × breakout-scale(weekly, 3) + 25 × breakout-scale(fortnight, 2.5))
| Date | Stars | Stars 1d | Stars 7d | Stars 14d | Stars 30d | Stars 90d | Same-day multiplier | Weekly multiplier | Fortnight multiplier | Hot today | Hot week | Breakout | Stored score |
|---|
React Cosmos
Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.
180 observed daily rows. Missing days are not fabricated.
Per-day formula: 0.40 × Hot today + 0.40 × Hot week + 0.20 × Breakout.
- Same-day multiplier = stars 1d ÷ max(1, stars 7d ÷ 7)
- Weekly multiplier = stars 7d ÷ max(1, stars 30d ÷ 30 × 7)
- Fortnight multiplier = stars 14d ÷ max(1, stars 90d ÷ 90 × 14)
- Hot today = clamp(70 × log-scale(stars 1d, 1000) + 30 × breakout-scale(same-day, 4))
- Hot week = clamp(75 × log-scale(stars 7d, 5000) + 25 × breakout-scale(weekly, 3))
- Breakout = clamp(35 × breakout-scale(same-day, 4) + 40 × breakout-scale(weekly, 3) + 25 × breakout-scale(fortnight, 2.5))
| Date | Stars | Stars 1d | Stars 7d | Stars 14d | Stars 30d | Stars 90d | Same-day multiplier | Weekly multiplier | Fortnight multiplier | Hot today | Hot week | Breakout | Stored score |
|---|
Cypress
Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.
180 observed daily rows. Missing days are not fabricated.
Per-day formula: 0.40 × Hot today + 0.40 × Hot week + 0.20 × Breakout.
- Same-day multiplier = stars 1d ÷ max(1, stars 7d ÷ 7)
- Weekly multiplier = stars 7d ÷ max(1, stars 30d ÷ 30 × 7)
- Fortnight multiplier = stars 14d ÷ max(1, stars 90d ÷ 90 × 14)
- Hot today = clamp(70 × log-scale(stars 1d, 1000) + 30 × breakout-scale(same-day, 4))
- Hot week = clamp(75 × log-scale(stars 7d, 5000) + 25 × breakout-scale(weekly, 3))
- Breakout = clamp(35 × breakout-scale(same-day, 4) + 40 × breakout-scale(weekly, 3) + 25 × breakout-scale(fortnight, 2.5))
| Date | Stars | Stars 1d | Stars 7d | Stars 14d | Stars 30d | Stars 90d | Same-day multiplier | Weekly multiplier | Fortnight multiplier | Hot today | Hot week | Breakout | Stored score |
|---|
Reliability score
Weekly average
Full metrics details
Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.
Enzyme
Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.
180 observed daily rows. Missing days are not fabricated.
Per-day formula: 0.30 × Continuity + 0.30 × Closure + 0.20 × Shipping + 0.10 × Liveness + 0.10 × Support burden.
- Continuity = 35% active ratio 90d + 20% active ratio 30d + 15% PR efficiency 90d + 10% PR efficiency 30d + 10% liveness + 10% observed-history coverage
- Closure = 55% PR merge efficiency 90d + 45% issue close efficiency 90d
- Shipping = 100 × (20% × release ratio 30d + 30% × release ratio 90d + 50% × release ratio 180d); ratios are releases ÷ 2, 6, and 12, capped at 1
- Support burden = 100 − 2 × open issues per 1,000 stars
- Liveness = 100 × exp(−pushed days ago ÷ 120)
Stars, issues, pull requests, and releases are daily observations. Pushed-days and license are repository snapshot-derived inputs and are not independent historical GitHub events.
| Date | Issues opened | Issues closed | PRs opened | PRs merged | Releases | Stars | Open issues | Pushed days ago | Continuity | Closure | Shipping | Liveness | Support burden | License | Observed days | Missing days | Needs healing | Stored score |
|---|
Vitest
Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.
180 observed daily rows. Missing days are not fabricated.
Per-day formula: 0.30 × Continuity + 0.30 × Closure + 0.20 × Shipping + 0.10 × Liveness + 0.10 × Support burden.
- Continuity = 35% active ratio 90d + 20% active ratio 30d + 15% PR efficiency 90d + 10% PR efficiency 30d + 10% liveness + 10% observed-history coverage
- Closure = 55% PR merge efficiency 90d + 45% issue close efficiency 90d
- Shipping = 100 × (20% × release ratio 30d + 30% × release ratio 90d + 50% × release ratio 180d); ratios are releases ÷ 2, 6, and 12, capped at 1
- Support burden = 100 − 2 × open issues per 1,000 stars
- Liveness = 100 × exp(−pushed days ago ÷ 120)
Stars, issues, pull requests, and releases are daily observations. Pushed-days and license are repository snapshot-derived inputs and are not independent historical GitHub events.
| Date | Issues opened | Issues closed | PRs opened | PRs merged | Releases | Stars | Open issues | Pushed days ago | Continuity | Closure | Shipping | Liveness | Support burden | License | Observed days | Missing days | Needs healing | Stored score |
|---|
React Cosmos
Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.
180 observed daily rows. Missing days are not fabricated.
Per-day formula: 0.30 × Continuity + 0.30 × Closure + 0.20 × Shipping + 0.10 × Liveness + 0.10 × Support burden.
- Continuity = 35% active ratio 90d + 20% active ratio 30d + 15% PR efficiency 90d + 10% PR efficiency 30d + 10% liveness + 10% observed-history coverage
- Closure = 55% PR merge efficiency 90d + 45% issue close efficiency 90d
- Shipping = 100 × (20% × release ratio 30d + 30% × release ratio 90d + 50% × release ratio 180d); ratios are releases ÷ 2, 6, and 12, capped at 1
- Support burden = 100 − 2 × open issues per 1,000 stars
- Liveness = 100 × exp(−pushed days ago ÷ 120)
Stars, issues, pull requests, and releases are daily observations. Pushed-days and license are repository snapshot-derived inputs and are not independent historical GitHub events.
| Date | Issues opened | Issues closed | PRs opened | PRs merged | Releases | Stars | Open issues | Pushed days ago | Continuity | Closure | Shipping | Liveness | Support burden | License | Observed days | Missing days | Needs healing | Stored score |
|---|
Cypress
Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.
180 observed daily rows. Missing days are not fabricated.
Per-day formula: 0.30 × Continuity + 0.30 × Closure + 0.20 × Shipping + 0.10 × Liveness + 0.10 × Support burden.
- Continuity = 35% active ratio 90d + 20% active ratio 30d + 15% PR efficiency 90d + 10% PR efficiency 30d + 10% liveness + 10% observed-history coverage
- Closure = 55% PR merge efficiency 90d + 45% issue close efficiency 90d
- Shipping = 100 × (20% × release ratio 30d + 30% × release ratio 90d + 50% × release ratio 180d); ratios are releases ÷ 2, 6, and 12, capped at 1
- Support burden = 100 − 2 × open issues per 1,000 stars
- Liveness = 100 × exp(−pushed days ago ÷ 120)
Stars, issues, pull requests, and releases are daily observations. Pushed-days and license are repository snapshot-derived inputs and are not independent historical GitHub events.
| Date | Issues opened | Issues closed | PRs opened | PRs merged | Releases | Stars | Open issues | Pushed days ago | Continuity | Closure | Shipping | Liveness | Support burden | License | Observed days | Missing days | Needs healing | Stored score |
|---|
Alternatives often considered are Vitest, React Cosmos, and Cypress.
| Project | Repo | Adoption confidence (~6mo) | PRs merged (~6mo) | Star growth (~6mo) |
|---|---|---|---|---|
| Enzyme | https://github.com/enzymejs/enzyme | {{BAR10_ADOPTION_CONFIDENCE_365D:enzymejs/enzyme}} {{ADOPTION_CONFIDENCE_365D:enzymejs/enzyme}} | {{BAR10_PRS_MERGED_365D:enzymejs/enzyme}} {{PRS_MERGED_365D:enzymejs/enzyme}} | {{BAR10_STAR_GROWTH_365D:enzymejs/enzyme}} {{STAR_GROWTH_365D:enzymejs/enzyme}} |
| Vitest | https://github.com/vitest-dev/vitest | {{BAR10_ADOPTION_CONFIDENCE_365D:vitest-dev/vitest}} {{ADOPTION_CONFIDENCE_365D:vitest-dev/vitest}} | {{BAR10_PRS_MERGED_365D:vitest-dev/vitest}} {{PRS_MERGED_365D:vitest-dev/vitest}} | {{BAR10_STAR_GROWTH_365D:vitest-dev/vitest}} {{STAR_GROWTH_365D:vitest-dev/vitest}} |
| React Cosmos | https://github.com/react-cosmos/react-cosmos | {{BAR10_ADOPTION_CONFIDENCE_365D:react-cosmos/react-cosmos}} {{ADOPTION_CONFIDENCE_365D:react-cosmos/react-cosmos}} | {{BAR10_PRS_MERGED_365D:react-cosmos/react-cosmos}} {{PRS_MERGED_365D:react-cosmos/react-cosmos}} | {{BAR10_STAR_GROWTH_365D:react-cosmos/react-cosmos}} {{STAR_GROWTH_365D:react-cosmos/react-cosmos}} |
| Cypress | https://github.com/cypress-io/cypress | {{BAR10_ADOPTION_CONFIDENCE_365D:cypress-io/cypress}} {{ADOPTION_CONFIDENCE_365D:cypress-io/cypress}} | {{BAR10_PRS_MERGED_365D:cypress-io/cypress}} {{PRS_MERGED_365D:cypress-io/cypress}} | {{BAR10_STAR_GROWTH_365D:cypress-io/cypress}} {{STAR_GROWTH_365D:cypress-io/cypress}} |
Best overall alternative: Vitest. It offers stronger default breadth for most teams.
Conclusion
Enzyme remains useful for legacy React suites with existing adapter investment. Keep repository, docs, and migration guide.
