From 508a206ca8b3e133660c9bef6e489439552ce548 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20My=C5=9Bliwiec?= Date: Fri, 31 Mar 2023 11:44:43 +0200 Subject: [PATCH] test: check ts version and compare diff output if v5 --- test/plugin/fixtures/es5-class.dto.ts | 27 +++++++++++++++++++++++++ test/plugin/model-class-visitor.spec.ts | 12 +++++++++-- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/test/plugin/fixtures/es5-class.dto.ts b/test/plugin/fixtures/es5-class.dto.ts index 0a557e217..9911ae17d 100644 --- a/test/plugin/fixtures/es5-class.dto.ts +++ b/test/plugin/fixtures/es5-class.dto.ts @@ -22,6 +22,33 @@ exports.CreateCatDtoEs5 = void 0; var openapi = require(\"@nestjs/swagger\"); var status_1 = require(\"./status\"); var constants_1 = require(\"./constants\"); +var CreateCatDtoEs5 = /** @class */ (function () { + function CreateCatDtoEs5() { + // field name + this.name = constants_1.CONSTANT_STRING; + /** status */ + this.status = status_1.Status.ENABLED; + this.obj = constants_1.CONSTANT_OBJECT; + this.age = 3; + } + CreateCatDtoEs5._OPENAPI_METADATA_FACTORY = function () { + return { name: { required: true, type: function () { return String; }, default: constants_1.CONSTANT_STRING }, status: { required: true, type: function () { return Object; }, description: "status", default: status_1.Status.ENABLED }, obj: { required: true, type: function () { return Object; }, default: constants_1.CONSTANT_OBJECT }, age: { required: true, type: function () { return Number; }, default: 3, minimum: constants_1.MIN_VAL, maximum: 10 } }; + }; + __decorate([ + Min(constants_1.MIN_VAL), + Max(10) + ], CreateCatDtoEs5.prototype, \"age\", void 0); + return CreateCatDtoEs5; +}()); +exports.CreateCatDtoEs5 = CreateCatDtoEs5; +`; + +export const es5CreateCatDtoTextTranspiledV5 = `\"use strict\"; +Object.defineProperty(exports, \"__esModule\", { value: true }); +exports.CreateCatDtoEs5 = void 0; +var openapi = require(\"@nestjs/swagger\"); +var status_1 = require(\"./status\"); +var constants_1 = require(\"./constants\"); var CreateCatDtoEs5 = exports.CreateCatDtoEs5 = /** @class */ (function () { function CreateCatDtoEs5() { // field name diff --git a/test/plugin/model-class-visitor.spec.ts b/test/plugin/model-class-visitor.spec.ts index 236c3c160..af093b777 100644 --- a/test/plugin/model-class-visitor.spec.ts +++ b/test/plugin/model-class-visitor.spec.ts @@ -19,7 +19,8 @@ import { } from './fixtures/create-cat.dto'; import { es5CreateCatDtoText, - es5CreateCatDtoTextTranspiled + es5CreateCatDtoTextTranspiled, + es5CreateCatDtoTextTranspiledV5 } from './fixtures/es5-class.dto'; import { nullableDtoText, @@ -135,7 +136,14 @@ describe('API model properties', () => { ] } }); - expect(result.outputText).toEqual(es5CreateCatDtoTextTranspiled); + + const [tsVersionMajor] = ts.versionMajorMinor?.split('.').map((x) => +x); + + if (tsVersionMajor === 5) { + expect(result.outputText).toEqual(es5CreateCatDtoTextTranspiledV5); + } else { + expect(result.outputText).toEqual(es5CreateCatDtoTextTranspiled); + } }); it('should support & understand nullable type unions', () => {