mirror of
https://github.com/sasjs/lint.git
synced 2026-01-08 21:10:05 +00:00
feat: add new config maxDataLineLength
This commit is contained in:
@@ -41,4 +41,44 @@ describe('maxLineLength', () => {
|
||||
'Prow scuttle parrel provost Sail ho shrouds spirits boom mizzenmast yard'
|
||||
expect(maxLineLength.test(line, 1)).toEqual([])
|
||||
})
|
||||
|
||||
it('should return an array with a single diagnostic when the line in header section exceeds the specified length', () => {
|
||||
const line = 'This line is from header section'
|
||||
const config = new LintConfig({
|
||||
maxLineLength: 10,
|
||||
maxHeaderLineLength: 15
|
||||
})
|
||||
expect(maxLineLength.test(line, 1, config, { isHeaderLine: true })).toEqual(
|
||||
[
|
||||
{
|
||||
message: `Line exceeds maximum length by ${
|
||||
line.length - config.maxHeaderLineLength
|
||||
} characters`,
|
||||
lineNumber: 1,
|
||||
startColumnNumber: 1,
|
||||
endColumnNumber: 1,
|
||||
severity: Severity.Warning
|
||||
}
|
||||
]
|
||||
)
|
||||
})
|
||||
|
||||
it('should return an array with a single diagnostic when the line in data section exceeds the specified length', () => {
|
||||
const line = 'GROUP_LOGIC:$3. SUBGROUP_LOGIC:$3. SUBGROUP_ID:8.'
|
||||
const config = new LintConfig({
|
||||
maxLineLength: 10,
|
||||
maxDataLineLength: 15
|
||||
})
|
||||
expect(maxLineLength.test(line, 1, config, { isDataLine: true })).toEqual([
|
||||
{
|
||||
message: `Line exceeds maximum length by ${
|
||||
line.length - config.maxDataLineLength
|
||||
} characters`,
|
||||
lineNumber: 1,
|
||||
startColumnNumber: 1,
|
||||
endColumnNumber: 1,
|
||||
severity: Severity.Warning
|
||||
}
|
||||
])
|
||||
})
|
||||
})
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { LintConfig } from '../../types'
|
||||
import { LineLintRule } from '../../types/LintRule'
|
||||
import { LineLintRule, LineLintRuleOptions } from '../../types/LintRule'
|
||||
import { LintRuleType } from '../../types/LintRuleType'
|
||||
import { Severity } from '../../types/Severity'
|
||||
import { DefaultLintConfiguration } from '../../utils'
|
||||
@@ -12,15 +12,19 @@ const test = (
|
||||
value: string,
|
||||
lineNumber: number,
|
||||
config?: LintConfig,
|
||||
isHeaderLine?: boolean
|
||||
options?: LineLintRuleOptions
|
||||
) => {
|
||||
const severity = config?.severityLevel[name] || Severity.Warning
|
||||
let maxLineLength = config
|
||||
? config.maxLineLength
|
||||
: DefaultLintConfiguration.maxLineLength
|
||||
let maxLineLength = DefaultLintConfiguration.maxLineLength
|
||||
|
||||
if (isHeaderLine && config) {
|
||||
maxLineLength = Math.max(config.maxLineLength, config.maxHeaderLineLength)
|
||||
if (config) {
|
||||
if (options?.isHeaderLine) {
|
||||
maxLineLength = Math.max(config.maxLineLength, config.maxHeaderLineLength)
|
||||
} else if (options?.isDataLine) {
|
||||
maxLineLength = Math.max(config.maxLineLength, config.maxDataLineLength)
|
||||
} else {
|
||||
maxLineLength = config.maxLineLength
|
||||
}
|
||||
}
|
||||
|
||||
if (value.length <= maxLineLength) return []
|
||||
|
||||
Reference in New Issue
Block a user