UNPKG

chrome-devtools-frontend

Version:
62 lines (58 loc) 1.54 kB
// Copyright 2020 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. 'use strict'; const rule = require('../lib/set-data-type-reference.js'); const {ruleTester} = require('./utils/utils.js'); ruleTester.run('set-data-type-reference', rule, { valid: [ { code: `class Foo extends HTMLElement { set data(data: FooData) {} }`, filename: 'front_end/common/foo.ts', }, { // Outside of a component anything goes code: `class Foo { set data(data) {} }`, filename: 'front_end/common/foo.ts', }, ], invalid: [ { code: `class Foo extends HTMLElement { set data(data) {} }`, filename: 'front_end/common/foo.ts', errors: [ { message: 'The type of a parameter in a data setter must be explicitly defined.', }, ], }, { code: `class Foo extends HTMLElement { set data() {} }`, filename: 'front_end/common/foo.ts', errors: [ { message: 'A data setter must take a parameter that is explicitly typed.', }, ], }, { code: `class Foo extends HTMLElement { set data(data: {some: 'literal'}) {} }`, filename: 'front_end/common/foo.ts', errors: [ { message: 'A data setter parameter\'s type must be a type reference, not a literal type defined inline.', }, ], }, ], });