import rule from '../lib/rules/unescaped-html-literal.js'
import {RuleTester} from 'eslint'
const ruleTester = new RuleTester()
ruleTester.run('unescaped-html-literal', rule, {
valid: [
{
code: '`Hello World!`;',
parserOptions: {ecmaVersion: 2017},
},
{
code: "'Hello World!'",
parserOptions: {ecmaVersion: 2017},
},
{
code: '"Hello World!"',
parserOptions: {ecmaVersion: 2017},
},
{
code: 'const helloTemplate = () => html`
Hello World!
`;',
parserOptions: {ecmaVersion: 2017},
},
{
code: 'const helloTemplate = (name) => html`Hello ${name}!
`;',
parserOptions: {ecmaVersion: 2017},
},
],
invalid: [
{
code: "const helloHTML = 'Hello, World!
'",
parserOptions: {ecmaVersion: 2017},
errors: [
{
message: 'Unescaped HTML literal. Use html`` tag template literal for secure escaping.',
type: 'Literal',
},
],
},
{
code: 'const helloHTML = "Hello, World!
"',
parserOptions: {ecmaVersion: 2017},
errors: [
{
message: 'Unescaped HTML literal. Use html`` tag template literal for secure escaping.',
type: 'Literal',
},
],
},
{
code: 'const helloHTML = `Hello ${name}!
`',
parserOptions: {ecmaVersion: 2017},
errors: [
{
message: 'Unescaped HTML literal. Use html`` tag template literal for secure escaping.',
type: 'TemplateLiteral',
},
],
},
{
code: 'const helloHTML = foo`Hello ${name}!
`',
parserOptions: {ecmaVersion: 2017},
errors: [
{
message: 'Unescaped HTML literal. Use html`` tag template literal for secure escaping.',
type: 'TemplateLiteral',
},
],
},
],
})