diff --git a/docs/rules/use-t-well.md b/docs/rules/use-t-well.md index 52a975ab..95f96a00 100644 --- a/docs/rules/use-t-well.md +++ b/docs/rules/use-t-well.md @@ -10,7 +10,7 @@ Prevent the use of unknown assertion methods and the access to members other tha ```js import test from 'ava'; -test(t => { +test('main', t => { t(value); // `t` is not a function t.depEqual(value, [2]); // Unknown assertion method `depEqual` t.contxt.foo = 100; // Unknown member `contxt`. Use `context.contxt` instead @@ -27,9 +27,10 @@ test(t => { ```js import test from 'ava'; -test(t => { +test('main', t => { t.deepEqual(value, [2]); t.context.a = 100; + require(`fixtures/${t.title}`); t.deepEqual.skip(); }); ``` diff --git a/rules/use-t-well.js b/rules/use-t-well.js index 6fa1af3b..5ab10fa7 100644 --- a/rules/use-t-well.js +++ b/rules/use-t-well.js @@ -70,6 +70,19 @@ const create = context => { return; } + if (members[0] === 'title') { + // Anything is fine when of the form `t.title...` + if (members.length === 1 && isCallExpression(node)) { + // Except `t.title()` + context.report({ + node, + message: 'Unknown assertion method `title`.' + }); + } + + return; + } + if (isCallExpression(node)) { if (stats.other.length > 0) { context.report({ diff --git a/test/use-t-well.js b/test/use-t-well.js index 771d749b..6e8037a0 100644 --- a/test/use-t-well.js +++ b/test/use-t-well.js @@ -53,6 +53,10 @@ ruleTester.run('use-t-well', rule, { testCase('t.skip.deepEqual(a, a);'), testCase('t.context.a = 1;'), testCase('t.context.foo.skip();'), + testCase('console.log(t.context);'), + testCase('t.true(t.context.title(foo));'), + testCase('console.log(t.title);'), + testCase('t.true(t.title.includes(\'Unicorns\'));'), testCase('setImmediate(t.end);'), testCase('t.deepEqual;'), testCase('t.plan(1);'), @@ -87,6 +91,10 @@ ruleTester.run('use-t-well', rule, { code: testCase('t.context();'), errors: [error('Unknown assertion method `context`.')] }, + { + code: testCase('t.title();'), + errors: [error('Unknown assertion method `title`.')] + }, { code: testCase('t.a = 1;'), errors: [error('Unknown member `a`. Use `context.a` instead.')]