UNPKG

1.14 kBJavaScriptView Raw
1'use strict';
2
3const {
4 getDocsUrl,
5 hasExpressions,
6 isDescribe,
7 isTestCase,
8 isTemplateLiteral,
9 isString,
10 getStringValue,
11} = require('./util');
12
13const errorMessages = {
14 describe: 'describe should not have an empty title',
15 test: 'test should not have an empty title',
16};
17
18module.exports = {
19 meta: {
20 docs: {
21 url: getDocsUrl(__filename),
22 },
23 },
24 create(context) {
25 return {
26 CallExpression(node) {
27 const is = {
28 describe: isDescribe(node),
29 testCase: isTestCase(node),
30 };
31 if (!is.describe && !is.testCase) {
32 return;
33 }
34 const [firstArgument] = node.arguments;
35 if (!isString(firstArgument)) {
36 return;
37 }
38 if (isTemplateLiteral(firstArgument) && hasExpressions(firstArgument)) {
39 return;
40 }
41 if (getStringValue(firstArgument) === '') {
42 const message = is.describe
43 ? errorMessages.describe
44 : errorMessages.test;
45 context.report({
46 message,
47 node,
48 });
49 }
50 },
51 };
52 },
53 errorMessages,
54};