🐛 Start server after launching a browser and creating a build#81
Merged
Conversation
Both returning assignments and sequences can be useful for quick tests
Sriram567
added a commit
that referenced
this pull request
Jun 16, 2026
…dows CI)
The 4 self-hosted /percy/maestro-screenshot tests hardcoded POSIX paths
under `/tmp/percy-self-hosted-*`. Windows has no `/tmp/`, so on the
Windows CI runner:
- fs.mkdirSync('/tmp/...') doesn't create the expected fixture root
- the relay's `path.isAbsolute('/tmp/...')` is false on Windows
- PERCY_MAESTRO_SCREENSHOT_DIR rejects, glob returns no match
- all 4 tests 404 — caused both the original task #81 failures and
the persistent Windows-only Test @percy/core red status on cli#2261
Fix: use `path.join(os.tmpdir(), 'percy-self-hosted-...')` so the
fixtures land in the OS's real temp directory on every platform.
Replace string-template path concatenation with `path.join(...)` to
keep separators platform-correct.
Production code is unaffected (it accepts absolute paths from the
customer regardless of platform). This is purely a test-fixture
portability fix.
Resolves task #81 (self-hosted unit-test failures on Windows / memfs+
fast-glob interaction).
Co-Authored-By: Claude Opus 4.7 <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.
Purpose
When using the
exec:startcommand it downloads a browser if needed just like theexeccommand. However, theexeccommand waits for the start process to resolve directly before calling the provided command while the user/SDK is left to check this themselves when usingexec:start. The healthcheck endpoint resolves when the server is listening, but the server is actually listening before a browser is downloaded and the process is actually ready.Approach
Move the server start process to after the browser launch and build creation processes. This ensures that the server, and therefore the healthcheck endpoint, will only resolve when actually ready.
To test this, the various methods are stubbed to capture a timestamp and the resulting timestamps are compared after starting the whole process.