blob: f8526023aafd11c05452c21f66f3c587e546cb79 [file] [log] [blame]
<style>
body {
padding: 1em;
}
</style>
<template id="template">
<style>
details {
border: 1px black solid;
padding: 1em;
border-radius: 4px;
}
section {
margin: 1em;
}
#generated:not(:checked) ~ section.generated {
display: none;
}
#golden:not(:checked) ~ section.golden {
display: none;
}
#diff:not(:checked) ~ section.diff {
display: none;
}
#toggle:not(:checked) ~ section.toggle {
display: none;
}
</style>
<details>
<summary><slot name="summary"></slot></summary>
<input type="radio" name="screenshot" id=generated checked tabindex=0></input><label for=generated>Generated</label>
<input type="radio" name="screenshot" id=golden></input><label for=golden>Golden</label>
<input type="radio" name="screenshot" id=diff></input><label for=diff>Diff</label>
<input type="radio" name="screenshot" id=toggle hidden></input><label for=toggle>Toggle</label>
<section class="generated">
<slot name="generated"></slot>
</section>
<section class="golden">
<slot name="golden"></slot>
</section>
<section class="diff">
<slot name="diff"></slot>
</section>
<section class="toggle">
<slot name="generated"></slot>
<slot name="golden"></slot>
</section>
</details>
</template>
<h1>
Failed screenshot test artifacts
</h1>
<script src='../../out/Default/gen/test/.generated/errors.js'> type="module"></script>
<script type="module">
class ScreenshotView extends HTMLElement {
#shadow = this.attachShadow({mode: 'open'});
constructor() {
super();
this.#shadow.append(document.getElementById('template').content.cloneNode(true));
for (const section of this.#shadow.querySelectorAll('details')) {
section.ontoggle = e => section.open && section.querySelector('input').select({focusVisible: true});
}
}
expand() {
this.#shadow.querySelector('details').open = true;
}
}
customElements.define('screenshot-view', ScreenshotView);
for (const {screenshotPath, expected_image, actual_image, image_diff} of window.SCREENSHOT_ERRORS) {
const details = document.createElement('screenshot-view');
const append = (tag, slot) => {
const node = document.createElement(tag);
node.slot = slot;
details.appendChild(node);
return node;
};
document.body.appendChild(details);
append('span', 'summary').textContent = screenshotPath;
append('img', 'golden').src = expected_image.filePath;
append('img', 'generated').src = actual_image.filePath;
append('img', 'diff').src = image_diff.filePath;
}
document.body.querySelector('screenshot-view')?.expand();
</script>