mirror of
				https://github.com/microsoft/playwright.git
				synced 2025-06-26 21:40:17 +00:00 
			
		
		
		
	fix(test runner): respect updateSourceMethod from the config (#34442)
This commit is contained in:
		
							parent
							
								
									a9609ed6f2
								
							
						
					
					
						commit
						ab3b4b8cd0
					
				@ -282,7 +282,7 @@ async function mergeReports(reportDir: string | undefined, opts: { [key: string]
 | 
			
		||||
function overridesFromOptions(options: { [key: string]: any }): ConfigCLIOverrides {
 | 
			
		||||
  const shardPair = options.shard ? options.shard.split('/').map((t: string) => parseInt(t, 10)) : undefined;
 | 
			
		||||
 | 
			
		||||
  let updateSnapshots: 'all' | 'changed' | 'missing' | 'none';
 | 
			
		||||
  let updateSnapshots: 'all' | 'changed' | 'missing' | 'none' | undefined;
 | 
			
		||||
  if (['all', 'changed', 'missing', 'none'].includes(options.updateSnapshots))
 | 
			
		||||
    updateSnapshots = options.updateSnapshots;
 | 
			
		||||
  else
 | 
			
		||||
@ -303,7 +303,7 @@ function overridesFromOptions(options: { [key: string]: any }): ConfigCLIOverrid
 | 
			
		||||
    tsconfig: options.tsconfig ? path.resolve(process.cwd(), options.tsconfig) : undefined,
 | 
			
		||||
    ignoreSnapshots: options.ignoreSnapshots ? !!options.ignoreSnapshots : undefined,
 | 
			
		||||
    updateSnapshots,
 | 
			
		||||
    updateSourceMethod: options.updateSourceMethod || 'patch',
 | 
			
		||||
    updateSourceMethod: options.updateSourceMethod,
 | 
			
		||||
    workers: options.workers,
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -661,4 +661,45 @@ test.describe('update-source-method', () => {
 | 
			
		||||
  a.spec.ts
 | 
			
		||||
`);
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  test('should overwrite source when specified in the config', async ({ runInlineTest }, testInfo) => {
 | 
			
		||||
    const result = await runInlineTest({
 | 
			
		||||
      '.git/marker': '',
 | 
			
		||||
      'playwright.config.ts': `
 | 
			
		||||
        export default { updateSourceMethod: 'overwrite' };
 | 
			
		||||
      `,
 | 
			
		||||
      'a.spec.ts': `
 | 
			
		||||
        import { test, expect } from '@playwright/test';
 | 
			
		||||
        test('test', async ({ page }) => {
 | 
			
		||||
          await page.setContent(\`<h1>hello</h1>\`);
 | 
			
		||||
          await expect(page.locator('body')).toMatchAriaSnapshot(\`
 | 
			
		||||
            - heading "world"
 | 
			
		||||
          \`);
 | 
			
		||||
        });
 | 
			
		||||
      `
 | 
			
		||||
    }, { 'update-snapshots': 'all' });
 | 
			
		||||
 | 
			
		||||
    expect(result.exitCode).toBe(0);
 | 
			
		||||
    const patchPath = testInfo.outputPath('test-results/rebaselines.patch');
 | 
			
		||||
    expect(fs.existsSync(patchPath)).toBeFalsy();
 | 
			
		||||
 | 
			
		||||
    const data = fs.readFileSync(testInfo.outputPath('a.spec.ts'), 'utf-8');
 | 
			
		||||
    expect(data).toBe(`
 | 
			
		||||
        import { test, expect } from '@playwright/test';
 | 
			
		||||
        test('test', async ({ page }) => {
 | 
			
		||||
          await page.setContent(\`<h1>hello</h1>\`);
 | 
			
		||||
          await expect(page.locator('body')).toMatchAriaSnapshot(\`
 | 
			
		||||
            - heading "hello" [level=1]
 | 
			
		||||
          \`);
 | 
			
		||||
        });
 | 
			
		||||
      `);
 | 
			
		||||
 | 
			
		||||
    expect(stripAnsi(result.output).replace(/\\/g, '/')).toContain(`New baselines created for:
 | 
			
		||||
 | 
			
		||||
  a.spec.ts
 | 
			
		||||
`);
 | 
			
		||||
 | 
			
		||||
    const result2 = await runInlineTest({});
 | 
			
		||||
    expect(result2.exitCode).toBe(0);
 | 
			
		||||
  });
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user