diff --git a/src/__tests__/_example/index.ts b/src/__tests__/_example/index.ts new file mode 100644 index 00000000..7cceaefa --- /dev/null +++ b/src/__tests__/_example/index.ts @@ -0,0 +1,36 @@ +import { existsSync, readFileSync, rmdirSync } from 'fs'; + +import { convertFromDirectory } from '../../index'; + +describe('example', () => { + const typeOutputDirectory = './src/__tests__/_example/interfaces'; + + beforeAll(() => { + if (existsSync(typeOutputDirectory)) { + rmdirSync(typeOutputDirectory, { recursive: true }); + } + }); + + test('test example', async () => { + const result = await convertFromDirectory({ + schemaDirectory: './src/__tests__/_example/schemas', + typeOutputDirectory, + sortPropertiesByName: false + }); + + expect(result).toBe(true); + + const oneContent = readFileSync(`${typeOutputDirectory}/One.ts`).toString(); + expect(oneContent).toBe( + `/** + * This file was automatically generated by joi-to-typescript + * Do not modify this file manually + */ + +export interface Example { + thing: string; +} +` + ); + }); +}); diff --git a/src/__tests__/_example/schemas/OneSchema.ts b/src/__tests__/_example/schemas/OneSchema.ts new file mode 100644 index 00000000..1e990120 --- /dev/null +++ b/src/__tests__/_example/schemas/OneSchema.ts @@ -0,0 +1,5 @@ +import Joi from 'joi'; + +export const exampleSchema = Joi.object({ + thing: Joi.string().required() +}).meta({ className: 'Example' });