From 9c2a47586f0b6d288fc63d3a564a7b410924f6ed Mon Sep 17 00:00:00 2001 From: Thomas Lombart Date: Tue, 4 Feb 2020 10:21:02 +0100 Subject: [PATCH 1/2] fix: support async render --- lib/rules/no-debug.js | 23 ++++++++++++++++------- tests/lib/rules/no-debug.js | 28 ++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 7 deletions(-) diff --git a/lib/rules/no-debug.js b/lib/rules/no-debug.js index 83086af2..99ae14e4 100644 --- a/lib/rules/no-debug.js +++ b/lib/rules/no-debug.js @@ -48,13 +48,7 @@ module.exports = { return { VariableDeclarator(node) { - if ( - node.init && - node.init.callee && - ['render', ...renderFunctions].some( - name => name === node.init.callee.name - ) - ) { + if (isRenderVariableDeclarator(node, renderFunctions)) { if ( node.id.type === 'ObjectPattern' && node.id.properties.some(property => property.key.name === 'debug') @@ -149,3 +143,18 @@ module.exports = { }; }, }; + +function isRenderVariableDeclarator(node, renderFunctions) { + const isRenderFunction = callNode => + ['render', ...renderFunctions].some(name => name === callNode.callee.name); + + if (node.init) { + if (node.init.type === 'AwaitExpression') { + return node.init.argument && isRenderFunction(node.init.argument); + } else { + return node.init.callee && isRenderFunction(node.init); + } + } + + return false; +} diff --git a/tests/lib/rules/no-debug.js b/tests/lib/rules/no-debug.js index 5b9cca2b..e924a739 100644 --- a/tests/lib/rules/no-debug.js +++ b/tests/lib/rules/no-debug.js @@ -147,6 +147,34 @@ ruleTester.run('no-debug', rule, { }, ], }, + { + code: ` + describe(() => { + test(async () => { + const { debug } = await render("foo") + debug() + }) + })`, + errors: [ + { + messageId: 'noDebug', + }, + ], + }, + { + code: ` + describe(() => { + test(async () => { + const utils = await render("foo") + utils.debug() + }) + })`, + errors: [ + { + messageId: 'noDebug', + }, + ], + }, { code: ` const { screen } = require('@testing-library/dom') From 65d2ec7fa1ac471f89dd79b66cec0376490f4c61 Mon Sep 17 00:00:00 2001 From: Thomas Lombart Date: Tue, 4 Feb 2020 16:47:30 +0100 Subject: [PATCH 2/2] fix: address PR feedback --- lib/rules/no-debug.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/rules/no-debug.js b/lib/rules/no-debug.js index 99ae14e4..d82057a6 100644 --- a/lib/rules/no-debug.js +++ b/lib/rules/no-debug.js @@ -144,15 +144,21 @@ module.exports = { }, }; -function isRenderVariableDeclarator(node, renderFunctions) { - const isRenderFunction = callNode => - ['render', ...renderFunctions].some(name => name === callNode.callee.name); +function isRenderFunction(callNode, renderFunctions) { + return ['render', ...renderFunctions].some( + name => name === callNode.callee.name + ); +} +function isRenderVariableDeclarator(node, renderFunctions) { if (node.init) { if (node.init.type === 'AwaitExpression') { - return node.init.argument && isRenderFunction(node.init.argument); + return ( + node.init.argument && + isRenderFunction(node.init.argument, renderFunctions) + ); } else { - return node.init.callee && isRenderFunction(node.init); + return node.init.callee && isRenderFunction(node.init, renderFunctions); } }