UNPKG

solhint

Version:
75 lines (66 loc) 2.34 kB
const linter = require('../../../lib/index') const { assertNoWarnings, assertLineNumber, assertErrorMessage, assertWarnsCount, } = require('../../common/asserts') describe('Linter - no-global-import', () => { it('should raise on import * from "path"', () => { const code = `import * from './A.sol';` const report = linter.processStr(code, { rules: { 'no-global-import': 'warn' }, }) assertWarnsCount(report, 1) assertErrorMessage(report, 'global import') assertErrorMessage(report, 'Specify names to import individually') }) it('should raise on import "path"', () => { const code = `import './A.sol';` const report = linter.processStr(code, { rules: { 'no-global-import': 'warn' }, }) assertWarnsCount(report, 1) assertErrorMessage(report, 'global import') assertErrorMessage(report, 'Specify names to import individually') }) it('should raise warning when using solhint:recommended', () => { const code = `pragma solidity ^0.8.24; import "./A.sol";` const report = linter.processStr(code, { extends: 'solhint:recommended', }) assertWarnsCount(report, 1) assertErrorMessage(report, 'global import') assertErrorMessage(report, 'Specify names to import individually') }) it('should report correct line', () => { const code = `import {A} from './A.sol'; import './A.sol';` const report = linter.processStr(code, { rules: { 'no-global-import': 'warn' }, }) assertLineNumber(report.reports[0], 2) assertWarnsCount(report, 1) }) it('should not raise on import {identifier} from "path"', () => { const code = `import {A} from './A.sol';` const report = linter.processStr(code, { rules: { 'no-global-import': 'warn' }, }) assertNoWarnings(report) }) it('should not raise on import from "path" as NAME', () => { const code = `import "../../src/Helpers.sol" as H;` const report = linter.processStr(code, { rules: { 'no-global-import': 'warn' }, }) assertNoWarnings(report) }) it('should not raise on import * as NAME from "path" as NAME', () => { const code = `import * as H from "../../src/Helpers.sol";` const report = linter.processStr(code, { rules: { 'no-global-import': 'warn' }, }) assertNoWarnings(report) }) })