text: 'use strict';
  
  const _require = require('./util'),
        getDocsUrl = _require.getDocsUrl,
        expectCase = _require.expectCase,
        expectNotCase = _require.expectNotCase,
        expectResolveCase = _require.expectResolveCase,
        expectRejectCase = _require.expectRejectCase,
        method = _require.method;
  
  module.exports = {
    meta: {
      docs: {
        url: getDocsUrl(__filename)
      },
      messages: {
        avoidMessage: 'Avoid {{methodName}}'
      },
      schema: []
    },
  
    create(context) {
      return {
        CallExpression(node) {
          if (expectCase(node) || expectNotCase(node) || expectResolveCase(node) || expectRejectCase(node)) {
            const targetNode = node.parent.parent.type === 'MemberExpression' ? node.parent : node;
            const methodNode = method(targetNode);
            const methodName = methodNode.name;
  
            if (methodName === 'toBeTruthy' || methodName === 'toBeFalsy') {
              context.report({
                data: {
                  methodName
                },
                messageId: 'avoidMessage',
                node: methodNode
              });
            }
          }
        }
  
      };
    }
  
  };