@locker/eslint-plugin-unsafe-types
Version:
Detect usage of unsigned unsafe types.
47 lines (41 loc) • 2 kB
JavaScript
/** Original file https://github.com/eslint/eslint/blob/main/tests/lib/rules/no-eval.js
* @fileoverview Detect usage of unsigned eval calls.
* @author Lightning Web Security Team
*/
'use strict';
//------------------------------------------------------------------------------
// Requirements
//------------------------------------------------------------------------------
const RuleTester = require('eslint').RuleTester;
const rule = require('../../../lib/rules/unsafe-aura-globalEval');
//------------------------------------------------------------------------------
// Tests
//------------------------------------------------------------------------------
const env = { browser: true, commonjs: true, es2024: true, jquery: true };
const ruleTester = new RuleTester();
ruleTester.run('unsafe-aura-globalEval', rule, {
valid: [
'$A.util.globalEval($A.lockerService.trusted.createScript(foo))',
'$A.util.globalEval($A.lockerService.trusted.createScript(foo))',
"$A.util['globalEval']($A.lockerService.trusted.createScript(foo))",
"$A['util']['globalEval']($A.lockerService.trusted.createScript(foo))",
'window.$A.util.globalEval($A.lockerService.trusted.createScript(foo))',
"window['$A'].util.globalEval($A.lockerService.trusted.createScript(foo))",
"window['$A']['util'].globalEval($A.lockerService.trusted.createScript(foo))",
"window['$A']['util']['globalEval']($A.lockerService.trusted.createScript(foo))",
].map((code) => ({ code, env })),
invalid: [
'$A.util.globalEval("foo")',
'$A.util.globalEval(foo)',
"$A.util['globalEval'](foo)",
"$A['util']['globalEval'](foo)",
"window.$A.util.globalEval('foo')",
"window['$A'].util.globalEval('foo')",
"window['$A']['util'].globalEval('foo')",
"window['$A']['util']['globalEval']('foo')",
].map((code) => ({
code,
env,
errors: [{ messageId: 'unexpected' }],
})),
});