From 54463b1ba721c87e10866ab16a851636bce32cb7 Mon Sep 17 00:00:00 2001 From: Jonas Lagoni Date: Thu, 30 Jun 2022 14:31:14 +0200 Subject: [PATCH] fix tests --- src/generators/csharp/CSharpFileGenerator.ts | 3 +- src/generators/dart/DartFileGenerator.ts | 3 +- src/generators/go/GoFileGenerator.ts | 3 +- src/generators/java/JavaFileGenerator.ts | 3 +- test/generators/FileGenerators.spec.ts | 92 +++++++++++++++++++ .../csharp/CSharpFileGenerator.spec.ts | 51 ---------- .../generators/dart/DartFileGenerator.spec.ts | 51 ---------- test/generators/go/GoFileGenerator.spec.ts | 51 ---------- .../generators/java/JavaFileGenerator.spec.ts | 51 ---------- .../JavaScriptFileGenerator.spec.ts | 63 ------------- .../TypeScriptFileGenerator.spec.ts | 64 ------------- 11 files changed, 100 insertions(+), 335 deletions(-) create mode 100644 test/generators/FileGenerators.spec.ts delete mode 100644 test/generators/csharp/CSharpFileGenerator.spec.ts delete mode 100644 test/generators/dart/DartFileGenerator.spec.ts delete mode 100644 test/generators/go/GoFileGenerator.spec.ts delete mode 100644 test/generators/java/JavaFileGenerator.spec.ts delete mode 100644 test/generators/javascript/JavaScriptFileGenerator.spec.ts delete mode 100644 test/generators/typescript/TypeScriptFileGenerator.spec.ts diff --git a/src/generators/csharp/CSharpFileGenerator.ts b/src/generators/csharp/CSharpFileGenerator.ts index c08bed352c..52eb9162b7 100644 --- a/src/generators/csharp/CSharpFileGenerator.ts +++ b/src/generators/csharp/CSharpFileGenerator.ts @@ -14,7 +14,8 @@ export class CSharpFileGenerator extends CSharpGenerator implements AbstractFile */ public async generateToFiles(input: Record | InputMetaModel, outputDirectory: string, options: CSharpRenderCompleteModelOptions): Promise { let generatedModels = await this.generateCompleteModels(input, options); - generatedModels = generatedModels.filter((outputModel) => { return outputModel.modelName !== undefined; }); + //Filter anything out that have not been successfully generated + generatedModels = generatedModels.filter((outputModel) => { return outputModel.modelName !== ''; }); for (const outputModel of generatedModels) { const filePath = path.resolve(outputDirectory, `${outputModel.modelName}.cs`); await FileHelpers.writerToFileSystem(outputModel.result, filePath); diff --git a/src/generators/dart/DartFileGenerator.ts b/src/generators/dart/DartFileGenerator.ts index 54cafbd624..fc00ce26b4 100644 --- a/src/generators/dart/DartFileGenerator.ts +++ b/src/generators/dart/DartFileGenerator.ts @@ -14,7 +14,8 @@ export class DartFileGenerator extends DartGenerator implements AbstractFileGene */ public async generateToFiles(input: Record | InputMetaModel, outputDirectory: string, options: DartRenderCompleteModelOptions): Promise { let generatedModels = await this.generateCompleteModels(input, options); - generatedModels = generatedModels.filter((outputModel) => { return outputModel.modelName !== undefined; }); + //Filter anything out that have not been successfully generated + generatedModels = generatedModels.filter((outputModel) => { return outputModel.modelName !== ''; }); for (const outputModel of generatedModels) { const filePath = path.resolve(outputDirectory, `${outputModel.modelName}.dart`); await FileHelpers.writerToFileSystem(outputModel.result, filePath); diff --git a/src/generators/go/GoFileGenerator.ts b/src/generators/go/GoFileGenerator.ts index ba519e7870..5e050396f9 100644 --- a/src/generators/go/GoFileGenerator.ts +++ b/src/generators/go/GoFileGenerator.ts @@ -14,7 +14,8 @@ export class GoFileGenerator extends GoGenerator implements AbstractFileGenerato */ public async generateToFiles(input: Record | InputMetaModel, outputDirectory: string, options: GoRenderCompleteModelOptions): Promise { let generatedModels = await this.generateCompleteModels(input, options); - generatedModels = generatedModels.filter((outputModel) => { return outputModel.modelName !== undefined; }); + //Filter anything out that have not been successfully generated + generatedModels = generatedModels.filter((outputModel) => { return outputModel.modelName !== ''; }); for (const outputModel of generatedModels) { const filePath = path.resolve(outputDirectory, `${outputModel.modelName}.go`); await FileHelpers.writerToFileSystem(outputModel.result, filePath); diff --git a/src/generators/java/JavaFileGenerator.ts b/src/generators/java/JavaFileGenerator.ts index 872aab70d3..8c6f073a8b 100644 --- a/src/generators/java/JavaFileGenerator.ts +++ b/src/generators/java/JavaFileGenerator.ts @@ -14,7 +14,8 @@ export class JavaFileGenerator extends JavaGenerator implements AbstractFileGene */ public async generateToFiles(input: Record | InputMetaModel, outputDirectory: string, options: JavaRenderCompleteModelOptions): Promise { let generatedModels = await this.generateCompleteModels(input, options); - generatedModels = generatedModels.filter((outputModel) => { return outputModel.modelName !== undefined; }); + //Filter anything out that have not been successfully generated + generatedModels = generatedModels.filter((outputModel) => { return outputModel.modelName !== ''; }); for (const outputModel of generatedModels) { const filePath = path.resolve(outputDirectory, `${outputModel.modelName}.java`); await FileHelpers.writerToFileSystem(outputModel.result, filePath); diff --git a/test/generators/FileGenerators.spec.ts b/test/generators/FileGenerators.spec.ts new file mode 100644 index 0000000000..89c9c5f0d8 --- /dev/null +++ b/test/generators/FileGenerators.spec.ts @@ -0,0 +1,92 @@ +import { FileHelpers, DartFileGenerator, OutputModel, ConstrainedAnyModel, InputMetaModel, GoFileGenerator, JavaFileGenerator, JavaScriptFileGenerator, TypeScriptFileGenerator, CSharpFileGenerator } from '../../src'; +import * as path from 'path'; + +const generatorsToTest = [ + { + generator: new GoFileGenerator(), + generatorOptions: {packageName: 'some_package'}, + fileExtension: 'go' + }, + { + generator: new DartFileGenerator(), + generatorOptions: {packageName: 'SomePackage'}, + fileExtension: 'dart' + }, + { + generator: new JavaFileGenerator(), + generatorOptions: {packageName: 'SomePackage'}, + fileExtension: 'java' + }, + { + generator: new JavaScriptFileGenerator(), + generatorOptions: {}, + fileExtension: 'js' + }, + { + generator: new TypeScriptFileGenerator(), + generatorOptions: {}, + fileExtension: 'ts' + }, + { + generator: new CSharpFileGenerator(), + generatorOptions: {namespace: 'SomeNamespace'}, + fileExtension: 'cs' + } +]; + +describe.each(generatorsToTest)('generateToFiles', ({generator, generatorOptions, fileExtension}) => { + afterEach(() => { + jest.restoreAllMocks(); + }); + + const doc = { + $id: 'CustomClass', + type: 'object', + additionalProperties: true, + properties: { + someProp: { type: 'string' }, + someEnum: { + $id: 'CustomEnum', + type: 'string', + enum: ['Texas', 'Alabama', 'California'], + } + } + }; + + test('should throw accurate error if file cannot be written', async () => { + const expectedError = new Error('write error'); + jest.spyOn(FileHelpers, 'writerToFileSystem').mockRejectedValue(expectedError); + jest.spyOn(generator, 'generateCompleteModels').mockResolvedValue([new OutputModel('content', new ConstrainedAnyModel('', undefined, ''), 'test', new InputMetaModel(), [])]); + + await expect(generator.generateToFiles(doc, '/test/', generatorOptions as any)).rejects.toEqual(expectedError); + expect(generator.generateCompleteModels).toHaveBeenCalledTimes(1); + expect(FileHelpers.writerToFileSystem).toHaveBeenCalledTimes(1); + }); + test('should try and generate models to files', async () => { + const outputDir = './test'; + const expectedOutputDirPath = path.resolve(outputDir); + const expectedOutputFilePath = path.resolve(`${outputDir}/test.${fileExtension}`); + const expectedWriteToFileParameters = [ + 'content', + expectedOutputFilePath, + ]; + jest.spyOn(FileHelpers, 'writerToFileSystem').mockResolvedValue(undefined); + jest.spyOn(generator, 'generateCompleteModels').mockResolvedValue([new OutputModel('content', new ConstrainedAnyModel('', undefined, ''), 'test', new InputMetaModel(), [])]); + + await generator.generateToFiles(doc, expectedOutputDirPath, generatorOptions as any); + expect(generator.generateCompleteModels).toHaveBeenCalledTimes(1); + expect(FileHelpers.writerToFileSystem).toHaveBeenCalledTimes(1); + expect((FileHelpers.writerToFileSystem as jest.Mock).mock.calls[0]).toEqual(expectedWriteToFileParameters); + }); + test('should ignore models that have not been rendered', async () => { + const outputDir = './test'; + const expectedOutputDirPath = path.resolve(outputDir); + jest.spyOn(FileHelpers, 'writerToFileSystem').mockResolvedValue(undefined); + jest.spyOn(generator, 'generateCompleteModels').mockResolvedValue([new OutputModel('', new ConstrainedAnyModel('', undefined, ''), '', new InputMetaModel(), [])]); + + const models = await generator.generateToFiles(doc, expectedOutputDirPath, generatorOptions as any); + expect(generator.generateCompleteModels).toHaveBeenCalledTimes(1); + expect(models).toHaveLength(0); + expect(FileHelpers.writerToFileSystem).toHaveBeenCalledTimes(0); + }); +}); diff --git a/test/generators/csharp/CSharpFileGenerator.spec.ts b/test/generators/csharp/CSharpFileGenerator.spec.ts deleted file mode 100644 index 181f3cb300..0000000000 --- a/test/generators/csharp/CSharpFileGenerator.spec.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { CommonInputModel, CommonModel, FileHelpers, CSharpFileGenerator, OutputModel } from '../../../src'; -import * as path from 'path'; - -describe('CSharpFileGenerator', () => { - afterEach(() => { - jest.restoreAllMocks(); - }); - - describe('generateToFile()', () => { - const doc = { - $id: 'CustomClass', - type: 'object', - additionalProperties: true, - properties: { - someProp: { type: 'string' }, - someEnum: { - $id: 'CustomEnum', - type: 'string', - enum: ['Texas', 'Alabama', 'California'], - } - } - }; - test('should throw accurate error if file cannot be written', async () => { - const generator = new CSharpFileGenerator(); - const expectedError = new Error('write error'); - jest.spyOn(FileHelpers, 'writerToFileSystem').mockRejectedValue(expectedError); - jest.spyOn(generator, 'generateCompleteModels').mockResolvedValue([new OutputModel('content', new CommonModel(), '', new CommonInputModel(), [])]); - - await expect(generator.generateToFiles(doc, '/test/', {namespace: 'SomeNamespace'})).rejects.toEqual(expectedError); - expect(generator.generateCompleteModels).toHaveBeenCalledTimes(1); - expect(FileHelpers.writerToFileSystem).toHaveBeenCalledTimes(1); - }); - test('should try and generate models to files', async () => { - const generator = new CSharpFileGenerator(); - const outputDir = './test'; - const expectedOutputDirPath = path.resolve(outputDir); - const expectedOutputFilePath = path.resolve(`${outputDir}/Test.cs`); - const expectedWriteToFileParameters = [ - 'content', - expectedOutputFilePath, - ]; - jest.spyOn(FileHelpers, 'writerToFileSystem').mockResolvedValue(undefined); - jest.spyOn(generator, 'generateCompleteModels').mockResolvedValue([new OutputModel('content', new CommonModel(), 'Test', new CommonInputModel(), [])]); - - await generator.generateToFiles(doc, expectedOutputDirPath, {namespace: 'SomeNamespace'}); - expect(generator.generateCompleteModels).toHaveBeenCalledTimes(1); - expect(FileHelpers.writerToFileSystem).toHaveBeenCalledTimes(1); - expect((FileHelpers.writerToFileSystem as jest.Mock).mock.calls[0]).toEqual(expectedWriteToFileParameters); - }); - }); -}); diff --git a/test/generators/dart/DartFileGenerator.spec.ts b/test/generators/dart/DartFileGenerator.spec.ts deleted file mode 100644 index 5577f7678d..0000000000 --- a/test/generators/dart/DartFileGenerator.spec.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { CommonInputModel, CommonModel, FileHelpers, DartFileGenerator, OutputModel } from '../../../src'; -import * as path from 'path'; - -describe('DartFileGenerator', () => { - afterEach(() => { - jest.restoreAllMocks(); - }); - - describe('generateToFile()', () => { - const doc = { - $id: 'CustomClass', - type: 'object', - additionalProperties: true, - properties: { - someProp: { type: 'string' }, - someEnum: { - $id: 'CustomEnum', - type: 'string', - enum: ['Texas', 'Alabama', 'California'], - } - } - }; - test('should throw accurate error if file cannot be written', async () => { - const generator = new DartFileGenerator(); - const expectedError = new Error('write error'); - jest.spyOn(FileHelpers, 'writerToFileSystem').mockRejectedValue(expectedError); - jest.spyOn(generator, 'generateCompleteModels').mockResolvedValue([new OutputModel('content', new CommonModel(), '', new CommonInputModel(), [])]); - - await expect(generator.generateToFiles(doc, '/test/', {packageName: 'SomePackage'})).rejects.toEqual(expectedError); - expect(generator.generateCompleteModels).toHaveBeenCalledTimes(1); - expect(FileHelpers.writerToFileSystem).toHaveBeenCalledTimes(1); - }); - test('should try and generate models to files', async () => { - const generator = new DartFileGenerator(); - const outputDir = './test'; - const expectedOutputDirPath = path.resolve(outputDir); - const expectedOutputFilePath = path.resolve(`${outputDir}/test.dart`); - const expectedWriteToFileParameters = [ - 'content', - expectedOutputFilePath, - ]; - jest.spyOn(FileHelpers, 'writerToFileSystem').mockResolvedValue(undefined); - jest.spyOn(generator, 'generateCompleteModels').mockResolvedValue([new OutputModel('content', new CommonModel(), 'test', new CommonInputModel(), [])]); - - await generator.generateToFiles(doc, expectedOutputDirPath, {packageName: 'SomePackage'}); - expect(generator.generateCompleteModels).toHaveBeenCalledTimes(1); - expect(FileHelpers.writerToFileSystem).toHaveBeenCalledTimes(1); - expect((FileHelpers.writerToFileSystem as jest.Mock).mock.calls[0]).toEqual(expectedWriteToFileParameters); - }); - }); -}); diff --git a/test/generators/go/GoFileGenerator.spec.ts b/test/generators/go/GoFileGenerator.spec.ts deleted file mode 100644 index 396e55b17d..0000000000 --- a/test/generators/go/GoFileGenerator.spec.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { CommonInputModel, CommonModel, FileHelpers, GoFileGenerator, OutputModel } from '../../../src'; -import * as path from 'path'; - -describe('GoFileGenerator', () => { - afterEach(() => { - jest.restoreAllMocks(); - }); - - describe('generateToFile()', () => { - const doc = { - $id: 'CustomClass', - type: 'object', - additionalProperties: true, - properties: { - someProp: { type: 'string' }, - someEnum: { - $id: 'CustomEnum', - type: 'string', - enum: ['Texas', 'Alabama', 'California'], - } - } - }; - test('should throw accurate error if file cannot be written', async () => { - const generator = new GoFileGenerator(); - const expectedError = new Error('write error'); - jest.spyOn(FileHelpers, 'writerToFileSystem').mockRejectedValue(expectedError); - jest.spyOn(generator, 'generateCompleteModels').mockResolvedValue([new OutputModel('content', new CommonModel(), '', new CommonInputModel(), [])]); - - await expect(generator.generateToFiles(doc, '/test/', {packageName: 'some_package'})).rejects.toEqual(expectedError); - expect(generator.generateCompleteModels).toHaveBeenCalledTimes(1); - expect(FileHelpers.writerToFileSystem).toHaveBeenCalledTimes(1); - }); - test('should try and generate models to files', async () => { - const generator = new GoFileGenerator(); - const outputDir = './test'; - const expectedOutputDirPath = path.resolve(outputDir); - const expectedOutputFilePath = path.resolve(`${outputDir}/Test.go`); - const expectedWriteToFileParameters = [ - 'content', - expectedOutputFilePath, - ]; - jest.spyOn(FileHelpers, 'writerToFileSystem').mockResolvedValue(undefined); - jest.spyOn(generator, 'generateCompleteModels').mockResolvedValue([new OutputModel('content', new CommonModel(), 'Test', new CommonInputModel(), [])]); - - await generator.generateToFiles(doc, expectedOutputDirPath, {packageName: 'some_package'}); - expect(generator.generateCompleteModels).toHaveBeenCalledTimes(1); - expect(FileHelpers.writerToFileSystem).toHaveBeenCalledTimes(1); - expect((FileHelpers.writerToFileSystem as jest.Mock).mock.calls[0]).toEqual(expectedWriteToFileParameters); - }); - }); -}); diff --git a/test/generators/java/JavaFileGenerator.spec.ts b/test/generators/java/JavaFileGenerator.spec.ts deleted file mode 100644 index d3a09957be..0000000000 --- a/test/generators/java/JavaFileGenerator.spec.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { CommonInputModel, CommonModel, FileHelpers, JavaFileGenerator, OutputModel } from '../../../src'; -import * as path from 'path'; - -describe('JavaFileGenerator', () => { - afterEach(() => { - jest.restoreAllMocks(); - }); - - describe('generateToFile()', () => { - const doc = { - $id: 'CustomClass', - type: 'object', - additionalProperties: true, - properties: { - someProp: { type: 'string' }, - someEnum: { - $id: 'CustomEnum', - type: 'string', - enum: ['Texas', 'Alabama', 'California'], - } - } - }; - test('should throw accurate error if file cannot be written', async () => { - const generator = new JavaFileGenerator(); - const expectedError = new Error('write error'); - jest.spyOn(FileHelpers, 'writerToFileSystem').mockRejectedValue(expectedError); - jest.spyOn(generator, 'generateCompleteModels').mockResolvedValue([new OutputModel('content', new CommonModel(), '', new CommonInputModel(), [])]); - - await expect(generator.generateToFiles(doc, '/test/', {packageName: 'SomePackage'})).rejects.toEqual(expectedError); - expect(generator.generateCompleteModels).toHaveBeenCalledTimes(1); - expect(FileHelpers.writerToFileSystem).toHaveBeenCalledTimes(1); - }); - test('should try and generate models to files', async () => { - const generator = new JavaFileGenerator(); - const outputDir = './test'; - const expectedOutputDirPath = path.resolve(outputDir); - const expectedOutputFilePath = path.resolve(`${outputDir}/Test.java`); - const expectedWriteToFileParameters = [ - 'content', - expectedOutputFilePath, - ]; - jest.spyOn(FileHelpers, 'writerToFileSystem').mockResolvedValue(undefined); - jest.spyOn(generator, 'generateCompleteModels').mockResolvedValue([new OutputModel('content', new CommonModel(), 'Test', new CommonInputModel(), [])]); - - await generator.generateToFiles(doc, expectedOutputDirPath, {packageName: 'SomePackage'}); - expect(generator.generateCompleteModels).toHaveBeenCalledTimes(1); - expect(FileHelpers.writerToFileSystem).toHaveBeenCalledTimes(1); - expect((FileHelpers.writerToFileSystem as jest.Mock).mock.calls[0]).toEqual(expectedWriteToFileParameters); - }); - }); -}); diff --git a/test/generators/javascript/JavaScriptFileGenerator.spec.ts b/test/generators/javascript/JavaScriptFileGenerator.spec.ts deleted file mode 100644 index 074201be9e..0000000000 --- a/test/generators/javascript/JavaScriptFileGenerator.spec.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { CommonInputModel, CommonModel, FileHelpers, JavaScriptFileGenerator, OutputModel } from '../../../src'; -import * as path from 'path'; - -describe('JavaScriptFileGenerator', () => { - afterEach(() => { - jest.restoreAllMocks(); - }); - - describe('generateToFile()', () => { - const doc = { - $id: 'CustomClass', - type: 'object', - additionalProperties: true, - properties: { - someProp: { type: 'string' }, - someEnum: { - $id: 'CustomEnum', - type: 'string', - enum: ['Texas', 'Alabama', 'California'], - } - } - }; - test('should throw accurate error if file cannot be written', async () => { - const generator = new JavaScriptFileGenerator(); - const expectedError = new Error('write error'); - jest.spyOn(FileHelpers, 'writerToFileSystem').mockRejectedValue(expectedError); - jest.spyOn(generator, 'generateCompleteModels').mockResolvedValue([new OutputModel('content', new CommonModel(), 'Test', new CommonInputModel(), [])]); - - await expect(generator.generateToFiles(doc, '/test/')).rejects.toEqual(expectedError); - expect(generator.generateCompleteModels).toHaveBeenCalledTimes(1); - expect(FileHelpers.writerToFileSystem).toHaveBeenCalledTimes(1); - }); - test('should try and generate models to files', async () => { - const generator = new JavaScriptFileGenerator(); - const outputDir = './test'; - const expectedOutputDirPath = path.resolve(outputDir); - const expectedOutputFilePath = path.resolve(`${outputDir}/Test.js`); - const expectedWriteToFileParameters = [ - 'content', - expectedOutputFilePath, - ]; - jest.spyOn(FileHelpers, 'writerToFileSystem').mockResolvedValue(undefined); - jest.spyOn(generator, 'generateCompleteModels').mockResolvedValue([new OutputModel('content', new CommonModel(), 'Test', new CommonInputModel(), [])]); - - await generator.generateToFiles(doc, expectedOutputDirPath); - expect(generator.generateCompleteModels).toHaveBeenCalledTimes(1); - expect(FileHelpers.writerToFileSystem).toHaveBeenCalledTimes(1); - expect((FileHelpers.writerToFileSystem as jest.Mock).mock.calls[0]).toEqual(expectedWriteToFileParameters); - }); - test('should ignore models that have not been rendered', async () => { - const generator = new JavaScriptFileGenerator(); - const outputDir = './test'; - const expectedOutputDirPath = path.resolve(outputDir); - jest.spyOn(FileHelpers, 'writerToFileSystem').mockResolvedValue(undefined); - jest.spyOn(generator, 'generateCompleteModels').mockResolvedValue([new OutputModel('content', new CommonModel(), '', new CommonInputModel(), [])]); - - const models = await generator.generateToFiles(doc, expectedOutputDirPath); - expect(generator.generateCompleteModels).toHaveBeenCalledTimes(1); - expect(FileHelpers.writerToFileSystem).toHaveBeenCalledTimes(0); - expect(models).toHaveLength(0); - }); - }); -}); diff --git a/test/generators/typescript/TypeScriptFileGenerator.spec.ts b/test/generators/typescript/TypeScriptFileGenerator.spec.ts deleted file mode 100644 index cad65e642b..0000000000 --- a/test/generators/typescript/TypeScriptFileGenerator.spec.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { CommonInputModel, CommonModel, FileHelpers, TypeScriptFileGenerator, OutputModel } from '../../../src'; -import * as path from 'path'; - -describe('TypeScriptFileGenerator', () => { - afterEach(() => { - jest.restoreAllMocks(); - }); - - describe('generateToFile()', () => { - const doc = { - $id: 'CustomClass', - type: 'object', - additionalProperties: true, - properties: { - someProp: { type: 'string' }, - someEnum: { - $id: 'CustomEnum', - type: 'string', - enum: ['Texas', 'Alabama', 'California'], - } - } - }; - test('should throw accurate error if file cannot be written', async () => { - const generator = new TypeScriptFileGenerator(); - const expectedError = new Error('write error'); - jest.spyOn(FileHelpers, 'writerToFileSystem').mockRejectedValue(expectedError); - jest.spyOn(generator, 'generateCompleteModels').mockResolvedValue([new OutputModel('content', new CommonModel(), 'Test', new CommonInputModel(), [])]); - - await expect(generator.generateToFiles(doc, '/test/')).rejects.toEqual(expectedError); - expect(generator.generateCompleteModels).toHaveBeenCalledTimes(1); - expect(FileHelpers.writerToFileSystem).toHaveBeenCalledTimes(1); - }); - test('should try and generate models to files', async () => { - const generator = new TypeScriptFileGenerator(); - const outputDir = './test'; - const expectedOutputDirPath = path.resolve(outputDir); - const expectedOutputFilePath = path.resolve(`${outputDir}/Test.ts`); - const expectedWriteToFileParameters = [ - 'content', - expectedOutputFilePath, - ]; - jest.spyOn(FileHelpers, 'writerToFileSystem').mockResolvedValue(undefined); - jest.spyOn(generator, 'generateCompleteModels').mockResolvedValue([new OutputModel('content', new CommonModel(), 'Test', new CommonInputModel(), [])]); - - await generator.generateToFiles(doc, expectedOutputDirPath); - expect(generator.generateCompleteModels).toHaveBeenCalledTimes(1); - expect(FileHelpers.writerToFileSystem).toHaveBeenCalledTimes(1); - expect((FileHelpers.writerToFileSystem as jest.Mock).mock.calls[0]).toEqual(expectedWriteToFileParameters); - }); - - test('should ignore models that have not been rendered', async () => { - const generator = new TypeScriptFileGenerator(); - const outputDir = './test'; - const expectedOutputDirPath = path.resolve(outputDir); - jest.spyOn(FileHelpers, 'writerToFileSystem').mockResolvedValue(undefined); - jest.spyOn(generator, 'generateCompleteModels').mockResolvedValue([new OutputModel('content', new CommonModel(), '', new CommonInputModel(), [])]); - - const models = await generator.generateToFiles(doc, expectedOutputDirPath); - expect(generator.generateCompleteModels).toHaveBeenCalledTimes(1); - expect(FileHelpers.writerToFileSystem).toHaveBeenCalledTimes(0); - expect(models).toHaveLength(0); - }); - }); -});