diff --git a/packages/ui/client/components/trace/TraceView.vue b/packages/ui/client/components/trace/TraceView.vue
index e5b1cf414..2174a3514 100644
--- a/packages/ui/client/components/trace/TraceView.vue
+++ b/packages/ui/client/components/trace/TraceView.vue
@@ -71,6 +71,10 @@ function zoomOut() {
traceZoom.value = nextZoomOut.value ?? scale.value
}
+function resetZoom() {
+ traceZoom.value = 1
+}
+
function fitToPane() {
traceZoom.value = 'fit'
}
@@ -318,6 +322,13 @@ function onSplitpanesResized({ panes }: SplitpanesResizedPayload) {
:disabled="nextZoomIn == null"
@click="zoomIn()"
/>
+
Math.round((await iframe.boundingBox())!.width)).toBe(414)
// zoom out and persist across reloads
@@ -310,6 +312,13 @@ async function testZoom(page: Page) {
// zooming leaves fit mode
await zoomIn.click()
await expect(fitToPane).toHaveAttribute('aria-pressed', 'false')
+
+ // reset to actual size
+ await fitToPane.click()
+ await resetZoom.click()
+ await expect(zoomLabel).toHaveText('414x896 · 100%')
+ await expect(fitToPane).toHaveAttribute('aria-pressed', 'false')
+ await expect(resetZoom).toBeDisabled()
}
async function testViewport(page: Page) {