blob: b28c9f9e475391e24082b4e688cad93b6699b25e [file] [log] [blame]
// Copyright 2024 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 tsParser = require('@typescript-eslint/parser');
const path = require('path');
const rule = require('../lib/enforce-default-import-name.js');
const ruleTester = new (require('eslint').RuleTester)({
languageOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
parser: tsParser,
},
});
const TEST_OPTIONS = [
{
modulePath: path.join(
__dirname,
'..',
'..',
'..',
'front_end',
'models',
'trace',
'trace.js',
),
importName: 'Trace',
},
];
ruleTester.run('enforce-default-import-name', rule, {
valid: [
{
code: 'import * as Trace from "../models/trace/trace.js"',
filename: 'front_end/common/Importing.js',
options: TEST_OPTIONS,
},
{
code: 'import * as TraceEngine from "../models/not-the-trace/not-the-trace.js"',
filename: 'front_end/common/Importing.js',
options: TEST_OPTIONS,
},
],
invalid: [
{
code: 'import * as TraceEngine from "../models/trace/trace.js"',
filename: 'front_end/common/Importing.js',
options: TEST_OPTIONS,
errors: [
{
message: 'When importing ../models/trace/trace.js, the name used must be Trace',
},
],
},
],
});