From 1402802f0aec69a3e94273e4c404ffff80b43fc6 Mon Sep 17 00:00:00 2001 From: Saad Jutt Date: Fri, 16 Apr 2021 16:16:22 +0500 Subject: [PATCH] tests: added expectedDiagnostics array --- src/lint/lintFile.spec.ts | 140 +++++++++++++++++++---------------- src/lint/lintFolder.spec.ts | 140 +++++++++++++++++++---------------- src/lint/lintProject.spec.ts | 140 +++++++++++++++++++---------------- 3 files changed, 225 insertions(+), 195 deletions(-) diff --git a/src/lint/lintFile.spec.ts b/src/lint/lintFile.spec.ts index 1658e43..5754d8b 100644 --- a/src/lint/lintFile.spec.ts +++ b/src/lint/lintFile.spec.ts @@ -2,7 +2,71 @@ import { lintFile } from './lintFile' import { Severity } from '../types/Severity' import path from 'path' -const expectedDiagnosticsCount = 9 +const expectedDiagnostics = [ + { + message: 'Line contains trailing spaces', + lineNumber: 1, + startColumnNumber: 1, + endColumnNumber: 2, + severity: Severity.Warning + }, + { + message: 'Line contains trailing spaces', + lineNumber: 2, + startColumnNumber: 1, + endColumnNumber: 2, + severity: Severity.Warning + }, + { + message: 'File name contains spaces', + lineNumber: 1, + startColumnNumber: 1, + endColumnNumber: 1, + severity: Severity.Warning + }, + { + message: 'File name contains uppercase characters', + lineNumber: 1, + startColumnNumber: 1, + endColumnNumber: 1, + severity: Severity.Warning + }, + { + message: 'File missing Doxygen header', + lineNumber: 1, + startColumnNumber: 1, + endColumnNumber: 1, + severity: Severity.Warning + }, + { + message: 'Line contains encoded password', + lineNumber: 5, + startColumnNumber: 10, + endColumnNumber: 18, + severity: Severity.Error + }, + { + message: 'Line is indented with a tab', + lineNumber: 7, + startColumnNumber: 1, + endColumnNumber: 1, + severity: Severity.Warning + }, + { + message: 'Line has incorrect indentation - 3 spaces', + lineNumber: 6, + startColumnNumber: 1, + endColumnNumber: 1, + severity: Severity.Warning + }, + { + message: '%mend statement is missing macro name - mf_getuniquelibref', + lineNumber: 17, + startColumnNumber: 3, + endColumnNumber: 9, + severity: 1 + } +] describe('lintFile', () => { it('should identify lint issues in a given file', async () => { @@ -10,69 +74,15 @@ describe('lintFile', () => { path.join(__dirname, '..', 'Example File.sas') ) - expect(results.length).toEqual(expectedDiagnosticsCount) - expect(results).toContainEqual({ - message: 'Line contains trailing spaces', - lineNumber: 1, - startColumnNumber: 1, - endColumnNumber: 2, - severity: Severity.Warning - }) - expect(results).toContainEqual({ - message: 'Line contains trailing spaces', - lineNumber: 2, - startColumnNumber: 1, - endColumnNumber: 2, - severity: Severity.Warning - }) - expect(results).toContainEqual({ - message: 'File name contains spaces', - lineNumber: 1, - startColumnNumber: 1, - endColumnNumber: 1, - severity: Severity.Warning - }) - expect(results).toContainEqual({ - message: 'File name contains uppercase characters', - lineNumber: 1, - startColumnNumber: 1, - endColumnNumber: 1, - severity: Severity.Warning - }) - expect(results).toContainEqual({ - message: 'File missing Doxygen header', - lineNumber: 1, - startColumnNumber: 1, - endColumnNumber: 1, - severity: Severity.Warning - }) - expect(results).toContainEqual({ - message: 'Line contains encoded password', - lineNumber: 5, - startColumnNumber: 10, - endColumnNumber: 18, - severity: Severity.Error - }) - expect(results).toContainEqual({ - message: 'Line is indented with a tab', - lineNumber: 7, - startColumnNumber: 1, - endColumnNumber: 1, - severity: Severity.Warning - }) - expect(results).toContainEqual({ - message: 'Line has incorrect indentation - 3 spaces', - lineNumber: 6, - startColumnNumber: 1, - endColumnNumber: 1, - severity: Severity.Warning - }) - expect(results).toContainEqual({ - message: '%mend statement is missing macro name - mf_getuniquelibref', - lineNumber: 17, - startColumnNumber: 3, - endColumnNumber: 9, - severity: 1 - }) + expect(results.length).toEqual(expectedDiagnostics.length) + expect(results).toContainEqual(expectedDiagnostics[0]) + expect(results).toContainEqual(expectedDiagnostics[1]) + expect(results).toContainEqual(expectedDiagnostics[2]) + expect(results).toContainEqual(expectedDiagnostics[3]) + expect(results).toContainEqual(expectedDiagnostics[4]) + expect(results).toContainEqual(expectedDiagnostics[5]) + expect(results).toContainEqual(expectedDiagnostics[6]) + expect(results).toContainEqual(expectedDiagnostics[7]) + expect(results).toContainEqual(expectedDiagnostics[8]) }) }) diff --git a/src/lint/lintFolder.spec.ts b/src/lint/lintFolder.spec.ts index ae5dae4..4368b22 100644 --- a/src/lint/lintFolder.spec.ts +++ b/src/lint/lintFolder.spec.ts @@ -3,7 +3,71 @@ import { Severity } from '../types/Severity' import path from 'path' const expectedFilesCount = 1 -const expectedDiagnosticsCount = 9 +const expectedDiagnostics = [ + { + message: 'Line contains trailing spaces', + lineNumber: 1, + startColumnNumber: 1, + endColumnNumber: 2, + severity: Severity.Warning + }, + { + message: 'Line contains trailing spaces', + lineNumber: 2, + startColumnNumber: 1, + endColumnNumber: 2, + severity: Severity.Warning + }, + { + message: 'File name contains spaces', + lineNumber: 1, + startColumnNumber: 1, + endColumnNumber: 1, + severity: Severity.Warning + }, + { + message: 'File name contains uppercase characters', + lineNumber: 1, + startColumnNumber: 1, + endColumnNumber: 1, + severity: Severity.Warning + }, + { + message: 'File missing Doxygen header', + lineNumber: 1, + startColumnNumber: 1, + endColumnNumber: 1, + severity: Severity.Warning + }, + { + message: 'Line contains encoded password', + lineNumber: 5, + startColumnNumber: 10, + endColumnNumber: 18, + severity: Severity.Error + }, + { + message: 'Line is indented with a tab', + lineNumber: 7, + startColumnNumber: 1, + endColumnNumber: 1, + severity: Severity.Warning + }, + { + message: 'Line has incorrect indentation - 3 spaces', + lineNumber: 6, + startColumnNumber: 1, + endColumnNumber: 1, + severity: Severity.Warning + }, + { + message: '%mend statement is missing macro name - mf_getuniquelibref', + lineNumber: 17, + startColumnNumber: 3, + endColumnNumber: 9, + severity: 1 + } +] describe('lintFolder', () => { it('should identify lint issues in a given folder', async () => { @@ -13,69 +77,15 @@ describe('lintFolder', () => { const diagnostics = results.get( path.join(__dirname, '..', 'Example File.sas') )! - expect(diagnostics.length).toEqual(expectedDiagnosticsCount) - expect(diagnostics).toContainEqual({ - message: 'Line contains trailing spaces', - lineNumber: 1, - startColumnNumber: 1, - endColumnNumber: 2, - severity: Severity.Warning - }) - expect(diagnostics).toContainEqual({ - message: 'Line contains trailing spaces', - lineNumber: 2, - startColumnNumber: 1, - endColumnNumber: 2, - severity: Severity.Warning - }) - expect(diagnostics).toContainEqual({ - message: 'File name contains spaces', - lineNumber: 1, - startColumnNumber: 1, - endColumnNumber: 1, - severity: Severity.Warning - }) - expect(diagnostics).toContainEqual({ - message: 'File name contains uppercase characters', - lineNumber: 1, - startColumnNumber: 1, - endColumnNumber: 1, - severity: Severity.Warning - }) - expect(diagnostics).toContainEqual({ - message: 'File missing Doxygen header', - lineNumber: 1, - startColumnNumber: 1, - endColumnNumber: 1, - severity: Severity.Warning - }) - expect(diagnostics).toContainEqual({ - message: 'Line contains encoded password', - lineNumber: 5, - startColumnNumber: 10, - endColumnNumber: 18, - severity: Severity.Error - }) - expect(diagnostics).toContainEqual({ - message: 'Line is indented with a tab', - lineNumber: 7, - startColumnNumber: 1, - endColumnNumber: 1, - severity: Severity.Warning - }) - expect(diagnostics).toContainEqual({ - message: 'Line has incorrect indentation - 3 spaces', - lineNumber: 6, - startColumnNumber: 1, - endColumnNumber: 1, - severity: Severity.Warning - }) - expect(diagnostics).toContainEqual({ - message: '%mend statement is missing macro name - mf_getuniquelibref', - lineNumber: 17, - startColumnNumber: 3, - endColumnNumber: 9, - severity: 1 - }) + expect(diagnostics.length).toEqual(expectedDiagnostics.length) + expect(diagnostics).toContainEqual(expectedDiagnostics[0]) + expect(diagnostics).toContainEqual(expectedDiagnostics[1]) + expect(diagnostics).toContainEqual(expectedDiagnostics[2]) + expect(diagnostics).toContainEqual(expectedDiagnostics[3]) + expect(diagnostics).toContainEqual(expectedDiagnostics[4]) + expect(diagnostics).toContainEqual(expectedDiagnostics[5]) + expect(diagnostics).toContainEqual(expectedDiagnostics[6]) + expect(diagnostics).toContainEqual(expectedDiagnostics[7]) + expect(diagnostics).toContainEqual(expectedDiagnostics[8]) }) }) diff --git a/src/lint/lintProject.spec.ts b/src/lint/lintProject.spec.ts index 4544be5..de261b6 100644 --- a/src/lint/lintProject.spec.ts +++ b/src/lint/lintProject.spec.ts @@ -5,7 +5,71 @@ import path from 'path' jest.mock('../utils') const expectedFilesCount = 1 -const expectedDiagnosticsCount = 9 +const expectedDiagnostics = [ + { + message: 'Line contains trailing spaces', + lineNumber: 1, + startColumnNumber: 1, + endColumnNumber: 2, + severity: Severity.Warning + }, + { + message: 'Line contains trailing spaces', + lineNumber: 2, + startColumnNumber: 1, + endColumnNumber: 2, + severity: Severity.Warning + }, + { + message: 'File name contains spaces', + lineNumber: 1, + startColumnNumber: 1, + endColumnNumber: 1, + severity: Severity.Warning + }, + { + message: 'File name contains uppercase characters', + lineNumber: 1, + startColumnNumber: 1, + endColumnNumber: 1, + severity: Severity.Warning + }, + { + message: 'File missing Doxygen header', + lineNumber: 1, + startColumnNumber: 1, + endColumnNumber: 1, + severity: Severity.Warning + }, + { + message: 'Line contains encoded password', + lineNumber: 5, + startColumnNumber: 10, + endColumnNumber: 18, + severity: Severity.Error + }, + { + message: 'Line is indented with a tab', + lineNumber: 7, + startColumnNumber: 1, + endColumnNumber: 1, + severity: Severity.Warning + }, + { + message: 'Line has incorrect indentation - 3 spaces', + lineNumber: 6, + startColumnNumber: 1, + endColumnNumber: 1, + severity: Severity.Warning + }, + { + message: '%mend statement is missing macro name - mf_getuniquelibref', + lineNumber: 17, + startColumnNumber: 3, + endColumnNumber: 9, + severity: 1 + } +] describe('lintProject', () => { it('should identify lint issues in a given project', async () => { @@ -18,70 +82,16 @@ describe('lintProject', () => { const diagnostics = results.get( path.join(__dirname, '..', 'Example File.sas') )! - expect(diagnostics.length).toEqual(expectedDiagnosticsCount) - expect(diagnostics).toContainEqual({ - message: 'Line contains trailing spaces', - lineNumber: 1, - startColumnNumber: 1, - endColumnNumber: 2, - severity: Severity.Warning - }) - expect(diagnostics).toContainEqual({ - message: 'Line contains trailing spaces', - lineNumber: 2, - startColumnNumber: 1, - endColumnNumber: 2, - severity: Severity.Warning - }) - expect(diagnostics).toContainEqual({ - message: 'File name contains spaces', - lineNumber: 1, - startColumnNumber: 1, - endColumnNumber: 1, - severity: Severity.Warning - }) - expect(diagnostics).toContainEqual({ - message: 'File name contains uppercase characters', - lineNumber: 1, - startColumnNumber: 1, - endColumnNumber: 1, - severity: Severity.Warning - }) - expect(diagnostics).toContainEqual({ - message: 'File missing Doxygen header', - lineNumber: 1, - startColumnNumber: 1, - endColumnNumber: 1, - severity: Severity.Warning - }) - expect(diagnostics).toContainEqual({ - message: 'Line contains encoded password', - lineNumber: 5, - startColumnNumber: 10, - endColumnNumber: 18, - severity: Severity.Error - }) - expect(diagnostics).toContainEqual({ - message: 'Line is indented with a tab', - lineNumber: 7, - startColumnNumber: 1, - endColumnNumber: 1, - severity: Severity.Warning - }) - expect(diagnostics).toContainEqual({ - message: 'Line has incorrect indentation - 3 spaces', - lineNumber: 6, - startColumnNumber: 1, - endColumnNumber: 1, - severity: Severity.Warning - }) - expect(diagnostics).toContainEqual({ - message: '%mend statement is missing macro name - mf_getuniquelibref', - lineNumber: 17, - startColumnNumber: 3, - endColumnNumber: 9, - severity: 1 - }) + expect(diagnostics.length).toEqual(expectedDiagnostics.length) + expect(diagnostics).toContainEqual(expectedDiagnostics[0]) + expect(diagnostics).toContainEqual(expectedDiagnostics[1]) + expect(diagnostics).toContainEqual(expectedDiagnostics[2]) + expect(diagnostics).toContainEqual(expectedDiagnostics[3]) + expect(diagnostics).toContainEqual(expectedDiagnostics[4]) + expect(diagnostics).toContainEqual(expectedDiagnostics[5]) + expect(diagnostics).toContainEqual(expectedDiagnostics[6]) + expect(diagnostics).toContainEqual(expectedDiagnostics[7]) + expect(diagnostics).toContainEqual(expectedDiagnostics[8]) }) it('should throw an error when a project root is not found', async () => {