Browse Source

test: helper to expect deprecation warnings (#39405)

David Sanders 1 year ago
parent
commit
0425454687
1 changed files with 26 additions and 0 deletions
  1. 26 0
      spec/lib/deprecate-helpers.ts

+ 26 - 0
spec/lib/deprecate-helpers.ts

@@ -0,0 +1,26 @@
+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);
+  }
+}