From aecd97cf28f8522b7514e94813258e8809a63071 Mon Sep 17 00:00:00 2001 From: Aleksandr Endovitskii Date: Fri, 26 May 2023 10:25:45 +0200 Subject: [PATCH 01/10] [BUS-603]: new angular mocks template [draft] [BUS-603]: updated tests for mocks [BUS-603]: changelog update --- README.md | 3 + .../templates/boat-angular/apiMocks.mustache | 55 ++----------------- .../templates/boat-angular/package.mustache | 9 ++- .../angular/BoatAngularTemplatesTests.java | 2 +- 4 files changed, 16 insertions(+), 53 deletions(-) diff --git a/README.md b/README.md index 67db6b5e8..97d26cb1e 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,9 @@ The project is very much Work In Progress and will be published on maven central # Release Notes BOAT is still under development and subject to change. +## 0.17.4 +* Boat Angular generator + * New format for Angular mocks, which are now export an array with responses. ## 0.17.3 * Boat Angular generator * Map the `Set` type to `Array` by default to avoid breaking changes vs clients generated with 0.16.x. diff --git a/boat-scaffold/src/main/templates/boat-angular/apiMocks.mustache b/boat-scaffold/src/main/templates/boat-angular/apiMocks.mustache index 589b18c2f..a57fe2735 100644 --- a/boat-scaffold/src/main/templates/boat-angular/apiMocks.mustache +++ b/boat-scaffold/src/main/templates/boat-angular/apiMocks.mustache @@ -1,22 +1,17 @@ -import { createMocks } from '@backbase/foundation-ang/data-http'; -import { Provider } from '@angular/core'; - -{{#operations}} +module.exports = [{{#operations}} {{#operation}} -/** -* Mocks provider for {{{basePathWithoutHost}}}{{pattern}} URL pattern -*/ -export const {{classname}}{{#lambda.titlecase}}{{nickname}}{{/lambda.titlecase}}MocksProvider = /*#__PURE__*/ createMocks([{ + { urlPattern: "{{{basePathWithoutHost}}}{{pattern}}", method: "{{#lambda.uppercase}}{{httpMethod}}{{/lambda.uppercase}}", responses: [ {{#responses}} + {{#examples}} {{#isJson}} - { + { status: {{{code}}}, body: {{{prettyPrintValue}}} - }, + }, {{/isJson}} {{^isJson}} { @@ -32,45 +27,7 @@ export const {{classname}}{{#lambda.titlecase}}{{nickname}}{{/lambda.titlecase}} }, {{/hasEmptyBody}} {{/responses}} - ] -}]); - {{/operation}} -{{/operations}} - -export const {{classname}}MocksProvider = /*#__PURE__*/ createMocks( - [{{#operations}} - {{#operation}} - { - urlPattern: "{{{basePathWithoutHost}}}{{pattern}}", - method: "{{#lambda.uppercase}}{{httpMethod}}{{/lambda.uppercase}}", - responses: [ - {{#responses}} - - {{#examples}} - {{#isJson}} - { - status: {{{code}}}, - body: {{{prettyPrintValue}}} - }, - {{/isJson}} - {{^isJson}} - { - status: {{{code}}}, - body: "{{#escapeJavascript}}{{{prettyPrintValue}}}{{/escapeJavascript}}" - }, - {{/isJson}} - {{/examples}} - {{#hasEmptyBody}} - { - status: {{{code}}}, - body: "" + ] }, - {{/hasEmptyBody}} - {{/responses}} - ] -}, {{/operation}} {{/operations}}] -); - - diff --git a/boat-scaffold/src/main/templates/boat-angular/package.mustache b/boat-scaffold/src/main/templates/boat-angular/package.mustache index c9229e7cf..4f1b2e834 100644 --- a/boat-scaffold/src/main/templates/boat-angular/package.mustache +++ b/boat-scaffold/src/main/templates/boat-angular/package.mustache @@ -4,14 +4,17 @@ "description": "OpenAPI client for {{{npmName}}}", "backbase": { {{#specVersion}} - "specVersion": "{{{specVersion}}}" + "specVersion": "{{{specVersion}}}", {{/specVersion}} {{#specArtifactId}} - "specArtifactId": "{{{specArtifactId}}}" + "specArtifactId": "{{{specArtifactId}}}", {{/specArtifactId}} {{#specGroupId}} - "specGroupId": "{{{specGroupId}}}" + "specGroupId": "{{{specGroupId}}}", {{/specGroupId}} + {{#inputSpecRelative}} + "inputSpecRelative": "{{{inputSpecRelative}}}" + {{/inputSpecRelative}} }, "keywords": [ "backbase", diff --git a/boat-scaffold/src/test/java/com/backbase/oss/codegen/angular/BoatAngularTemplatesTests.java b/boat-scaffold/src/test/java/com/backbase/oss/codegen/angular/BoatAngularTemplatesTests.java index db1335a6d..988e36b6c 100644 --- a/boat-scaffold/src/test/java/com/backbase/oss/codegen/angular/BoatAngularTemplatesTests.java +++ b/boat-scaffold/src/test/java/com/backbase/oss/codegen/angular/BoatAngularTemplatesTests.java @@ -121,7 +121,7 @@ public void npmRepository() { @Check public void withMocks() { assertThat( - findPattern(selectFiles("/api/.+\\.service\\.mocks\\.ts$"), "MocksProvider = /\\*#__PURE__\\*/ createMocks"), + findPattern(selectFiles("/api/.+\\.service\\.mocks\\.ts$"), "module.exports"), equalTo(this.param.withMocks)); } From ee82c67172d639f37ecd1d5f3b5dcf78b90f67cd Mon Sep 17 00:00:00 2001 From: Aleksandr Endovitskii Date: Thu, 1 Jun 2023 13:20:50 +0200 Subject: [PATCH 02/10] [BUS-603]: mocks indents formatted --- .../templates/boat-angular/apiMocks.mustache | 59 +++++++++---------- 1 file changed, 29 insertions(+), 30 deletions(-) diff --git a/boat-scaffold/src/main/templates/boat-angular/apiMocks.mustache b/boat-scaffold/src/main/templates/boat-angular/apiMocks.mustache index a57fe2735..39b6f77eb 100644 --- a/boat-scaffold/src/main/templates/boat-angular/apiMocks.mustache +++ b/boat-scaffold/src/main/templates/boat-angular/apiMocks.mustache @@ -1,33 +1,32 @@ module.exports = [{{#operations}} {{#operation}} - { - urlPattern: "{{{basePathWithoutHost}}}{{pattern}}", - method: "{{#lambda.uppercase}}{{httpMethod}}{{/lambda.uppercase}}", - responses: [ - {{#responses}} - - {{#examples}} - {{#isJson}} - { - status: {{{code}}}, - body: {{{prettyPrintValue}}} - }, - {{/isJson}} - {{^isJson}} - { - status: {{{code}}}, - body: "{{#escapeJavascript}}{{{prettyPrintValue}}}{{/escapeJavascript}}" - }, - {{/isJson}} - {{/examples}} - {{#hasEmptyBody}} - { - status: {{{code}}}, - body: "" - }, - {{/hasEmptyBody}} - {{/responses}} - ] - }, - {{/operation}} +{ + urlPattern: "{{{basePathWithoutHost}}}{{pattern}}", + method: "{{#lambda.uppercase}}{{httpMethod}}{{/lambda.uppercase}}", + responses: [ + {{#responses}} + {{#examples}} + {{#isJson}} + { + status: {{{code}}}, + body: {{{prettyPrintValue}}} + }, + {{/isJson}} + {{^isJson}} + { + status: {{{code}}}, + body: "{{#escapeJavascript}}{{{prettyPrintValue}}}{{/escapeJavascript}}" + }, + {{/isJson}} + {{/examples}} + {{#hasEmptyBody}} + { + status: {{{code}}}, + body: "" + }, + {{/hasEmptyBody}} + {{/responses}} + ] +}, +{{/operation}} {{/operations}}] From b1a981f2235d2df2ce73579123c3924b851f0f88 Mon Sep 17 00:00:00 2001 From: Aleksandr Endovitskii Date: Fri, 2 Jun 2023 18:50:56 +0200 Subject: [PATCH 03/10] [BUS-603]: updates after review --- .../codegen/angular/BoatAngularGenerator.java | 12 ----- .../boat-angular-mock/README.mustache | 29 ----------- .../boat-angular-mock/apiMocks.mustache | 43 ---------------- .../templates/boat-angular-mock/apis.mustache | 5 -- .../templates/boat-angular-mock/gitignore | 2 - .../boat-angular-mock/index.mustache | 1 - .../boat-angular-mock/licenseInfo.mustache | 11 ---- .../boat-angular-mock/ng-package.mustache | 6 --- .../boat-angular-mock/package.mustache | 51 ------------------- .../boat-angular-mock/tsconfig.mustache | 27 ---------- .../boat-angular/api.module.mustache | 4 -- .../templates/boat-angular/package.mustache | 6 --- .../boat-angular/public_api.mustache | 4 -- .../angular/BoatAngularTemplatesTests.java | 5 -- 14 files changed, 206 deletions(-) delete mode 100644 boat-scaffold/src/main/templates/boat-angular-mock/README.mustache delete mode 100644 boat-scaffold/src/main/templates/boat-angular-mock/apiMocks.mustache delete mode 100644 boat-scaffold/src/main/templates/boat-angular-mock/apis.mustache delete mode 100644 boat-scaffold/src/main/templates/boat-angular-mock/gitignore delete mode 100644 boat-scaffold/src/main/templates/boat-angular-mock/index.mustache delete mode 100644 boat-scaffold/src/main/templates/boat-angular-mock/licenseInfo.mustache delete mode 100644 boat-scaffold/src/main/templates/boat-angular-mock/ng-package.mustache delete mode 100644 boat-scaffold/src/main/templates/boat-angular-mock/package.mustache delete mode 100644 boat-scaffold/src/main/templates/boat-angular-mock/tsconfig.mustache diff --git a/boat-scaffold/src/main/java/com/backbase/oss/codegen/angular/BoatAngularGenerator.java b/boat-scaffold/src/main/java/com/backbase/oss/codegen/angular/BoatAngularGenerator.java index bde1adb62..0d2937674 100644 --- a/boat-scaffold/src/main/java/com/backbase/oss/codegen/angular/BoatAngularGenerator.java +++ b/boat-scaffold/src/main/java/com/backbase/oss/codegen/angular/BoatAngularGenerator.java @@ -60,7 +60,6 @@ public class BoatAngularGenerator extends AbstractTypeScriptClientCodegen { public static final String WITH_MOCKS = "withMocks"; public static final String NG_VERSION = "ngVersion"; - public static final String FOUNDATION_VERSION = "foundationVersion"; public static final String SPEC_VERSION = "specVersion"; public static final String SPEC_ARTIFACT_ID = "specArtifactId"; public static final String SPEC_GROUP_ID = "specGroupId"; @@ -75,7 +74,6 @@ public class BoatAngularGenerator extends AbstractTypeScriptClientCodegen { public static final String PATH_NAME_KEY = "pathName"; public static final String HAS_EXAMPLES = "hasExamples"; public static final String PATTERN = "pattern"; - protected String foundationVersion = "6.6.7"; protected String ngVersion = "10.0.0"; protected String serviceSuffix = "Service"; protected String serviceFileSuffix = ".service"; @@ -109,7 +107,6 @@ public BoatAngularGenerator() { "Setting this property to true will generate mocks out of the examples.", false)); this.cliOptions.add(new CliOption(NG_VERSION, "The version of Angular. (At least 10.0.0)").defaultValue(this.ngVersion)); - this.cliOptions.add(new CliOption(FOUNDATION_VERSION, "The version of foundation-ang library.").defaultValue(this.foundationVersion)); this.cliOptions.add(new CliOption(API_MODULE_PREFIX, "The prefix of the generated ApiModule.")); this.cliOptions.add(new CliOption(SERVICE_SUFFIX, "The suffix of the generated service.").defaultValue(this.serviceSuffix)); this.cliOptions.add(new CliOption(BUILD_DIST, "Path to build package to")); @@ -191,15 +188,6 @@ public void processOpts() { () -> applyAngularVersion(this.ngVersion) ); - processOpt(FOUNDATION_VERSION, - value -> additionalProperties.put(FOUNDATION_VERSION, new SemVer(value)), - () -> { - SemVer version = new SemVer(this.foundationVersion); - additionalProperties.put(FOUNDATION_VERSION, version); - log.info("generating code with foundation-ang {} ...", version); - log.info(" (you can select the angular version by setting the additionalProperty foundationVersion)"); - }); - processOpt(SPEC_VERSION, value -> { if(StringUtils.isNotEmpty(value)) { diff --git a/boat-scaffold/src/main/templates/boat-angular-mock/README.mustache b/boat-scaffold/src/main/templates/boat-angular-mock/README.mustache deleted file mode 100644 index da19a8292..000000000 --- a/boat-scaffold/src/main/templates/boat-angular-mock/README.mustache +++ /dev/null @@ -1,29 +0,0 @@ -## {{npmName}}@{{npmVersion}} - -### Building - -To install the required dependencies and to build the typescript sources run: -``` -npm install -npm run build -``` - -### publishing - -First build the package then run ```npm publish dist``` (don't forget to specify the `dist` folder!) - -### consuming - -Navigate to the folder of your consuming project and run one of next commands. - -_published:_ - -``` -npm install {{npmName}}@{{npmVersion}} --save -``` - -#### General usage - -In your Angular project: - -todo diff --git a/boat-scaffold/src/main/templates/boat-angular-mock/apiMocks.mustache b/boat-scaffold/src/main/templates/boat-angular-mock/apiMocks.mustache deleted file mode 100644 index 4ac38039d..000000000 --- a/boat-scaffold/src/main/templates/boat-angular-mock/apiMocks.mustache +++ /dev/null @@ -1,43 +0,0 @@ -import { createMocks } from '@backbase/foundation-ang/data-http'; -import { Provider } from '@angular/core'; - -let example; - -const {{baseName}}Examples = []; -{{#operations}} - {{#operation}} -const {{nickname}}Examples = [ - { - urlPattern: "{{{basePathWithoutHost}}}{{path}}", - method: "{{#lambda.uppercase}}{{httpMethod}}{{/lambda.uppercase}}", - responses: [ - {{#responses}} - - {{#examples}} - {{#isJson}} - { - status: {{{code}}}, - body: {{{prettyPrintValue}}} - }, - {{/isJson}} - {{^isJson}} - { - status: {{{code}}}, - body: "{{#escapeJavascript}}{{{prettyPrintValue}}}{{/escapeJavascript}}" - }, - {{/isJson}} - {{/examples}} - {{/responses}} - ] -}]; -{{baseName}}Examples.push({{nickname}}Examples); -/** -* Mocks provider for {{{basePathWithoutHost}}}{{pattern}} URL pattern -*/ -export const {{classname}}{{#lambda.titlecase}}{{nickname}}{{/lambda.titlecase}}MocksProvider = /*#__PURE__*/ createMocks({{nickname}}Examples); - - {{/operation}} -{{/operations}} -export const {{classname}}MocksProvider = /*#__PURE__*/ createMocks({{baseName}}Examples); - - diff --git a/boat-scaffold/src/main/templates/boat-angular-mock/apis.mustache b/boat-scaffold/src/main/templates/boat-angular-mock/apis.mustache deleted file mode 100644 index 0f302fc4b..000000000 --- a/boat-scaffold/src/main/templates/boat-angular-mock/apis.mustache +++ /dev/null @@ -1,5 +0,0 @@ -{{#apiInfo}} -{{#apis}} -export * from './{{ classFilename }}.mocks'; -{{/apis}} -{{/apiInfo}} diff --git a/boat-scaffold/src/main/templates/boat-angular-mock/gitignore b/boat-scaffold/src/main/templates/boat-angular-mock/gitignore deleted file mode 100644 index f06235c46..000000000 --- a/boat-scaffold/src/main/templates/boat-angular-mock/gitignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -dist diff --git a/boat-scaffold/src/main/templates/boat-angular-mock/index.mustache b/boat-scaffold/src/main/templates/boat-angular-mock/index.mustache deleted file mode 100644 index 28679b1ef..000000000 --- a/boat-scaffold/src/main/templates/boat-angular-mock/index.mustache +++ /dev/null @@ -1 +0,0 @@ -export * from './api/api'; diff --git a/boat-scaffold/src/main/templates/boat-angular-mock/licenseInfo.mustache b/boat-scaffold/src/main/templates/boat-angular-mock/licenseInfo.mustache deleted file mode 100644 index 869763f01..000000000 --- a/boat-scaffold/src/main/templates/boat-angular-mock/licenseInfo.mustache +++ /dev/null @@ -1,11 +0,0 @@ -/** - * {{{appName}}} - * {{{appDescription}}} - * - * {{#version}}The version of the OpenAPI document: {{{version}}}{{/version}} - * {{#infoEmail}}Contact: {{{infoEmail}}}{{/infoEmail}} - * - * NOTE: This class is auto generated by OpenAPI Generator (https://github.com/Backbase/backbase-openapi-tools). - * https://github.com/Backbase/backbase-openapi-tools - * Do not edit the class manually. - */ diff --git a/boat-scaffold/src/main/templates/boat-angular-mock/ng-package.mustache b/boat-scaffold/src/main/templates/boat-angular-mock/ng-package.mustache deleted file mode 100644 index 3b17900dc..000000000 --- a/boat-scaffold/src/main/templates/boat-angular-mock/ng-package.mustache +++ /dev/null @@ -1,6 +0,0 @@ -{ - "$schema": "./node_modules/ng-packagr/ng-package.schema.json", - "lib": { - "entryFile": "index.ts" - } -} diff --git a/boat-scaffold/src/main/templates/boat-angular-mock/package.mustache b/boat-scaffold/src/main/templates/boat-angular-mock/package.mustache deleted file mode 100644 index a251106f0..000000000 --- a/boat-scaffold/src/main/templates/boat-angular-mock/package.mustache +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "{{{npmName}}}", - "version": "{{{npmVersion}}}", - "description": "OpenAPI client for {{{npmName}}}", - "backbase": { - {{#specVersion}} - "specVersion": "{{{specVersion}}}" - {{/specVersion}} - {{#specArtifactId}} - "specArtifactId": "{{{specArtifactId}}}" - {{/specArtifactId}} - {{#specGroupId}} - "specGroupId": "{{{specGroupId}}}" - {{/specGroupId}} - }, - "keywords": [ - "backbase", - "web", - "wa3", - "wc3", - "openapi-mock", - "openapi-generator" - ], - "license": "Unlicense", - "scripts": { - "build": "ng-packagr -p ng-package.json" - }, - "peerDependencies": { - "@angular/core": "^{{ngVersion}}", - "@backbase/foundation-ang": "^{{foundationVersion}}" - }, - "devDependencies": { - "@angular/common": "~{{ngVersion}}", - "@angular/compiler": "~{{ngVersion}}", - "@angular/compiler-cli": "~{{ngVersion}}", - "@angular/core": "~{{ngVersion}}", - "@angular/platform-browser": "~{{ngVersion}}", - "ng-packagr": "^{{ngPackagrVersion}}", - "reflect-metadata": "^0.1.3", - "@backbase/foundation-ang": "~{{foundationVersion}}", - "rxjs": "~{{rxjsVersion}}", - "tsickle": "^{{tsickleVersion}}", - "typescript": "{{{tsVersion}}}", - "zone.js": "^{{zonejsVersion}}" - }{{#npmRepository}}, - "publishConfig": { - "registry": "{{{npmRepository}}}" - } -{{/npmRepository}} - -} diff --git a/boat-scaffold/src/main/templates/boat-angular-mock/tsconfig.mustache b/boat-scaffold/src/main/templates/boat-angular-mock/tsconfig.mustache deleted file mode 100644 index 56b839768..000000000 --- a/boat-scaffold/src/main/templates/boat-angular-mock/tsconfig.mustache +++ /dev/null @@ -1,27 +0,0 @@ -{ - "compilerOptions": { - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "noImplicitAny": false, - "suppressImplicitAnyIndexErrors": true, - "target": "{{#supportsES6}}es6{{/supportsES6}}{{^supportsES6}}es5{{/supportsES6}}", - "module": "{{#supportsES6}}es6{{/supportsES6}}{{^supportsES6}}commonjs{{/supportsES6}}", - "moduleResolution": "node", - "removeComments": false, - "sourceMap": true, - "outDir": "./dist", - "noLib": false, - "declaration": true, - "lib": [ "es6", "dom" ], - "typeRoots": [ - "node_modules/@types" - ] - }, - "exclude": [ - "node_modules", - "dist" - ], - "filesGlob": [ - "./api/*.ts" - ] -} diff --git a/boat-scaffold/src/main/templates/boat-angular/api.module.mustache b/boat-scaffold/src/main/templates/boat-angular/api.module.mustache index 3b1ecd911..b1fb6ddaf 100644 --- a/boat-scaffold/src/main/templates/boat-angular/api.module.mustache +++ b/boat-scaffold/src/main/templates/boat-angular/api.module.mustache @@ -2,10 +2,6 @@ import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core import { {{configurationClassName}}{{#withMocks}}, CONFIG_TOKEN{{/withMocks}} } from './configuration'; import { HttpClient } from '@angular/common/http'; -{{#withMocks}} -import { DataModulesManager } from "@backbase/foundation-ang/data-http"; -{{/withMocks}} - @NgModule({ imports: [], declarations: [], diff --git a/boat-scaffold/src/main/templates/boat-angular/package.mustache b/boat-scaffold/src/main/templates/boat-angular/package.mustache index 4f1b2e834..1593edef6 100644 --- a/boat-scaffold/src/main/templates/boat-angular/package.mustache +++ b/boat-scaffold/src/main/templates/boat-angular/package.mustache @@ -29,9 +29,6 @@ }, "peerDependencies": { "@angular/core": ">={{ngVersion}}", - {{#withMocks}} - "@backbase/foundation-ang": ">={{foundationVersion}}", - {{/withMocks}} "rxjs": ">={{rxjsVersion}}" }, "devDependencies": { @@ -45,9 +42,6 @@ "@ngrx/store": "^{{ngVersion}}", "ng-packagr": "^{{ngPackagrVersion}}", "reflect-metadata": "^0.1.3", - {{#withMocks}} - "@backbase/foundation-ang": "^{{foundationVersion}}", - {{/withMocks}} "rxjs": "^{{rxjsVersion}}", "typescript": "~{{{tsVersion}}}", "zone.js": "^{{zonejsVersion}}" diff --git a/boat-scaffold/src/main/templates/boat-angular/public_api.mustache b/boat-scaffold/src/main/templates/boat-angular/public_api.mustache index 2412f5f30..6bed3705a 100644 --- a/boat-scaffold/src/main/templates/boat-angular/public_api.mustache +++ b/boat-scaffold/src/main/templates/boat-angular/public_api.mustache @@ -8,9 +8,5 @@ export * from './api.module'; {{#operations}} export * from './api/{{ classFilename }}'; {{/operations}} - -{{#withMocks}} -export * from './api/{{ classFilename }}.mocks'; -{{/withMocks}} {{/apis}} {{/apiInfo}} \ No newline at end of file diff --git a/boat-scaffold/src/test/java/com/backbase/oss/codegen/angular/BoatAngularTemplatesTests.java b/boat-scaffold/src/test/java/com/backbase/oss/codegen/angular/BoatAngularTemplatesTests.java index 988e36b6c..9e426dda6 100644 --- a/boat-scaffold/src/test/java/com/backbase/oss/codegen/angular/BoatAngularTemplatesTests.java +++ b/boat-scaffold/src/test/java/com/backbase/oss/codegen/angular/BoatAngularTemplatesTests.java @@ -235,9 +235,6 @@ private List generateFrom(String templates) { if (!Objects.isNull(this.param.ngVersion)) { cf.addAdditionalProperty(BoatAngularGenerator.NG_VERSION, this.param.ngVersion); } - if (!Objects.isNull(this.param.foundationVersion)) { - cf.addAdditionalProperty(BoatAngularGenerator.FOUNDATION_VERSION, this.param.foundationVersion); - } if (!Objects.isNull(this.param.specVersion)) { cf.addAdditionalProperty(BoatAngularGenerator.SPEC_VERSION, this.param.specVersion); @@ -283,7 +280,6 @@ static class Combination { final String name; final String ngVersion; - final String foundationVersion; final String specVersion; final String specArtifactId; final String specGroupId; @@ -297,7 +293,6 @@ static class Combination { Combination(int mask, String ngVersion) { this.name = caseName(mask) + "-ng-" + ngVersion; this.ngVersion = ngVersion; - this.foundationVersion = mask == 0 ? "6.0.0" : mask == 1 ? "7.0.0" : null; this.specVersion = mask == 0 ? "1.0.0" : mask == 1 ? "2.0.0" : null; this.specArtifactId = "specArtifactId"; this.specGroupId = "specGroupId"; From 8875bcfd9aecaf81b16e680ea7a8b76b8273782c Mon Sep 17 00:00:00 2001 From: Aleksandr Endovitskii Date: Mon, 5 Jun 2023 10:22:22 +0200 Subject: [PATCH 04/10] [BUS-603]: remove missed parameter --- .../src/main/templates/boat-angular/api.module.mustache | 1 - 1 file changed, 1 deletion(-) diff --git a/boat-scaffold/src/main/templates/boat-angular/api.module.mustache b/boat-scaffold/src/main/templates/boat-angular/api.module.mustache index b1fb6ddaf..56f50b660 100644 --- a/boat-scaffold/src/main/templates/boat-angular/api.module.mustache +++ b/boat-scaffold/src/main/templates/boat-angular/api.module.mustache @@ -19,7 +19,6 @@ export class {{apiModuleClassName}} { constructor( @Optional() @SkipSelf() parentModule: {{apiModuleClassName}}, @Optional() http: HttpClient, {{#withMocks}} - @Optional() dataModulesManager: DataModulesManager | null, config: {{configurationClassName}}, {{/withMocks}} From 69b19ce5fd34a6b5d3c62bf0e5dda0cab8db1a02 Mon Sep 17 00:00:00 2001 From: Aleksandr Endovitskii Date: Tue, 6 Jun 2023 17:29:19 +0200 Subject: [PATCH 05/10] [BUS-603]: ts -> js mocks, cleanup of unused mocks related code --- .../codegen/angular/BoatAngularGenerator.java | 2 +- .../templates/boat-angular/api.module.mustache | 16 +--------------- .../boat-angular/configuration.mustache | 9 --------- .../templates/boat-angular/ng-package.mustache | 3 ++- .../angular/BoatAngularTemplatesTests.java | 2 +- 5 files changed, 5 insertions(+), 27 deletions(-) diff --git a/boat-scaffold/src/main/java/com/backbase/oss/codegen/angular/BoatAngularGenerator.java b/boat-scaffold/src/main/java/com/backbase/oss/codegen/angular/BoatAngularGenerator.java index 0d2937674..3f6fd6a38 100644 --- a/boat-scaffold/src/main/java/com/backbase/oss/codegen/angular/BoatAngularGenerator.java +++ b/boat-scaffold/src/main/java/com/backbase/oss/codegen/angular/BoatAngularGenerator.java @@ -223,7 +223,7 @@ public void processOpts() { processBooleanOpt(WITH_MOCKS, withMocks -> { if (Boolean.TRUE.equals(withMocks)) { - apiTemplateFiles.put("apiMocks.mustache", ".mocks.ts"); + apiTemplateFiles.put("apiMocks.mustache", ".mocks.js"); } }); diff --git a/boat-scaffold/src/main/templates/boat-angular/api.module.mustache b/boat-scaffold/src/main/templates/boat-angular/api.module.mustache index 56f50b660..f54afbebf 100644 --- a/boat-scaffold/src/main/templates/boat-angular/api.module.mustache +++ b/boat-scaffold/src/main/templates/boat-angular/api.module.mustache @@ -1,5 +1,5 @@ import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core'; -import { {{configurationClassName}}{{#withMocks}}, CONFIG_TOKEN{{/withMocks}} } from './configuration'; +import { {{configurationClassName}} } from './configuration'; import { HttpClient } from '@angular/common/http'; @NgModule({ @@ -18,10 +18,6 @@ export class {{apiModuleClassName}} { constructor( @Optional() @SkipSelf() parentModule: {{apiModuleClassName}}, @Optional() http: HttpClient, - {{#withMocks}} - config: {{configurationClassName}}, - {{/withMocks}} - ) { if (parentModule) { throw new Error('{{apiModuleClassName}} is already loaded. Import in your base AppModule only.'); @@ -30,15 +26,5 @@ export class {{apiModuleClassName}} { throw new Error('You need to import the HttpClientModule in your AppModule! \n' + 'See also https://github.com/angular/angular/issues/20575'); } - - {{#withMocks}} - if (dataModulesManager) { - dataModulesManager.setModuleConfig(CONFIG_TOKEN, { - apiRoot: '', - servicePath: config.basePath || '', - headers: {}, - }); - } - {{/withMocks}} } } diff --git a/boat-scaffold/src/main/templates/boat-angular/configuration.mustache b/boat-scaffold/src/main/templates/boat-angular/configuration.mustache index e7d6ddb8a..c6e648010 100644 --- a/boat-scaffold/src/main/templates/boat-angular/configuration.mustache +++ b/boat-scaffold/src/main/templates/boat-angular/configuration.mustache @@ -1,9 +1,5 @@ import { HttpParameterCodec } from '@angular/common/http'; -{{#withMocks}} -import { InjectionToken } from '@angular/core'; -{{/withMocks}} - export interface {{configurationParametersInterfaceName}} { apiKeys?: {[ key: string ]: string}; username?: string; @@ -146,8 +142,3 @@ export class {{configurationClassName}} { : value; } } - -{{#withMocks}} -export const CONFIG_TOKEN = new InjectionToken('api-data-module {{configurationClassName}}'); -{{/withMocks}} - diff --git a/boat-scaffold/src/main/templates/boat-angular/ng-package.mustache b/boat-scaffold/src/main/templates/boat-angular/ng-package.mustache index f3b5a1322..aa09b53a4 100644 --- a/boat-scaffold/src/main/templates/boat-angular/ng-package.mustache +++ b/boat-scaffold/src/main/templates/boat-angular/ng-package.mustache @@ -3,5 +3,6 @@ "lib": { "entryFile": "public_api.ts" }, - "dest": "{{{buildDist}}}" + "dest": "{{{buildDist}}}", + "assets": ["./api/*.mocks.js"] } diff --git a/boat-scaffold/src/test/java/com/backbase/oss/codegen/angular/BoatAngularTemplatesTests.java b/boat-scaffold/src/test/java/com/backbase/oss/codegen/angular/BoatAngularTemplatesTests.java index 9e426dda6..5a00a5aaf 100644 --- a/boat-scaffold/src/test/java/com/backbase/oss/codegen/angular/BoatAngularTemplatesTests.java +++ b/boat-scaffold/src/test/java/com/backbase/oss/codegen/angular/BoatAngularTemplatesTests.java @@ -121,7 +121,7 @@ public void npmRepository() { @Check public void withMocks() { assertThat( - findPattern(selectFiles("/api/.+\\.service\\.mocks\\.ts$"), "module.exports"), + findPattern(selectFiles("/api/.+\\.service\\.mocks\\.js$"), "module.exports"), equalTo(this.param.withMocks)); } From ab99239af5b1e907c34dda138c4f3aa643a17339 Mon Sep 17 00:00:00 2001 From: Aleksandr Endovitskii Date: Thu, 8 Jun 2023 16:50:13 +0200 Subject: [PATCH 06/10] [BUS-603]: new parameters in package metadata --- .../src/main/templates/boat-angular/package.mustache | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/boat-scaffold/src/main/templates/boat-angular/package.mustache b/boat-scaffold/src/main/templates/boat-angular/package.mustache index 1593edef6..1bb6fed66 100644 --- a/boat-scaffold/src/main/templates/boat-angular/package.mustache +++ b/boat-scaffold/src/main/templates/boat-angular/package.mustache @@ -13,8 +13,14 @@ "specGroupId": "{{{specGroupId}}}", {{/specGroupId}} {{#inputSpecRelative}} - "inputSpecRelative": "{{{inputSpecRelative}}}" + "inputSpecRelative": "{{{inputSpecRelative}}}", {{/inputSpecRelative}} + {{#specClassifier}} + "specClassifier": "{{{specClassifier}}}", + {{/specClassifier}} + {{#specType}} + "specType": "{{{specType}}}" + {{/specType}} }, "keywords": [ "backbase", From 1bf389c47730590e8bcdd89cf957a7cd60d5826a Mon Sep 17 00:00:00 2001 From: Aleksandr Endovitskii Date: Thu, 8 Jun 2023 16:55:00 +0200 Subject: [PATCH 07/10] [BUS-603]: same filename as for 0.16.x --- .../com/backbase/oss/codegen/angular/BoatAngularGenerator.java | 2 +- .../backbase/oss/codegen/angular/BoatAngularTemplatesTests.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/boat-scaffold/src/main/java/com/backbase/oss/codegen/angular/BoatAngularGenerator.java b/boat-scaffold/src/main/java/com/backbase/oss/codegen/angular/BoatAngularGenerator.java index 3f6fd6a38..d54dd9c7e 100644 --- a/boat-scaffold/src/main/java/com/backbase/oss/codegen/angular/BoatAngularGenerator.java +++ b/boat-scaffold/src/main/java/com/backbase/oss/codegen/angular/BoatAngularGenerator.java @@ -223,7 +223,7 @@ public void processOpts() { processBooleanOpt(WITH_MOCKS, withMocks -> { if (Boolean.TRUE.equals(withMocks)) { - apiTemplateFiles.put("apiMocks.mustache", ".mocks.js"); + apiTemplateFiles.put("apiMocks.mustache", ".mocks.array.js"); } }); diff --git a/boat-scaffold/src/test/java/com/backbase/oss/codegen/angular/BoatAngularTemplatesTests.java b/boat-scaffold/src/test/java/com/backbase/oss/codegen/angular/BoatAngularTemplatesTests.java index 5a00a5aaf..9f7b96539 100644 --- a/boat-scaffold/src/test/java/com/backbase/oss/codegen/angular/BoatAngularTemplatesTests.java +++ b/boat-scaffold/src/test/java/com/backbase/oss/codegen/angular/BoatAngularTemplatesTests.java @@ -121,7 +121,7 @@ public void npmRepository() { @Check public void withMocks() { assertThat( - findPattern(selectFiles("/api/.+\\.service\\.mocks\\.js$"), "module.exports"), + findPattern(selectFiles("/api/.+\\.service\\.mocks\\.array\\.js$"), "module.exports"), equalTo(this.param.withMocks)); } From 760431c279cef55c203a58416b3fb8c1accf73fa Mon Sep 17 00:00:00 2001 From: David Scourfield Date: Fri, 9 Jun 2023 15:26:07 +0200 Subject: [PATCH 08/10] Put mocks.array.js files in a separate dir --- .../codegen/angular/BoatAngularGenerator.java | 16 ++++++++++++++-- .../angular/BoatAngularTemplatesTests.java | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/boat-scaffold/src/main/java/com/backbase/oss/codegen/angular/BoatAngularGenerator.java b/boat-scaffold/src/main/java/com/backbase/oss/codegen/angular/BoatAngularGenerator.java index d54dd9c7e..27e8c9b0d 100644 --- a/boat-scaffold/src/main/java/com/backbase/oss/codegen/angular/BoatAngularGenerator.java +++ b/boat-scaffold/src/main/java/com/backbase/oss/codegen/angular/BoatAngularGenerator.java @@ -79,6 +79,8 @@ public class BoatAngularGenerator extends AbstractTypeScriptClientCodegen { protected String serviceFileSuffix = ".service"; protected String modelFileSuffix = ""; + private static final String MOCKS_ARRAY_TEMPLATE_NAME = "apiMocks.array.mustache"; + public BoatAngularGenerator() { super(); @@ -116,6 +118,16 @@ public BoatAngularGenerator() { } + @Override + public String apiFilename(String templateName, String tag) { + String suffix = apiTemplateFiles().get(templateName); + String folder = templateName.equals(MOCKS_ARRAY_TEMPLATE_NAME) ? mocksArrayFolder() : apiFileFolder(); + return folder + File.separator + toApiFilename(tag) + suffix; + } + + protected String mocksArrayFolder() { + return outputFolder + File.separator + "mocks"; + } @Override public void preprocessOpenAPI(OpenAPI openAPI) { @@ -219,11 +231,11 @@ public void processOpts() { () -> { log.info("generating code without OpenAPI YAML SPEC_GROUP_ID ..."); log.info(" (you can select the specGroupId by setting the additionalProperty specGroupId)"); - }); + }); processBooleanOpt(WITH_MOCKS, withMocks -> { if (Boolean.TRUE.equals(withMocks)) { - apiTemplateFiles.put("apiMocks.mustache", ".mocks.array.js"); + apiTemplateFiles.put(MOCKS_ARRAY_TEMPLATE_NAME, ".mocks.array.js"); } }); diff --git a/boat-scaffold/src/test/java/com/backbase/oss/codegen/angular/BoatAngularTemplatesTests.java b/boat-scaffold/src/test/java/com/backbase/oss/codegen/angular/BoatAngularTemplatesTests.java index 9f7b96539..2b72311ad 100644 --- a/boat-scaffold/src/test/java/com/backbase/oss/codegen/angular/BoatAngularTemplatesTests.java +++ b/boat-scaffold/src/test/java/com/backbase/oss/codegen/angular/BoatAngularTemplatesTests.java @@ -121,7 +121,7 @@ public void npmRepository() { @Check public void withMocks() { assertThat( - findPattern(selectFiles("/api/.+\\.service\\.mocks\\.array\\.js$"), "module.exports"), + findPattern(selectFiles("/mocks/.+\\.service\\.mocks\\.array\\.js$"), "module.exports"), equalTo(this.param.withMocks)); } From f548077db4de80768e8fb3cad85e34f030a546b3 Mon Sep 17 00:00:00 2001 From: Aleksandr Endovitskii Date: Fri, 9 Jun 2023 16:00:52 +0200 Subject: [PATCH 09/10] [BUS-603]: ng-package mocks path update --- .../src/main/templates/boat-angular/ng-package.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boat-scaffold/src/main/templates/boat-angular/ng-package.mustache b/boat-scaffold/src/main/templates/boat-angular/ng-package.mustache index aa09b53a4..676dc505a 100644 --- a/boat-scaffold/src/main/templates/boat-angular/ng-package.mustache +++ b/boat-scaffold/src/main/templates/boat-angular/ng-package.mustache @@ -4,5 +4,5 @@ "entryFile": "public_api.ts" }, "dest": "{{{buildDist}}}", - "assets": ["./api/*.mocks.js"] + "assets": ["mocks/*.js"] } From fda342527bb98848b91434d6ab60c9e19002b52a Mon Sep 17 00:00:00 2001 From: Aleksandr Endovitskii Date: Fri, 9 Jun 2023 17:13:48 +0200 Subject: [PATCH 10/10] naming fixed --- .../boat-angular/{apiMocks.mustache => apiMocks.array.mustache} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename boat-scaffold/src/main/templates/boat-angular/{apiMocks.mustache => apiMocks.array.mustache} (100%) diff --git a/boat-scaffold/src/main/templates/boat-angular/apiMocks.mustache b/boat-scaffold/src/main/templates/boat-angular/apiMocks.array.mustache similarity index 100% rename from boat-scaffold/src/main/templates/boat-angular/apiMocks.mustache rename to boat-scaffold/src/main/templates/boat-angular/apiMocks.array.mustache