From 480f0a6a78e57b4634068ee67bdfd6654f859e38 Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Sun, 15 Oct 2023 12:37:29 -0300 Subject: [PATCH] prompt adjusts (#213) * prompt adjusts * add AbstractAuditingEntity test --- .github/workflows/github-ci.yml | 2 +- .../__snapshots__/generator.spec.mjs.snap | 12 +++++++ generators/java-audit/generator.spec.mjs | 17 +++++++++- .../__snapshots__/generator.spec.mjs.snap | 33 +++++++++++++++++++ generators/server/command.mjs | 12 ++++--- generators/server/generator.mjs | 11 ++++--- 6 files changed, 77 insertions(+), 10 deletions(-) diff --git a/.github/workflows/github-ci.yml b/.github/workflows/github-ci.yml index 3810494..43123e2 100644 --- a/.github/workflows/github-ci.yml +++ b/.github/workflows/github-ci.yml @@ -90,7 +90,7 @@ jobs: # Install JHipster and generate project+entities #---------------------------------------------------------------------- - name: 'PROJECT: generate' - run: 'JHI_PROFILE=${{ matrix.profile }} jhipster-entity-audit generate-sample ${{ matrix.suite }} --build ${{ matrix.build-tool }} --audit-framework ${{ matrix.audit-framework }} --audit-page --no-insight --skip-git --skip-commit-hook --skip-jhipster-dependencies --no-cypress-audit' + run: 'JHI_PROFILE=${{ matrix.profile }} jhipster-entity-audit generate-sample ${{ matrix.suite }} --build ${{ matrix.build-tool }} --audit-framework ${{ matrix.audit-framework }} --audit-page --no-insight --skip-git --skip-commit-hook --skip-jhipster-dependencies --no-cypress-audit --audit-update-type all' - name: 'TESTS: backend tests' run: npm run ci:backend:test - name: 'TESTS: frontend tests' diff --git a/generators/java-audit/__snapshots__/generator.spec.mjs.snap b/generators/java-audit/__snapshots__/generator.spec.mjs.snap index 898dabe..5c942db 100644 --- a/generators/java-audit/__snapshots__/generator.spec.mjs.snap +++ b/generators/java-audit/__snapshots__/generator.spec.mjs.snap @@ -2,14 +2,26 @@ exports[`SubGenerator java-audit of entity-audit JHipster blueprint > run > should succeed 1`] = ` { + ".jhipster/Audited.json": { + "stateCleared": "modified", + }, ".yo-rc.json": { "stateCleared": "modified", }, "src/main/java/com/mycompany/myapp/GeneratedByJHipster.java": { "stateCleared": "modified", }, + "src/main/java/com/mycompany/myapp/domain/Audited.java": { + "stateCleared": "modified", + }, + "src/main/java/com/mycompany/myapp/domain/package-info.java": { + "stateCleared": "modified", + }, "src/main/java/com/mycompany/myapp/package-info.java": { "stateCleared": "modified", }, + "src/test/java/com/mycompany/myapp/domain/AuditedTest.java": { + "stateCleared": "modified", + }, } `; diff --git a/generators/java-audit/generator.spec.mjs b/generators/java-audit/generator.spec.mjs index 1c66175..ccc4995 100644 --- a/generators/java-audit/generator.spec.mjs +++ b/generators/java-audit/generator.spec.mjs @@ -10,7 +10,18 @@ describe('SubGenerator java-audit of entity-audit JHipster blueprint', () => { beforeAll(async function () { await helpers .run(SUB_GENERATOR_NAMESPACE) - .withJHipsterConfig() + .withJHipsterConfig({}, [ + { + name: 'Audited', + enableAudit: true, + fields: [ + { + fieldName: 'name', + fieldType: 'String', + }, + ], + }, + ]) .withOptions({ creationTimestamp: '2022-01-01', ignoreNeedlesError: true, @@ -22,5 +33,9 @@ describe('SubGenerator java-audit of entity-audit JHipster blueprint', () => { it('should succeed', () => { expect(result.getStateSnapshot()).toMatchSnapshot(); }); + it('entities should extend AbstractAuditingEntity', () => { + // TODO remove jhi extension + result.assertFileContent('src/main/java/com/mycompany/myapp/domain/Audited.java.jhi', ' AbstractAuditingEntity<'); + }); }); }); diff --git a/generators/server/__snapshots__/generator.spec.mjs.snap b/generators/server/__snapshots__/generator.spec.mjs.snap index 23b3f57..2557df4 100644 --- a/generators/server/__snapshots__/generator.spec.mjs.snap +++ b/generators/server/__snapshots__/generator.spec.mjs.snap @@ -116,6 +116,18 @@ exports[`SubGenerator server of entity-audit JHipster blueprint > run > should s "src/main/java/com/mycompany/myapp/aop/logging/package-info.java": { "stateCleared": "modified", }, + "src/main/java/com/mycompany/myapp/audit/AsyncEntityAuditEventWriter.java": { + "stateCleared": "modified", + }, + "src/main/java/com/mycompany/myapp/audit/EntityAuditEventListener.java": { + "stateCleared": "modified", + }, + "src/main/java/com/mycompany/myapp/audit/EntityAuditEventWriter.java": { + "stateCleared": "modified", + }, + "src/main/java/com/mycompany/myapp/audit/package-info.java": { + "stateCleared": "modified", + }, "src/main/java/com/mycompany/myapp/config/ApplicationProperties.java": { "stateCleared": "modified", }, @@ -173,9 +185,18 @@ exports[`SubGenerator server of entity-audit JHipster blueprint > run > should s "src/main/java/com/mycompany/myapp/domain/Authority.java": { "stateCleared": "modified", }, + "src/main/java/com/mycompany/myapp/domain/EntityAuditEvent.java": { + "stateCleared": "modified", + }, "src/main/java/com/mycompany/myapp/domain/User.java": { "stateCleared": "modified", }, + "src/main/java/com/mycompany/myapp/domain/enumeration/EntityAuditAction.java": { + "stateCleared": "modified", + }, + "src/main/java/com/mycompany/myapp/domain/enumeration/package-info.java": { + "stateCleared": "modified", + }, "src/main/java/com/mycompany/myapp/domain/package-info.java": { "stateCleared": "modified", }, @@ -191,6 +212,9 @@ exports[`SubGenerator server of entity-audit JHipster blueprint > run > should s "src/main/java/com/mycompany/myapp/repository/AuthorityRepository.java": { "stateCleared": "modified", }, + "src/main/java/com/mycompany/myapp/repository/EntityAuditEventRepository.java": { + "stateCleared": "modified", + }, "src/main/java/com/mycompany/myapp/repository/UserRepository.java": { "stateCleared": "modified", }, @@ -263,6 +287,9 @@ exports[`SubGenerator server of entity-audit JHipster blueprint > run > should s "src/main/java/com/mycompany/myapp/web/rest/AuthenticateController.java": { "stateCleared": "modified", }, + "src/main/java/com/mycompany/myapp/web/rest/EntityAuditResource.java": { + "stateCleared": "modified", + }, "src/main/java/com/mycompany/myapp/web/rest/PublicUserResource.java": { "stateCleared": "modified", }, @@ -326,6 +353,9 @@ exports[`SubGenerator server of entity-audit JHipster blueprint > run > should s "src/main/resources/config/liquibase/changelog/00000000000000_initial_schema.xml": { "stateCleared": "modified", }, + "src/main/resources/config/liquibase/changelog/20220101000100_added_entity_EntityAuditEvent.xml": { + "stateCleared": "modified", + }, "src/main/resources/config/liquibase/data/authority.csv": { "stateCleared": "modified", }, @@ -464,6 +494,9 @@ exports[`SubGenerator server of entity-audit JHipster blueprint > run > should s "src/test/java/com/mycompany/myapp/TechnicalStructureTest.java": { "stateCleared": "modified", }, + "src/test/java/com/mycompany/myapp/audit/TestEntityAuditEventWriter.java": { + "stateCleared": "modified", + }, "src/test/java/com/mycompany/myapp/config/AsyncSyncConfiguration.java": { "stateCleared": "modified", }, diff --git a/generators/server/command.mjs b/generators/server/command.mjs index 827f5cf..09ac720 100644 --- a/generators/server/command.mjs +++ b/generators/server/command.mjs @@ -38,11 +38,14 @@ const command = { }, scope: 'blueprint', }, - updateType: { + auditUpdateType: { + cli: { + type: String, + }, prompt: generator => ({ - when: () => generator.blueprintConfig.auditFramework === undefined, + when: answers => (generator.initialRun || generator.options.askAnswered) && ['javers', 'custom'].includes(answers.auditFramework), type: 'list', - name: 'updateType', + name: 'auditUpdateType', message: 'Do you want to enable audit for all existing entities?', choices: [ { name: 'Yes, update all', value: 'all' }, @@ -58,10 +61,11 @@ const command = { type: Array, }, prompt: gen => ({ - when: answers => gen.blueprintConfig.auditFramework === undefined && answers.updateType !== 'all', + when: answers => answers.auditUpdateType === 'selected', type: 'checkbox', message: 'Please choose the entities to be audited', choices: gen.getExistingEntities().map(e => e.name), + default: [], }), scope: 'generator', }, diff --git a/generators/server/generator.mjs b/generators/server/generator.mjs index 3d82f73..218c59b 100644 --- a/generators/server/generator.mjs +++ b/generators/server/generator.mjs @@ -2,12 +2,17 @@ import BaseApplicationGenerator from 'generator-jhipster/generators/base-applica import command from './command.mjs'; export default class extends BaseApplicationGenerator { + initialRun; + constructor(args, opts, features) { super(args, opts, { ...features, sbsBlueprint: true }); } get [BaseApplicationGenerator.INITIALIZING]() { return this.asInitializingTaskGroup({ + setInitialRun() { + this.initialRun = this.blueprintConfig.auditFramework === undefined; + }, async initializeOptions() { this.parseJHipsterCommand(command); }, @@ -16,9 +21,7 @@ export default class extends BaseApplicationGenerator { get [BaseApplicationGenerator.PROMPTING]() { return this.asPromptingTaskGroup({ - async promptingTemplateTask({ control }) { - if (control.existingProject && !this.options.askAnswered) return; - + async promptingTemplateTask() { await this.prompt(this.prepareQuestions(command.configs)); }, }); @@ -28,7 +31,7 @@ export default class extends BaseApplicationGenerator { return this.asComposingTaskGroup({ async composingTask() { if (this.blueprintConfig.auditFramework && this.blueprintConfig.auditFramework !== 'no') { - const auditedEntities = this.updateType === 'all' ? this.getExistingEntities().map(e => e.name) : this.auditedEntities; + const auditedEntities = this.auditUpdateType === 'all' ? this.getExistingEntities().map(e => e.name) : this.auditedEntities; await this.composeWithJHipster('jhipster-entity-audit:java-audit', { generatorOptions: { auditedEntities } }); } },