1
0
mirror of https://github.com/sasjs/lint.git synced 2026-01-15 08:10:05 +00:00

feat(*): group folder and project diagnostics by file path

This commit is contained in:
Krishna Acondy
2021-04-02 09:02:22 +01:00
parent 7aa4bfc6ba
commit 09e2d051c4
5 changed files with 51 additions and 26 deletions

View File

@@ -1,62 +1,71 @@
import { lintProject } from './lintProject'
import { Severity } from '../types/Severity'
import * as utils from '../utils'
import path from 'path'
jest.mock('../utils')
describe('lintProject', () => {
it('should identify lint issues in a given project', async () => {
jest
.spyOn(utils, 'getProjectRoot')
.mockImplementationOnce(() => Promise.resolve(path.join(__dirname, '..')))
const results = await lintProject()
expect(results.length).toEqual(8)
expect(results).toContainEqual({
expect(results.size).toEqual(1)
const diagnostics = results.get(
path.join(__dirname, '..', 'Example File.sas')
)!
expect(diagnostics.length).toEqual(8)
expect(diagnostics).toContainEqual({
message: 'Line contains trailing spaces',
lineNumber: 1,
startColumnNumber: 1,
endColumnNumber: 2,
severity: Severity.Warning
})
expect(results).toContainEqual({
expect(diagnostics).toContainEqual({
message: 'Line contains trailing spaces',
lineNumber: 2,
startColumnNumber: 1,
endColumnNumber: 2,
severity: Severity.Warning
})
expect(results).toContainEqual({
expect(diagnostics).toContainEqual({
message: 'File name contains spaces',
lineNumber: 1,
startColumnNumber: 1,
endColumnNumber: 1,
severity: Severity.Warning
})
expect(results).toContainEqual({
expect(diagnostics).toContainEqual({
message: 'File name contains uppercase characters',
lineNumber: 1,
startColumnNumber: 1,
endColumnNumber: 1,
severity: Severity.Warning
})
expect(results).toContainEqual({
expect(diagnostics).toContainEqual({
message: 'File missing Doxygen header',
lineNumber: 1,
startColumnNumber: 1,
endColumnNumber: 1,
severity: Severity.Warning
})
expect(results).toContainEqual({
expect(diagnostics).toContainEqual({
message: 'Line contains encoded password',
lineNumber: 5,
startColumnNumber: 10,
endColumnNumber: 18,
severity: Severity.Error
})
expect(results).toContainEqual({
expect(diagnostics).toContainEqual({
message: 'Line is indented with a tab',
lineNumber: 7,
startColumnNumber: 1,
endColumnNumber: 1,
severity: Severity.Warning
})
expect(results).toContainEqual({
expect(diagnostics).toContainEqual({
message: 'Line has incorrect indentation - 3 spaces',
lineNumber: 6,
startColumnNumber: 1,
@@ -64,4 +73,14 @@ describe('lintProject', () => {
severity: Severity.Warning
})
})
it('should throw an error when a project root is not found', async () => {
jest
.spyOn(utils, 'getProjectRoot')
.mockImplementationOnce(() => Promise.resolve(''))
await expect(lintProject()).rejects.toThrowError(
'SASjs Project Root was not found.'
)
})
})