fix: improve test isolation in graphql-mesh-server maintenance tests#1511
Merged
Conversation
- Changed beforeAll to beforeEach in whitelist.test.ts to ensure proper test isolation - Changed beforeAll to beforeEach in maintenance.test.ts to ensure proper test isolation - Prevents test interference when tests share file system state - Fixes flaky test failures in CI pipeline The issue was that tests were sharing file system state without proper reset between tests, causing race conditions and inconsistent results in different execution environments. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Added proper file cleanup in beforeEach hooks to prevent race conditions - Fixed test dependency by setting up required state within individual tests - Ensures tests can run independently without relying on execution order - Fixes JSON parsing errors caused by corrupted files from concurrent access This addresses the remaining CI failures where tests were interfering with each other's file system state, causing "Unexpected end of JSON input" errors. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
beforeAlltobeforeEachin both maintenance test filesProblem
The maintenance tests in graphql-mesh-server were failing intermittently in CI due to race conditions and shared file system state between tests. The whitelist test expected to find a complete IP allowlist but was only receiving a single IP address, indicating test interference.
Root Cause
beforeAllhooks to set up file system stateSolution
Changed both test files to use
beforeEachinstead ofbeforeAll:whitelist.test.ts: Reset whitelist state before each testmaintenance.test.ts: Reset maintenance status before each testThis ensures complete test isolation and prevents shared state issues.
Test Plan
Verification
🤖 Generated with Claude Code