* Disable flaky test Co-authored-by: clavin <clavin@electronjs.org> * Add helper for storing test artifacts Co-authored-by: clavin <clavin@electronjs.org> * Refactor screen capture tests We have a pattern for inspecting a screen capture, so this refactor codifies that pattern into a helper. This gives us shorter test code, consistency (previously, the display in test code and the display captured could theoretically be different), and better debugging/observability on failure. Co-authored-by: clavin <clavin@electronjs.org> --------- Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: clavin <clavin@electronjs.org>
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			862 B
			
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			862 B
			
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import path = require('node:path');
 | 
						|
import fs = require('node:fs/promises');
 | 
						|
import { randomBytes } from 'node:crypto';
 | 
						|
 | 
						|
const IS_CI = !!process.env.CI;
 | 
						|
const ARTIFACT_DIR = path.join(__dirname, '..', 'artifacts');
 | 
						|
 | 
						|
async function ensureArtifactDir (): Promise<void> {
 | 
						|
  if (!IS_CI) {
 | 
						|
    return;
 | 
						|
  }
 | 
						|
 | 
						|
  await fs.mkdir(ARTIFACT_DIR, { recursive: true });
 | 
						|
}
 | 
						|
 | 
						|
export async function createArtifact (
 | 
						|
  fileName: string,
 | 
						|
  data: Buffer
 | 
						|
): Promise<void> {
 | 
						|
  if (!IS_CI) {
 | 
						|
    return;
 | 
						|
  }
 | 
						|
 | 
						|
  await ensureArtifactDir();
 | 
						|
  await fs.writeFile(path.join(ARTIFACT_DIR, fileName), data);
 | 
						|
}
 | 
						|
 | 
						|
export async function createArtifactWithRandomId (
 | 
						|
  makeFileName: (id: string) => string,
 | 
						|
  data: Buffer
 | 
						|
): Promise<string> {
 | 
						|
  const randomId = randomBytes(12).toString('hex');
 | 
						|
  const fileName = makeFileName(randomId);
 | 
						|
  await createArtifact(fileName, data);
 | 
						|
  return fileName;
 | 
						|
}
 |