26 lines
		
	
	
	
		
			666 B
			
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
	
		
			666 B
			
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { expect } from 'chai';
 | 
						|
 | 
						|
export async function expectDeprecationMessages (func: () => any, ...expected: string[]) {
 | 
						|
  const messages: string[] = [];
 | 
						|
 | 
						|
  const originalWarn = console.warn;
 | 
						|
  console.warn = (message) => {
 | 
						|
    messages.push(message);
 | 
						|
  };
 | 
						|
 | 
						|
  const warningListener = (error: Error) => {
 | 
						|
    messages.push(error.message);
 | 
						|
  };
 | 
						|
 | 
						|
  process.on('warning', warningListener);
 | 
						|
 | 
						|
  try {
 | 
						|
    return await func();
 | 
						|
  } finally {
 | 
						|
    // process.emitWarning seems to need us to wait a tick
 | 
						|
    await new Promise(process.nextTick);
 | 
						|
    console.warn = originalWarn;
 | 
						|
    process.off('warning', warningListener);
 | 
						|
    expect(messages).to.deep.equal(expected);
 | 
						|
  }
 | 
						|
}
 |