SShortSingh.
Back to feed

All 236 Tests Passed Locally, Yet the Release Was Broken — Here's Why

0
·1 views

A developer maintaining a Claude Code notification tool fixed a timezone bug, saw all 236 local tests pass, but discovered the release was broken only after pushing to CI. The root cause was that both the code and the tests silently assumed the host machine's local timezone — Asia/Hong_Kong — which matched the embedded timezone in the data, making errors invisible locally. When CI ran on a UTC-based Ubuntu runner, the symmetry broke and exposed not just the original bug but two additional hidden flaws in the test logic itself. The tests had effectively been verifying that a value equalled itself, not that the timezone logic was correct, meaning they could never fail regardless of the underlying bug. The incident highlights how a fully green local test suite can be misleading when tests share the same flawed assumption as the code they are meant to validate.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Beginner SEO Diary: How to Build a Keyword List Using Only Free Tools

A blogger documenting their SEO learning journey shares the process they followed on Day 4 to build their first keyword list using free tools like Google Keyword Planner, AnswerThePublic, and Search Console. Industry data suggests long-tail phrases of three or more words account for roughly 92% of all searches and convert at more than double the rate of short, generic terms. The writer emphasizes that matching a keyword to search intent is more important than chasing high search volume, noting that a mismatch between content format and what Google already ranks can prevent a page from ranking regardless of writing quality. They recommend manually reviewing actual search results for each shortlisted keyword, a step they describe as the most useful filter that many beginner guides overlook. Volume figures from free tools, particularly Google Keyword Planner, are advised to be treated as rough estimates rather than precise guarantees.

0
ProgrammingDEV Community ·

How One Developer Built a Home Server from an Old Laptop for Free

A developer set up a home server using an old, unused laptop to explore low-cost ways for students to host software projects without paying for cloud services. Inspired by a conversation with a friend, he installed Ubuntu Server LTS on the laptop after wiping Windows and creating a bootable USB drive. The setup required no graphical interface, relying entirely on terminal commands for configuration and package installation. With the server running, he decided to self-host his personal website and experiment with a media server. The project took an unexpected turn when he discovered Docker and containers, opening up a broader range of possibilities.

0
ProgrammingDEV Community ·

How to Fix Common Code Splitting Mistakes and Boost Web App Performance

Code splitting is a widely used technique that breaks large JavaScript bundles into smaller, on-demand chunks to improve initial load times, but improper implementation can slow applications down rather than speed them up. Common pitfalls include over-splitting, which generates too many small chunks and increases network request overhead, and under-splitting, where chunks remain too large to deliver real performance gains. Developers also face issues with incorrect splitting points that create waterfall loading delays, as well as shared module duplication that inflates total download size across multiple chunks. Large third-party libraries can further undermine splitting efforts by bloating otherwise targeted chunks. Identifying these problems requires careful analysis of bundle structure and performance metrics before applying targeted fixes.

0
ProgrammingDEV Community ·

How CQRS Pattern Fixed a Construction App's Weekly Crash Under Peak Load

A field workforce reporting platform repeatedly crashed every Friday at 4:30 PM when thousands of construction workers simultaneously submitted weekly logs, overwhelming the database with concurrent read and write requests. Engineers redesigned the system using Command Query Responsibility Segregation (CQRS), routing write requests through Azure Service Bus so background workers could process submissions at a steady pace rather than all at once. The change eliminated end-of-week downtime by spreading a five-minute traffic spike across a manageable fifteen-minute processing window. However, the shift to asynchronous processing introduced eventual consistency, causing project managers to see outdated dashboards and prompting frustrated workers to resubmit forms multiple times, generating duplicate records. The team addressed this by adding unique submission IDs to prevent duplicates and displaying a processing status indicator in the UI so users understood their data was being handled.

All 236 Tests Passed Locally, Yet the Release Was Broken — Here's Why · ShortSingh