@locker/eslint-plugin-unsafe-types
Version:
Detect usage of unsigned unsafe types.
56 lines (51 loc) • 2.54 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');
const rule = require('../../../lib/rules/unsafe-aura-globalEval');
//------------------------------------------------------------------------------
// Tests
//------------------------------------------------------------------------------
const ruleTester = new RuleTester({
languageOptions: {
ecmaVersion: 'latest',
sourceType: 'script',
globals: {
window: 'readonly',
global: 'readonly',
globalThis: 'readonly',
setTimeout: 'readonly',
setInterval: 'readonly',
execScript: 'readonly',
},
},
});
ruleTester.run('unsafe-aura-globalEval', rule, {
valid: [
{ code: '$A.util.globalEval($A.lockerService.trusted.createScript(foo))' },
{ code: "$A.util['globalEval']($A.lockerService.trusted.createScript(foo))" },
{ code: "$A['util']['globalEval']($A.lockerService.trusted.createScript(foo))" },
{ code: 'window.$A.util.globalEval($A.lockerService.trusted.createScript(foo))' },
{ code: "window['$A'].util.globalEval($A.lockerService.trusted.createScript(foo))" },
{ code: "window['$A']['util'].globalEval($A.lockerService.trusted.createScript(foo))" },
{ code: "window['$A']['util']['globalEval']($A.lockerService.trusted.createScript(foo))" },
],
invalid: [
{ code: '$A.util.globalEval("foo")', errors: [{ messageId: 'unexpected' }] },
{ code: '$A.util.globalEval(foo)', errors: [{ messageId: 'unexpected' }] },
{ code: "$A.util['globalEval'](foo)", errors: [{ messageId: 'unexpected' }] },
{ code: "$A['util']['globalEval'](foo)", errors: [{ messageId: 'unexpected' }] },
{ code: "window.$A.util.globalEval('foo')", errors: [{ messageId: 'unexpected' }] },
{ code: "window['$A'].util.globalEval('foo')", errors: [{ messageId: 'unexpected' }] },
{ code: "window['$A']['util'].globalEval('foo')", errors: [{ messageId: 'unexpected' }] },
{
code: "window['$A']['util']['globalEval']('foo')",
errors: [{ messageId: 'unexpected' }],
},
],
});