mirror of
https://github.com/sasjs/lint.git
synced 2026-01-12 06:40:06 +00:00
feat(format): add the ability to format files, folders and projects
This commit is contained in:
51
src/format/formatProject.spec.ts
Normal file
51
src/format/formatProject.spec.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
import { formatProject } from './formatProject'
|
||||
import path from 'path'
|
||||
import {
|
||||
createFile,
|
||||
createFolder,
|
||||
deleteFolder,
|
||||
readFile
|
||||
} from '@sasjs/utils/file'
|
||||
import { DefaultLintConfiguration } from '../utils'
|
||||
import * as getProjectRootModule from '../utils/getProjectRoot'
|
||||
jest.mock('../utils/getProjectRoot')
|
||||
|
||||
describe('formatProject', () => {
|
||||
it('should format files in the current project', async () => {
|
||||
const content = `%macro somemacro(); \n%put 'hello';\n%mend;`
|
||||
const expectedContent = `/**\n @file\n @brief <Your brief here>\n <h4> SAS Macros </h4>\n**/\n%macro somemacro();\n%put 'hello';\n%mend somemacro;\n`
|
||||
await createFolder(path.join(__dirname, 'format-project-test'))
|
||||
await createFile(
|
||||
path.join(__dirname, 'format-project-test', 'format-project-test.sas'),
|
||||
content
|
||||
)
|
||||
await createFile(
|
||||
path.join(__dirname, 'format-project-test', '.sasjslint'),
|
||||
JSON.stringify(DefaultLintConfiguration)
|
||||
)
|
||||
jest
|
||||
.spyOn(getProjectRootModule, 'getProjectRoot')
|
||||
.mockImplementation(() =>
|
||||
Promise.resolve(path.join(__dirname, 'format-project-test'))
|
||||
)
|
||||
|
||||
await formatProject()
|
||||
const result = await readFile(
|
||||
path.join(__dirname, 'format-project-test', 'format-project-test.sas')
|
||||
)
|
||||
|
||||
expect(result).toEqual(expectedContent)
|
||||
|
||||
await deleteFolder(path.join(__dirname, 'format-project-test'))
|
||||
})
|
||||
|
||||
it('should throw an error when a project root is not found', async () => {
|
||||
jest
|
||||
.spyOn(getProjectRootModule, 'getProjectRoot')
|
||||
.mockImplementationOnce(() => Promise.resolve(''))
|
||||
|
||||
await expect(formatProject()).rejects.toThrowError(
|
||||
'SASjs Project Root was not found.'
|
||||
)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user