UNPKG

eslint-plugin-sonarjs

Version:
27 lines (26 loc) • 1.27 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.isTSAssertion = isTSAssertion; const typescript_1 = __importDefault(require("typescript")); const HTTP_TESTING_CONTROLLER_METHODS = new Set(['expectOne', 'expectNone', 'verify']); const HTTP_TESTING_CONTROLLER_NAME = 'HttpTestingController'; const HTTP_TESTING_CONTROLLER_MODULE_PATH = '@angular/common/http/testing'; function isTSAssertion(services, node) { if (!typescript_1.default.isCallExpression(node) || !typescript_1.default.isPropertyAccessExpression(node.expression)) { return false; } if (!HTTP_TESTING_CONTROLLER_METHODS.has(node.expression.name.text)) { return false; } const typeChecker = services.program.getTypeChecker(); const symbol = typeChecker.getTypeAtLocation(node.expression.expression).symbol; return (symbol?.getName() === HTTP_TESTING_CONTROLLER_NAME && (symbol.declarations?.some(declaration => declaration .getSourceFile() .fileName.replaceAll('\\', '/') .includes(HTTP_TESTING_CONTROLLER_MODULE_PATH)) ?? false)); }