Testing in JavaScript is a mess compared to RSpec, and I will not pretend otherwise. In Ruby, you have RSpec. Maybe Minitest. Two options, clear winner, community consensus. In JavaScript, you have Jest, Vitest, Mocha, Jasmine for unit tests. React Testing Library, Enzyme (deprecated) for component tests. Playwright, Cypress, Puppeteer for end-to-end tests. The ecosystem is fragmented because the community never agreed on one answer. This is exhausting. Accept it and move on.
Kent Dodds' Testing Trophy is the right mental model: few unit tests, many integration tests, some end-to-end tests, almost no static analysis beyond what TypeScript already gives you. This is the inverse of the traditional testing pyramid, and his reasoning is sound -- integration tests give you the most confidence per line of test code. If you are coming from a world of thousands of RSpec tests, you already have the testing discipline. Apply it here with different tools.
Bundle size matters in ways Gemfile size never did, and this is the fundamental difference between server-side and client-side engineering. Every kilobyte in your JavaScript bundle ships over the network to the user's browser, gets parsed, compiled, and executed on their device. A 500KB bundle on a 3G connection in rural India takes eight seconds to load. Your Gemfile can be 200MB and nobody cares because it runs on a server with a fast disk. This constraint changes how you think about dependencies. Every npm install has a cost measured in user-facing milliseconds.
Core Web Vitals -- LCP, FID, CLS -- are Google's report card for your frontend. They directly affect search rankings. A Rails app with server-rendered HTML gets good scores almost for free. A React SPA with a massive bundle and client-side rendering gets terrible scores by default. Learning to optimize these metrics is learning to build frontends that don't punish users for having slow connections or cheap phones.
Lighthouse is your new rails performance benchmark. Run it early, run it often, take the scores seriously.