UNPKG

@nova-ui/bits

Version:

SolarWinds Nova Framework

45 lines 1.58 kB
// © 2026 SolarWinds Worldwide, LLC. All rights reserved. import * as fs from "fs"; export class EyesLens { constructor(page, settings) { this.page = page; this.settings = settings; this.snapshotsFolderName = "_snapshots"; } async takeSnapshot(label) { await this.ensureDir(); const filePath = this.buildFilePath(label); const buffer = await this.page.screenshot({ fullPage: false }); await fs.promises.writeFile(filePath, buffer); } async takeFullScreenSnapshot(label) { await this.ensureDir(); const filePath = this.buildFilePath(label); const buffer = await this.page.screenshot({ fullPage: true }); await fs.promises.writeFile(filePath, buffer); } async cameraON() { await this.page.addStyleTag({ content: "input, textarea { caret-color: transparent;} * {cursor: none !important;}", }); } async cameraOFF() { // no-op } toolConfig() { return { name: "eyes", outputDir: this.snapshotsFolderName }; } buildFilePath(label) { const safeTest = this.settings.currentTestName.replace(/[\\\/\s]/g, "_"); const safeLabel = label.replace(/[\\\/\s]/g, "_"); return `${this.snapshotsFolderName}/${safeTest}_${safeLabel}.png`; } async ensureDir() { if (!fs.existsSync(this.snapshotsFolderName)) { await fs.promises.mkdir(this.snapshotsFolderName, { recursive: true, }); } } } //# sourceMappingURL=eyes-lens.js.map