UNPKG

chrome-devtools-frontend

Version:
81 lines (77 loc) 2.6 kB
// Copyright 2025 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import rule from '../lib/no-lit-render-outside-of-view.ts'; import {RuleTester} from './utils/RuleTester.ts'; new RuleTester().run('no-lit-render-outside-of-view', rule, { valid: [ { code: `const DEFAULT_VIEW = (input, output, target) => { render(html\`<div>Hello world</div>\`, target, {host: input}); }`, filename: 'front_end/components/test.ts', }, { code: `function defaultView(viewInput, viewOutput, target) { render(html\`<div>Hello world</div>\`, target, {host: viewInput}); }`, filename: 'front_end/panels/recorder/test.ts', }, { code: `class SomeWidget extends UI.Widget.Widget { constructor(view = (input, _output, target) => { render(html\`<div>Hello world</div>\`, target, {host: input}); }) { super(view); } }`, filename: 'front_end/panels/recorder/test.ts', }, ], invalid: [ { code: `class SomeWidget extends UI.Widget.Widget { constructor() { super(); render(html\`<div>Hello world</div>\`, target, {host: this}); } }`, filename: 'front_end/components/test.ts', errors: [{messageId: 'litRenderShouldBeInsideOfView'}], }, { code: `class SomeWidget extends UI.Widget.Widget { constructor() { super(); this.render(); } render() { render(html\`<div>Hello world</div>\`, target, {host: this}); } }`, filename: 'front_end/components/test.ts', errors: [{messageId: 'litRenderShouldBeInsideOfView'}], }, { code: `const DEFAULT_VIEW = (input, output, target) => { render(html\`<div>Hello world</div>\`, target); }`, filename: 'front_end/components/test.ts', errors: [{messageId: 'litRenderShouldBeInsideOfView'}], }, { code: `const DEFAULT_VIEW = (input, output, target) => { render(html\`<div>Hello world</div>\`, target, {host: this}); }`, filename: 'front_end/components/test.ts', errors: [{messageId: 'litRenderShouldBeInsideOfView'}], }, { code: `const DEFAULT_VIEW = (input, output, target) => { render(html\`<div>Hello world</div>\`, this.contentElement, {host: input}); }`, filename: 'front_end/components/test.ts', errors: [{messageId: 'litRenderShouldBeInsideOfView'}], }, ], });