From 304efaa910191bf13905fdf72d037d65c2078c8b Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Wed, 5 Oct 2022 14:01:51 -0300 Subject: [PATCH] stop relaying on commonjs features --- generators/app/generator.cjs | 14 +-- generators/base/generator-base.cjs | 2 + generators/generator-constants.mjs | 39 +++++++ generators/languages/generator.mjs | 26 +++-- test/app/composing.spec.js | 15 +-- test/app/database-changelog.spec.js | 7 +- test/app/prompts.spec.js | 3 +- test/blueprint/app-blueprint.spec.js | 17 +-- .../client-blueprint-custom-path.spec.js | 4 +- .../multiple-app-blueprints.spec.mjs | 8 +- test/blueprint/multiple-blueprints.spec.js | 4 +- test/blueprint/sbs-blueprint.spec.js | 4 +- test/blueprint/scoped-blueprint.spec.js | 3 +- test/ci-cd.spec.js | 110 +++++++++--------- test/cli/cli.spec.js | 15 +-- test/cli/environment-builder.spec.js | 10 +- test/cli/import-jdl.spec.js | 43 +++---- test/docker-compose.spec.js | 31 ++--- ...og.spec.js => database-changelog.spec.mts} | 19 +-- test/entity/single-entity.spec.js | 29 +++-- test/export-jdl.spec.js | 10 +- test/heroku.spec.js | 34 +++--- test/knative.spec.js | 35 +++--- test/kubernetes.helm.spec.js | 23 ++-- test/kubernetes.spec.js | 25 ++-- test/load.spec.js | 8 -- test/needle-api/needle-client-angular.spec.js | 4 +- ...n.spec.mjs => needle-client-i18n.spec.mts} | 18 +-- test/needle-api/needle-client-react.spec.js | 4 +- test/needle-api/needle-client-vue.spec.js | 4 +- test/needle-api/needle-client-webpack.spec.js | 4 +- test/needle-api/needle-client.spec.js | 4 +- test/needle-api/needle-server-cache.spec.js | 10 +- test/needle-api/needle-server-gradle.spec.js | 4 +- .../needle-server-liquibase.spec.js | 3 +- .../needle-server-logback-spring.spec.js | 4 +- test/needle-api/needle-server-maven.spec.js | 4 +- test/openapi-client.spec.js | 14 +-- test/openshift.spec.js | 13 ++- test/spring-controller.spec.js | 9 +- test/spring-service.spec.js | 10 +- test/support/get-generator.mts | 8 ++ test/support/get-template-path.mts | 9 ++ test/support/index.cjs | 9 ++ test/support/index.mts | 2 + test/support/mock-config.cjs | 4 +- 46 files changed, 370 insertions(+), 309 deletions(-) create mode 100644 generators/generator-constants.mjs rename test/entity/{database-changelog.spec.js => database-changelog.spec.mts} (75%) delete mode 100644 test/load.spec.js rename test/needle-api/{needle-client-i18n.spec.mjs => needle-client-i18n.spec.mts} (88%) create mode 100644 test/support/get-generator.mts create mode 100644 test/support/get-template-path.mts diff --git a/generators/app/generator.cjs b/generators/app/generator.cjs index 40a98d3cd7ca..2316415ac20e 100644 --- a/generators/app/generator.cjs +++ b/generators/app/generator.cjs @@ -33,14 +33,7 @@ const { OptionNames } = require('../../jdl/jhipster/application-options'); const { NO: CLIENT_FRAMEWORK_NO } = require('../../jdl/jhipster/client-framework-types'); const { JHI_PREFIX, BASE_NAME, JWT_SECRET_KEY, PACKAGE_NAME, PACKAGE_FOLDER, REMEMBER_ME_KEY } = OptionNames; -const { - GENERATOR_COMMON, - GENERATOR_ENTITIES, - GENERATOR_LANGUAGES, - GENERATOR_CLIENT, - GENERATOR_PAGE, - GENERATOR_SERVER, -} = require('../generator-list.cjs'); +const { GENERATOR_COMMON, GENERATOR_LANGUAGES, GENERATOR_CLIENT, GENERATOR_PAGE, GENERATOR_SERVER } = require('../generator-list.cjs'); module.exports = class JHipsterAppGenerator extends BaseBlueprintGenerator { constructor(args, options, features) { @@ -476,11 +469,6 @@ module.exports = class JHipsterAppGenerator extends BaseBlueprintGenerator { this.config.set(config); }, - async composeEntities() { - if (!this.options.withEntities) return; - await this.composeWithJHipster(GENERATOR_ENTITIES, { skipInstall: true }, true); - }, - async composePages() { if (!this.jhipsterConfig.pages || this.jhipsterConfig.pages.length === 0 || this.configOptions.skipComposePage) return; this.configOptions.skipComposePage = true; diff --git a/generators/base/generator-base.cjs b/generators/base/generator-base.cjs index 3c7438082582..d6dee3aedff0 100644 --- a/generators/base/generator-base.cjs +++ b/generators/base/generator-base.cjs @@ -104,6 +104,8 @@ class JHipsterBaseGenerator extends PrivateBase { /** @type {Record} */ dependabotPackageJson; + sbsBlueprint; + constructor(args, options, features) { super(args, options, features); diff --git a/generators/generator-constants.mjs b/generators/generator-constants.mjs new file mode 100644 index 000000000000..58039bc39608 --- /dev/null +++ b/generators/generator-constants.mjs @@ -0,0 +1,39 @@ +/** + * Copyright 2013-2022 the original author or authors from the JHipster project. + * + * This file is part of the JHipster project, see https://www.jhipster.tech/ + * for more information. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import constants from './generator-constants.cjs'; + +const { + GENERATOR_JHIPSTER, + SERVER_MAIN_SRC_DIR, + SERVER_MAIN_RES_DIR, + SERVER_TEST_SRC_DIR, + SERVER_TEST_RES_DIR, + CLIENT_MAIN_SRC_DIR, + CLIENT_TEST_SRC_DIR, +} = constants; + +export { + GENERATOR_JHIPSTER, + SERVER_MAIN_SRC_DIR, + SERVER_MAIN_RES_DIR, + SERVER_TEST_SRC_DIR, + SERVER_TEST_RES_DIR, + CLIENT_MAIN_SRC_DIR, + CLIENT_TEST_SRC_DIR, +}; diff --git a/generators/languages/generator.mjs b/generators/languages/generator.mjs index c468ffc200c8..700bc3b72fa6 100644 --- a/generators/languages/generator.mjs +++ b/generators/languages/generator.mjs @@ -20,7 +20,7 @@ import chalk from 'chalk'; import _ from 'lodash'; -import BaseApplication from '../base-application/generator.cjs'; +import BaseApplicationGenerator from '../base-application/generator.cjs'; import { askForLanguages, askI18n } from './prompts.mjs'; import statistics from '../statistics.cjs'; @@ -38,7 +38,13 @@ const { writeEntityFiles } = entityFiles; const { translationDefaultConfig } = generatorDefaults; const { SERVER_TEST_SRC_DIR } = constants; -export default class LanguagesGenerator extends BaseApplication { +/** + * This is the base class for a generator that generates entities. + * + * @class + * @extends {BaseApplicationGenerator} + */ +export default class LanguagesGenerator extends BaseApplicationGenerator { constructor(args, options, features) { super(args, options, { unique: 'namespace', ...features }); @@ -121,7 +127,7 @@ export default class LanguagesGenerator extends BaseApplication { }; } - get [BaseApplication.INITIALIZING]() { + get [BaseApplicationGenerator.INITIALIZING]() { if (this.delegateToBlueprint) return {}; return this.initializing; } @@ -142,7 +148,7 @@ export default class LanguagesGenerator extends BaseApplication { }; } - get [BaseApplication.PROMPTING]() { + get [BaseApplicationGenerator.PROMPTING]() { if (this.delegateToBlueprint) return {}; return this.prompting; } @@ -177,7 +183,7 @@ export default class LanguagesGenerator extends BaseApplication { }; } - get [BaseApplication.CONFIGURING]() { + get [BaseApplicationGenerator.CONFIGURING]() { if (this.delegateToBlueprint) return {}; return this.configuring; } @@ -204,7 +210,7 @@ export default class LanguagesGenerator extends BaseApplication { }; } - get [BaseApplication.PREPARING]() { + get [BaseApplicationGenerator.PREPARING]() { if (this.delegateToBlueprint) return {}; return this.preparing; } @@ -217,7 +223,7 @@ export default class LanguagesGenerator extends BaseApplication { }; } - get [BaseApplication.DEFAULT]() { + get [BaseApplicationGenerator.DEFAULT]() { if (this.delegateToBlueprint) return {}; return this.default; } @@ -252,7 +258,7 @@ export default class LanguagesGenerator extends BaseApplication { }; } - get [BaseApplication.WRITING]() { + get [BaseApplicationGenerator.WRITING]() { if (this.delegateToBlueprint) return {}; return this.writing; } @@ -263,7 +269,7 @@ export default class LanguagesGenerator extends BaseApplication { }; } - get [BaseApplication.WRITING_ENTITIES]() { + get [BaseApplicationGenerator.WRITING_ENTITIES]() { if (this.delegateToBlueprint) return {}; return this.writingEntities; } @@ -295,7 +301,7 @@ export default class LanguagesGenerator extends BaseApplication { }; } - get [BaseApplication.POST_WRITING]() { + get [BaseApplicationGenerator.POST_WRITING]() { if (this.delegateToBlueprint) return {}; return this.postWriting; } diff --git a/test/app/composing.spec.js b/test/app/composing.spec.js index 3a8900d74a4c..a2b9ee115239 100644 --- a/test/app/composing.spec.js +++ b/test/app/composing.spec.js @@ -5,6 +5,7 @@ const { createEnv } = require('yeoman-environment'); const { dryRunHelpers: helpers } = require('../utils/utils'); const { JHIPSTER_CONFIG_DIR } = require('../../generators/generator-constants.cjs'); +const { getGenerator } = require('../support/index.cjs'); const mockedComposedGenerators = [ 'jhipster:common', @@ -24,7 +25,7 @@ describe('jhipster:app composing', () => { let runContext; let runResult; before(async () => { - runContext = helpers.create(require.resolve('../../generators/app/index.mjs')); + runContext = helpers.create(getGenerator('app')); runResult = await runContext .withOptions({ baseName: 'jhipster', @@ -73,7 +74,7 @@ describe('jhipster:app composing', () => { let runContext; let runResult; before(async () => { - runContext = helpers.create(require.resolve('../../generators/app/index.mjs')); + runContext = helpers.create(getGenerator('app')); runResult = await runContext .withOptions({ baseName: 'jhipster', @@ -123,7 +124,7 @@ describe('jhipster:app composing', () => { let runContext; let runResult; before(async () => { - runContext = helpers.create(require.resolve('../../generators/app/index.mjs')); + runContext = helpers.create(getGenerator('app')); runResult = await runContext .withOptions({ baseName: 'jhipster', @@ -170,7 +171,7 @@ describe('jhipster:app composing', () => { let runContext; let runResult; before(async () => { - runContext = helpers.create(require.resolve('../../generators/app/index.mjs')); + runContext = helpers.create(getGenerator('app')); runResult = await runContext .withOptions({ baseName: 'jhipster', @@ -209,7 +210,7 @@ describe('jhipster:app composing', () => { assert(LanguagesGenerator.calledOnce); }); it('should compose with entities generator once', () => { - assert.equal(runResult.mockedGenerators['jhipster:entities'].callCount, 1); + assert.equal(runResult.mockedGenerators['jhipster:entities'].callCount, 0); }); it('should not compose with entity generator', () => { const MockedGenerator = runResult.mockedGenerators['jhipster:entity']; @@ -225,7 +226,7 @@ describe('jhipster:app composing', () => { let runContext; let runResult; before(async () => { - runContext = helpers.create(require.resolve('../../generators/app/index.mjs')); + runContext = helpers.create(getGenerator('app')); runResult = await runContext .withOptions({ baseName: 'jhipster', @@ -280,7 +281,7 @@ describe('jhipster:app composing', () => { let runContext; let runResult; before(async () => { - runContext = helpers.create(require.resolve('../../generators/app/index.mjs')); + runContext = helpers.create(getGenerator('app')); runResult = await runContext .withOptions({ baseName: 'jhipster', diff --git a/test/app/database-changelog.spec.js b/test/app/database-changelog.spec.js index 2f8ad22ec8cd..bc2a0ecf4539 100644 --- a/test/app/database-changelog.spec.js +++ b/test/app/database-changelog.spec.js @@ -1,9 +1,10 @@ const path = require('path'); const fse = require('fs-extra'); const helpers = require('yeoman-test'); -const { createMockedConfig } = require('../support/mock-config.cjs'); +const createMockedConfig = require('../support/mock-config.cjs'); const { SERVER_MAIN_RES_DIR } = require('../../generators/generator-constants.cjs'); +const { getEntityTemplatePath, getGenerator } = require('../support/index.cjs'); describe('jhipster:app database changelogs', () => { context('when regenerating the application', () => { @@ -11,10 +12,10 @@ describe('jhipster:app database changelogs', () => { let runResult; before(() => helpers - .create(require.resolve('../../generators/app/index.mjs')) + .create(getGenerator('app')) .doInDir(dir => { createMockedConfig('05-cassandra', dir, { appDir: '' }); - fse.copySync(path.join(__dirname, '../templates/.jhipster/Simple.json'), path.join(dir, '.jhipster/Foo.json')); + fse.copySync(getEntityTemplatePath('Simple'), path.join(dir, '.jhipster/Foo.json')); }) .withOptions({ withEntities: true, force: true, skipClient: true }) .run() diff --git a/test/app/prompts.spec.js b/test/app/prompts.spec.js index beb634566eb4..294171fb41c4 100644 --- a/test/app/prompts.spec.js +++ b/test/app/prompts.spec.js @@ -7,6 +7,7 @@ const { JWT } = require('../../jdl/jhipster/authentication-types'); const { CYPRESS } = require('../../jdl/jhipster/test-framework-types'); const { ANGULAR } = require('../../jdl/jhipster/client-framework-types'); const { MAVEN } = require('../../jdl/jhipster/build-tool-types'); +const { getGenerator } = require('../support/index.cjs'); const mockedComposedGenerators = ['jhipster:common', 'jhipster:server', 'jhipster:client', 'jhipster:languages', 'jhipster:entity']; @@ -16,7 +17,7 @@ describe('jhipster:app prompts', () => { let runResult; before(() => { return helpers - .create(require.resolve('../../generators/app/index.mjs')) + .create(getGenerator('app')) .withOptions({ fromCli: true, skipInstall: true, diff --git a/test/blueprint/app-blueprint.spec.js b/test/blueprint/app-blueprint.spec.js index 4523c26ec5a9..d27643e33ccc 100644 --- a/test/blueprint/app-blueprint.spec.js +++ b/test/blueprint/app-blueprint.spec.js @@ -6,6 +6,7 @@ const fse = require('fs-extra'); const { jestExpect } = require('mocha-expect-snapshot'); const jhipsterVersion = require('../../package.json').version; const EnvironmentBuilder = require('../../cli/environment-builder'); +const { getGenerator, getTemplatePath } = require('../support/index.cjs'); describe('JHipster application generator with blueprint', () => { describe('generate application with a version-compatible blueprint', () => { @@ -24,7 +25,7 @@ describe('JHipster application generator with blueprint', () => { }; const fakeBlueprintModuleDir = path.join(dir, 'node_modules/generator-jhipster-myblueprint'); fse.ensureDirSync(fakeBlueprintModuleDir); - fse.copySync(path.join(__dirname, '../../test/templates/fake-blueprint'), fakeBlueprintModuleDir); + fse.copySync(getTemplatePath('fake-blueprint'), fakeBlueprintModuleDir); fse.writeJsonSync(path.join(fakeBlueprintModuleDir, 'package.json'), packagejs); }) .withOptions({ @@ -56,7 +57,7 @@ describe('JHipster application generator with blueprint', () => { it('throws an error', () => jestExpect(() => helpers - .run(path.join(__dirname, '../../generators/app/index.mjs')) + .run(getGenerator('app')) .inTmpDir(dir => { // Fake the presence of the blueprint in node_modules const packagejs = { @@ -68,7 +69,7 @@ describe('JHipster application generator with blueprint', () => { }; const fakeBlueprintModuleDir = path.join(dir, 'node_modules/generator-jhipster-myblueprint'); fse.ensureDirSync(fakeBlueprintModuleDir); - fse.copySync(path.join(__dirname, '../../test/templates/fake-blueprint'), fakeBlueprintModuleDir); + fse.copySync(getTemplatePath('fake-blueprint'), fakeBlueprintModuleDir); fse.writeJsonSync(path.join(fakeBlueprintModuleDir, 'package.json'), packagejs); }) .withOptions({ @@ -84,7 +85,7 @@ describe('JHipster application generator with blueprint', () => { describe('generating application with a git blueprint', () => { it('should succeed', () => helpers - .run(path.join(__dirname, '../../generators/app/index.mjs')) + .run(getGenerator('app')) .inTmpDir(dir => { // Fake the presence of the blueprint in node_modules const packagejs = { @@ -96,7 +97,7 @@ describe('JHipster application generator with blueprint', () => { }; const fakeBlueprintModuleDir = path.join(dir, 'node_modules/generator-jhipster-myblueprint'); fse.ensureDirSync(fakeBlueprintModuleDir); - fse.copySync(path.join(__dirname, '../../test/templates/fake-blueprint'), fakeBlueprintModuleDir); + fse.copySync(getTemplatePath('fake-blueprint'), fakeBlueprintModuleDir); fse.writeJsonSync(path.join(fakeBlueprintModuleDir, 'package.json'), packagejs); }) .withOptions({ @@ -123,7 +124,7 @@ describe('JHipster application generator with blueprint', () => { }; const fakeBlueprintModuleDir = path.join(dir, 'node_modules/generator-jhipster-myblueprint'); fse.ensureDirSync(fakeBlueprintModuleDir); - fse.copySync(path.join(__dirname, '../../test/templates/fake-blueprint'), fakeBlueprintModuleDir); + fse.copySync(getTemplatePath('fake-blueprint'), fakeBlueprintModuleDir); fse.writeJsonSync(path.join(fakeBlueprintModuleDir, 'package.json'), packagejs); }) .withOptions({ @@ -155,7 +156,7 @@ describe('JHipster application generator with blueprint', () => { it('throws an error', () => jestExpect(() => helpers - .run(path.join(__dirname, '../../generators/app/index.mjs')) + .run(getGenerator('app')) .inTmpDir(dir => { // Fake the presence of the blueprint in node_modules const packagejs = { @@ -167,7 +168,7 @@ describe('JHipster application generator with blueprint', () => { }; const fakeBlueprintModuleDir = path.join(dir, 'node_modules/generator-jhipster-myblueprint'); fse.ensureDirSync(fakeBlueprintModuleDir); - fse.copySync(path.join(__dirname, '../../test/templates/fake-blueprint'), fakeBlueprintModuleDir); + fse.copySync(getTemplatePath('fake-blueprint'), fakeBlueprintModuleDir); fse.writeJsonSync(path.join(fakeBlueprintModuleDir, 'package.json'), packagejs); }) .withOptions({ diff --git a/test/blueprint/client-blueprint-custom-path.spec.js b/test/blueprint/client-blueprint-custom-path.spec.js index 8af88efc4a36..8b4d2e0cef0b 100644 --- a/test/blueprint/client-blueprint-custom-path.spec.js +++ b/test/blueprint/client-blueprint-custom-path.spec.js @@ -1,4 +1,3 @@ -const path = require('path'); const assert = require('yeoman-assert'); const helpers = require('yeoman-test'); const expectedFiles = require('../utils/expected-files'); @@ -7,6 +6,7 @@ const { MYSQL } = require('../../jdl/jhipster/database-types'); const { ANGULAR } = require('../../jdl/jhipster/client-framework-types'); const { JWT } = require('../../jdl/jhipster/authentication-types'); const { MAVEN } = require('../../jdl/jhipster/build-tool-types'); +const { getGenerator } = require('../support/index.cjs'); const mockBlueprintSubGen = class extends ClientGenerator { constructor(args, opts, features) { @@ -86,7 +86,7 @@ describe('JHipster client generator with blueprint with path customizer', () => describe(`generate client with blueprint option '${blueprintName}'`, () => { before(() => helpers - .run(path.join(__dirname, '../../generators/client/index.mjs')) + .run(getGenerator('client')) .withOptions({ fromCli: true, build: MAVEN, diff --git a/test/blueprint/multiple-app-blueprints.spec.mjs b/test/blueprint/multiple-app-blueprints.spec.mjs index a164391a1b3b..5e55e6e13fdd 100644 --- a/test/blueprint/multiple-app-blueprints.spec.mjs +++ b/test/blueprint/multiple-app-blueprints.spec.mjs @@ -1,8 +1,6 @@ /* eslint-disable max-classes-per-file */ -import path, { dirname } from 'path'; import helpers from 'yeoman-test'; import sinon from 'sinon'; -import { fileURLToPath } from 'url'; import AppGenerator from '../../generators/app/index.mjs'; import ClientGenerator from '../../generators/client/index.mjs'; @@ -13,16 +11,14 @@ import databaseTypes from '../../jdl/jhipster/database-types'; import clientFrameworkTypes from '../../jdl/jhipster/client-framework-types'; import authenticationTypes from '../../jdl/jhipster/authentication-types'; import cacheTypes from '../../jdl/jhipster/cache-types'; +import { getGenerator } from '../support/index.cjs'; const { MYSQL, SQL, H2_MEMORY } = databaseTypes; const { ANGULAR } = clientFrameworkTypes; const { JWT } = authenticationTypes; const { EHCACHE } = cacheTypes; -const __filename = fileURLToPath(import.meta.url); -const __dirname = dirname(__filename); - -const generatorPath = path.join(__dirname, '../../generators/app/index.cjs'); +const generatorPath = getGenerator('app'); const createMockBlueprint = function (parent, spy) { return class extends parent { diff --git a/test/blueprint/multiple-blueprints.spec.js b/test/blueprint/multiple-blueprints.spec.js index 50a20cb465c6..f320760c6dda 100644 --- a/test/blueprint/multiple-blueprints.spec.js +++ b/test/blueprint/multiple-blueprints.spec.js @@ -1,5 +1,4 @@ /* eslint-disable max-classes-per-file */ -const path = require('path'); const assert = require('yeoman-assert'); const helpers = require('yeoman-test'); const expectedFiles = require('../utils/expected-files'); @@ -9,6 +8,7 @@ const { MYSQL, SQL, H2_MEMORY } = require('../../jdl/jhipster/database-types'); const { ANGULAR } = require('../../jdl/jhipster/client-framework-types'); const { JWT } = require('../../jdl/jhipster/authentication-types'); const { EHCACHE } = require('../../jdl/jhipster/cache-types'); +const { getGenerator } = require('../support/index.cjs'); const mockClientBlueprintSubGen = class extends ClientGenerator { constructor(args, opts, features) { @@ -154,7 +154,7 @@ describe('JHipster entity generator with multiple blueprints', () => { describe(`generate entity with multiple blueprints option '${blueprints}'`, () => { before(done => { helpers - .run(path.join(__dirname, '../../generators/app/index.mjs')) + .run(getGenerator('app')) .withOptions({ fromCli: true, skipInstall: true, diff --git a/test/blueprint/sbs-blueprint.spec.js b/test/blueprint/sbs-blueprint.spec.js index 4f573d8a973b..3f3aad5d959a 100644 --- a/test/blueprint/sbs-blueprint.spec.js +++ b/test/blueprint/sbs-blueprint.spec.js @@ -1,4 +1,3 @@ -const path = require('path'); const assert = require('yeoman-assert'); const helpers = require('yeoman-test'); const Generator = require('yeoman-generator'); @@ -7,6 +6,7 @@ const { MYSQL } = require('../../jdl/jhipster/database-types'); const { ANGULAR } = require('../../jdl/jhipster/client-framework-types'); const { JWT } = require('../../jdl/jhipster/authentication-types'); const { MAVEN } = require('../../jdl/jhipster/build-tool-types'); +const { getGenerator } = require('../support/index.cjs'); const mockBlueprintSubGen = class extends Generator { constructor(args, opts, features) { @@ -31,7 +31,7 @@ const mockBlueprintSubGen = class extends Generator { describe('JHipster client generator with sbs blueprint', () => { before(done => { helpers - .run(path.join(__dirname, '../../generators/client/index.mjs')) + .run(getGenerator('client')) .withOptions({ fromCli: true, build: MAVEN, diff --git a/test/blueprint/scoped-blueprint.spec.js b/test/blueprint/scoped-blueprint.spec.js index d7ff3687ef6e..d3caf74e38bc 100644 --- a/test/blueprint/scoped-blueprint.spec.js +++ b/test/blueprint/scoped-blueprint.spec.js @@ -5,6 +5,7 @@ const helpers = require('yeoman-test'); const fse = require('fs-extra'); const EnvironmentBuilder = require('../../cli/environment-builder'); +const { getTemplatePath } = require('../support/index.cjs'); describe('JHipster application generator with scoped blueprint', () => { describe('generate monolith application with scoped blueprint', () => { @@ -16,7 +17,7 @@ describe('JHipster application generator with scoped blueprint', () => { // Fake the presence of the blueprint in node_modules const fakeBlueprintModuleDir = path.join(dir, 'node_modules/@jhipster/generator-jhipster-scoped-blueprint'); fse.ensureDirSync(fakeBlueprintModuleDir); - fse.copySync(path.join(__dirname, '../../test/templates/fake-blueprint'), fakeBlueprintModuleDir); + fse.copySync(getTemplatePath('fake-blueprint'), fakeBlueprintModuleDir); }) .withOptions({ fromCli: true, diff --git a/test/ci-cd.spec.js b/test/ci-cd.spec.js index d882c9497d12..74df4f310512 100644 --- a/test/ci-cd.spec.js +++ b/test/ci-cd.spec.js @@ -1,8 +1,8 @@ -const path = require('path'); const assert = require('yeoman-assert'); const helpers = require('yeoman-test'); const fse = require('fs-extra'); const { jestExpect: expect } = require('mocha-expect-snapshot'); +const { getTemplatePath, getGenerator } = require('./support/index.cjs'); const expectedFiles = { travis: ['.travis.yml'], @@ -23,9 +23,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/maven-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/maven-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -52,9 +52,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/gradle-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/gradle-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -81,9 +81,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/maven-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/maven-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -118,9 +118,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/maven-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/maven-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -159,9 +159,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/maven-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/maven-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -188,9 +188,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/gradle-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/gradle-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -216,9 +216,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/npm-skip-server'), dir); + fse.copySync(getTemplatePath('ci-cd/npm-skip-server'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -242,9 +242,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/maven-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/maven-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -279,9 +279,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/maven-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/maven-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -316,9 +316,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/maven-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/maven-ngx-npm'), dir); }) .withOptions({ autoconfigureGitlab: true }) .run(); @@ -346,9 +346,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/maven-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/maven-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -372,9 +372,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/gradle-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/gradle-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -402,9 +402,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/maven-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/maven-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -447,9 +447,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/maven-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/maven-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -475,9 +475,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/gradle-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/gradle-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -501,9 +501,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/maven-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/maven-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -526,9 +526,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/gradle-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/gradle-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -551,9 +551,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/maven-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/maven-ngx-npm'), dir); }) .withOptions({ autoconfigureAzure: true }) .run(); @@ -575,9 +575,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/maven-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/maven-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -597,9 +597,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/gradle-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/gradle-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -619,9 +619,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/maven-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/maven-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -662,9 +662,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/gradle-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/gradle-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -698,9 +698,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/maven-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/maven-ngx-npm'), dir); }) .withOptions({ autoconfigureGithub: true }) .run(); @@ -722,9 +722,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/maven-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/maven-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -751,9 +751,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/gradle-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/gradle-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -780,9 +780,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/maven-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/maven-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -805,9 +805,9 @@ describe('JHipster CI-CD Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/ci-cd/index.mjs')) + .create(getGenerator('ci-cd')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/ci-cd/gradle-ngx-npm'), dir); + fse.copySync(getTemplatePath('ci-cd/gradle-ngx-npm'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ diff --git a/test/cli/cli.spec.js b/test/cli/cli.spec.js index 7c719678c262..defcb2cead47 100644 --- a/test/cli/cli.spec.js +++ b/test/cli/cli.spec.js @@ -12,6 +12,7 @@ const { createProgram, buildJHipster } = require('../../cli/program'); const { getJHipsterCli, prepareTempDir, copyFakeBlueprint, copyBlueprint, lnYeoman } = require('../utils/utils'); const { logger } = require('../../cli/utils'); const BaseGenerator = require('../../generators/base/generator-base.cjs'); +const { getTemplatePath } = require('../support/index.cjs'); const jhipsterCli = require.resolve(path.join(__dirname, '..', '..', 'cli', 'cli.js')); @@ -373,7 +374,7 @@ describe('jhipster cli', () => { let stdout; beforeEach(done => { const tmpdir = process.cwd(); - copyBlueprint(path.join(__dirname, '../templates/blueprint-cli'), tmpdir, 'cli'); + copyBlueprint(getTemplatePath('blueprint-cli'), tmpdir, 'cli'); lnYeoman(tmpdir); const forked = fork(jhipsterCli, ['foo', '--blueprints', 'cli'], { stdio: 'pipe', cwd: tmpdir }); forked.on('exit', () => { @@ -394,8 +395,8 @@ describe('jhipster cli', () => { let stdout; beforeEach(done => { const tmpdir = process.cwd(); - copyBlueprint(path.join(__dirname, '../templates/blueprint-cli'), tmpdir, 'cli'); - copyBlueprint(path.join(__dirname, '../templates/blueprint-cli-shared'), tmpdir, 'cli-shared'); + copyBlueprint(getTemplatePath('blueprint-cli'), tmpdir, 'cli'); + copyBlueprint(getTemplatePath('blueprint-cli-shared'), tmpdir, 'cli-shared'); lnYeoman(tmpdir); const forked = fork(jhipsterCli, ['foo', '--blueprints', 'cli'], { stdio: 'pipe', cwd: tmpdir }); forked.on('exit', () => { @@ -417,7 +418,7 @@ describe('jhipster cli', () => { let stdout; beforeEach(done => { const tmpdir = process.cwd(); - copyBlueprint(path.join(__dirname, '../templates/blueprint-cli'), tmpdir, 'cli'); + copyBlueprint(getTemplatePath('blueprint-cli'), tmpdir, 'cli'); lnYeoman(tmpdir); const forked = fork(jhipsterCli, ['foo', '--blueprints', 'cli', '--help'], { stdio: 'pipe' }); forked.on('exit', () => { @@ -439,7 +440,7 @@ describe('jhipster cli', () => { let stdout; beforeEach(done => { const tmpdir = process.cwd(); - copyBlueprint(path.join(__dirname, '../templates/blueprint-cli-shared'), tmpdir, 'cli-shared'); + copyBlueprint(getTemplatePath('blueprint-cli-shared'), tmpdir, 'cli-shared'); lnYeoman(tmpdir); const forked = fork(jhipsterCli, ['bar', '--blueprints', 'cli-shared', '--help'], { stdio: 'pipe', cwd: tmpdir }); forked.on('exit', () => { @@ -509,7 +510,7 @@ describe('jhipster cli', () => { let exitCode; beforeEach(done => { const tmpdir = process.cwd(); - copyBlueprint(path.join(__dirname, '../templates/blueprint-cli'), tmpdir, 'cli'); + copyBlueprint(getTemplatePath('blueprint-cli'), tmpdir, 'cli'); lnYeoman(tmpdir); const forked = fork(jhipsterCli, ['run', 'cli:foo', '--help'], { stdio: 'pipe', cwd: tmpdir }); forked.on('exit', code => { @@ -535,7 +536,7 @@ describe('jhipster cli', () => { let exitCode; beforeEach(done => { const tmpdir = process.cwd(); - copyBlueprint(path.join(__dirname, '../templates/blueprint-cli'), tmpdir, 'cli'); + copyBlueprint(getTemplatePath('blueprint-cli'), tmpdir, 'cli'); lnYeoman(tmpdir); const forked = fork(jhipsterCli, ['run', 'cli:foo', '--foo-bar'], { stdio: 'pipe', cwd: tmpdir }); forked.on('exit', code => { diff --git a/test/cli/environment-builder.spec.js b/test/cli/environment-builder.spec.js index 41035cce7ba4..9ee7510e63e3 100644 --- a/test/cli/environment-builder.spec.js +++ b/test/cli/environment-builder.spec.js @@ -20,11 +20,11 @@ const assert = require('assert'); const expect = require('chai').expect; const fs = require('fs'); -const path = require('path'); const sinon = require('sinon'); const helpers = require('yeoman-test'); const EnvironmentBuilder = require('../../cli/environment-builder'); +const { getTemplatePath } = require('../support/index.cjs'); const { prepareTempDir, revertTempDir, testInTempDir, copyBlueprint, lnYeoman } = require('../utils/utils'); @@ -235,8 +235,8 @@ describe('Environment builder', () => { oldArgv = process.argv; oldCwd = testInTempDir(tmpdir => { lnYeoman(tmpdir); - copyBlueprint(path.join(__dirname, '../templates/blueprint-cli'), tmpdir, 'cli'); - copyBlueprint(path.join(__dirname, '../templates/blueprint-cli-shared'), tmpdir, 'cli-shared'); + copyBlueprint(getTemplatePath('blueprint-cli'), tmpdir, 'cli'); + copyBlueprint(getTemplatePath('blueprint-cli-shared'), tmpdir, 'cli-shared'); }, true); process.argv = ['--blueprints', 'cli,cli-shared']; @@ -273,8 +273,8 @@ describe('Environment builder', () => { oldArgv = process.argv; oldCwd = testInTempDir(tmpdir => { lnYeoman(tmpdir); - copyBlueprint(path.join(__dirname, '../templates/blueprint-cli'), tmpdir, 'cli'); - copyBlueprint(path.join(__dirname, '../templates/blueprint-cli-shared'), tmpdir, 'cli-shared'); + copyBlueprint(getTemplatePath('blueprint-cli'), tmpdir, 'cli'); + copyBlueprint(getTemplatePath('blueprint-cli-shared'), tmpdir, 'cli-shared'); }, true); process.argv = ['--blueprints', 'cli,cli-shared']; diff --git a/test/cli/import-jdl.spec.js b/test/cli/import-jdl.spec.js index 90638d491be5..f2be7616ae89 100644 --- a/test/cli/import-jdl.spec.js +++ b/test/cli/import-jdl.spec.js @@ -6,6 +6,7 @@ const expect = require('chai').expect; const utils = require('../../cli/utils'); const { testInTempDir, revertTempDir } = require('../utils/utils'); +const { getTemplatePath } = require('../support/index.cjs'); let subGenCallParams = { count: 0, @@ -113,7 +114,7 @@ describe('JHipster generator import jdl', () => { const options = { skipInstall: true, noInsight: true, interactive: true }; beforeEach(() => { return testInTempDir(dir => { - fse.copySync(path.join(__dirname, '../templates/import-jdl'), dir); + fse.copySync(getTemplatePath('import-jdl'), dir); fse.removeSync(`${dir}/.yo-rc.json`); return loadImportJdl()(['apps-and-entities-and-deployments.jdl'], options, env); }); @@ -146,7 +147,7 @@ describe('JHipster generator import jdl', () => { const options = { jsonOnly: true, skipInstall: true, databaseType: 'postgresql', baseName: 'jhipster' }; beforeEach(() => { return testInTempDir(dir => { - fse.copySync(path.join(__dirname, '../templates/import-jdl'), dir); + fse.copySync(getTemplatePath('import-jdl'), dir); return loadImportJdl()(['jdl.jdl'], options, env); }); }); @@ -174,7 +175,7 @@ describe('JHipster generator import jdl', () => { const options = { skipDbChangelog: true, databaseType: 'postgresql', baseName: 'jhipster' }; beforeEach(() => { return testInTempDir(dir => { - fse.copySync(path.join(__dirname, '../templates/import-jdl'), dir); + fse.copySync(getTemplatePath('import-jdl'), dir); return loadImportJdl()(['jdl.jdl'], options, env); }); }); @@ -206,7 +207,7 @@ describe('JHipster generator import jdl', () => { const options = { skipInstall: true, databaseType: 'postgresql', baseName: 'jhipster' }; beforeEach(() => { return testInTempDir(dir => { - fse.copySync(path.join(__dirname, '../templates/import-jdl'), dir); + fse.copySync(getTemplatePath('import-jdl'), dir); return loadImportJdl()(['jdl.jdl'], options, env); }); }); @@ -231,7 +232,7 @@ describe('JHipster generator import jdl', () => { const options = { skipInstall: true, databaseType: 'postgresql', baseName: 'jhipster' }; beforeEach(() => { return testInTempDir(dir => { - fse.copySync(path.join(__dirname, '../templates/import-jdl'), dir); + fse.copySync(getTemplatePath('import-jdl'), dir); return loadImportJdl()(['jdl.jdl', 'jdl2.jdl', 'jdl-ambiguous.jdl'], options, env); }); }); @@ -270,7 +271,7 @@ describe('JHipster generator import jdl', () => { const options = { skipInstall: true }; beforeEach(() => { return testInTempDir(dir => { - fse.copySync(path.join(__dirname, '../templates/import-jdl'), dir); + fse.copySync(getTemplatePath('import-jdl'), dir); return loadImportJdl()(['search.jdl'], { ...options, interactive: false }, env); }); }); @@ -295,7 +296,7 @@ describe('JHipster generator import jdl', () => { const options = { skipInstall: true, noInsight: true, skipGit: false }; beforeEach(() => { return testInTempDir(dir => { - fse.copySync(path.join(__dirname, '../templates/import-jdl'), dir); + fse.copySync(getTemplatePath('import-jdl'), dir); fse.removeSync(`${dir}/.yo-rc.json`); return loadImportJdl()(['single-app-and-entities.jdl'], { ...options, fork: true }, env); }); @@ -332,7 +333,7 @@ describe('JHipster generator import jdl', () => { const options = { skipInstall: true, noInsight: true, skipGit: false, creationTimestamp: '2019-01-01' }; beforeEach(() => { return testInTempDir(dir => { - fse.copySync(path.join(__dirname, '../templates/import-jdl'), dir); + fse.copySync(getTemplatePath('import-jdl'), dir); fse.removeSync(`${dir}/.yo-rc.json`); return loadImportJdl()(['single-app-and-entities.jdl'], options, env); }); @@ -441,7 +442,7 @@ describe('JHipster generator import jdl', () => { const options = { skipInstall: true, noInsight: true, interactive: false, skipGit: false }; beforeEach(() => { return testInTempDir(dir => { - fse.copySync(path.join(__dirname, '../templates/import-jdl'), dir); + fse.copySync(getTemplatePath('import-jdl'), dir); fse.removeSync(`${dir}/.yo-rc.json`); return loadImportJdl()(['single-app-only.jdl'], { ...options, fork: true }, env); }); @@ -470,7 +471,7 @@ describe('JHipster generator import jdl', () => { const options = { skipInstall: true, noInsight: true, skipGit: false }; beforeEach(() => { return testInTempDir(dir => { - fse.copySync(path.join(__dirname, '../templates/import-jdl'), dir); + fse.copySync(getTemplatePath('import-jdl'), dir); fse.removeSync(`${dir}/.yo-rc.json`); return loadImportJdl()(['single-app-only.jdl'], { ...options, interactive: false }, env); }); @@ -500,7 +501,7 @@ describe('JHipster generator import jdl', () => { const options = { skipInstall: true, noInsight: true, interactive: false, skipGit: false }; beforeEach(() => { return testInTempDir(dir => { - fse.copySync(path.join(__dirname, '../templates/import-jdl'), dir); + fse.copySync(getTemplatePath('import-jdl'), dir); fse.removeSync(`${dir}/.yo-rc.json`); return loadImportJdl()(['apps-and-entities.jdl'], options, env); }); @@ -544,7 +545,7 @@ describe('JHipster generator import jdl', () => { const options = { skipInstall: true, noInsight: true, interactive: false, skipGit: false }; beforeEach(() => { return testInTempDir(dir => { - fse.copySync(path.join(__dirname, '../templates/import-jdl'), dir); + fse.copySync(getTemplatePath('import-jdl'), dir); fse.removeSync(`${dir}/.yo-rc.json`); return loadImportJdl()(['apps-with-and-without-entities.jdl'], options, env); }); @@ -578,7 +579,7 @@ describe('JHipster generator import jdl', () => { const options = { skipInstall: true, ignoreApplication: true, fork: true, skipGit: false }; beforeEach(() => { return testInTempDir(dir => { - fse.copySync(path.join(__dirname, '../templates/import-jdl'), dir); + fse.copySync(getTemplatePath('import-jdl'), dir); fse.removeSync(`${dir}/.yo-rc.json`); return loadImportJdl()(['apps-and-entities.jdl'], options, env); }); @@ -614,7 +615,7 @@ describe('JHipster generator import jdl', () => { const options = { skipInstall: true, interactive: false, skipGit: false }; beforeEach(() => { return testInTempDir(dir => { - fse.copySync(path.join(__dirname, '../templates/import-jdl'), dir); + fse.copySync(getTemplatePath('import-jdl'), dir); return loadImportJdl()(['deployments.jdl'], options, env); }); }); @@ -647,7 +648,7 @@ describe('JHipster generator import jdl', () => { const options = { skipInstall: true, noInsight: true, interactive: false, skipGit: false }; beforeEach(() => { return testInTempDir(dir => { - fse.copySync(path.join(__dirname, '../templates/import-jdl'), dir); + fse.copySync(getTemplatePath('import-jdl'), dir); fse.removeSync(`${dir}/.yo-rc.json`); return loadImportJdl()(['apps-and-entities-and-deployments.jdl'], options, env); }); @@ -681,7 +682,7 @@ describe('JHipster generator import jdl', () => { const options = { skipInstall: true }; beforeEach(() => { return testInTempDir(dir => { - fse.copySync(path.join(__dirname, '../templates/import-jdl'), dir); + fse.copySync(getTemplatePath('import-jdl'), dir); fse.removeSync(`${dir}/.yo-rc.json`); return loadImportJdl()(['apps-and-entities-and-deployments.jdl'], options, env); }); @@ -716,7 +717,7 @@ describe('JHipster generator import jdl', () => { const options = { skipInstall: true, noInsight: true, ignoreDeployments: true, interactive: false, skipGit: false }; beforeEach(() => { return testInTempDir(dir => { - fse.copySync(path.join(__dirname, '../templates/import-jdl'), dir); + fse.copySync(getTemplatePath('import-jdl'), dir); fse.removeSync(`${dir}/.yo-rc.json`); return loadImportJdl()(['apps-and-entities-and-deployments.jdl'], options, env); }); @@ -742,8 +743,8 @@ describe('JHipster generator import jdl', () => { describe('imports a JDL entity model with relations for mongodb', () => { beforeEach(() => { return testInTempDir(dir => { - fse.copySync(path.join(__dirname, '../templates/documents-with-relations'), dir); - fse.copySync(path.join(__dirname, '../templates/mongodb-with-relations'), dir); + fse.copySync(getTemplatePath('documents-with-relations'), dir); + fse.copySync(getTemplatePath('mongodb-with-relations'), dir); return loadImportJdl()(['orders-model.jdl'], {}, env); }); }); @@ -756,8 +757,8 @@ describe('JHipster generator import jdl', () => { describe('imports a JDL entity model with relations for couchbase', () => { beforeEach(() => { return testInTempDir(dir => { - fse.copySync(path.join(__dirname, '../templates/documents-with-relations'), dir); - fse.copySync(path.join(__dirname, '../templates/couchbase-with-relations'), dir); + fse.copySync(getTemplatePath('documents-with-relations'), dir); + fse.copySync(getTemplatePath('couchbase-with-relations'), dir); return loadImportJdl()(['orders-model.jdl'], {}, env); }); }); diff --git a/test/docker-compose.spec.js b/test/docker-compose.spec.js index d2c14def9860..3e2f521d450b 100644 --- a/test/docker-compose.spec.js +++ b/test/docker-compose.spec.js @@ -4,7 +4,8 @@ const { jestExpect: expect } = require('mocha-expect-snapshot'); const monitoringTypes = require('../jdl/jhipster/monitoring-types'); const { MICROSERVICE, MONOLITH } = require('../jdl/jhipster/application-types'); const { PROMETHEUS } = require('../jdl/jhipster/monitoring-types'); -const { createMockedConfig } = require('./support/mock-config.cjs'); +const createMockedConfig = require('./support/mock-config.cjs'); +const { getGenerator } = require('./support/index.cjs'); const NO_MONITORING = monitoringTypes.NO; @@ -19,7 +20,7 @@ describe('JHipster Docker Compose Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/docker-compose')) + .create(getGenerator('docker-compose')) .doInDir(dir => { createMockedConfig('01-gateway', dir); }) @@ -53,7 +54,7 @@ describe('JHipster Docker Compose Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/docker-compose')) + .create(getGenerator('docker-compose')) .doInDir(dir => { createMockedConfig('02-mysql', dir); }) @@ -87,7 +88,7 @@ describe('JHipster Docker Compose Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/docker-compose')) + .create(getGenerator('docker-compose')) .doInDir(dir => { createMockedConfig('02-mysql', dir); }) @@ -116,7 +117,7 @@ describe('JHipster Docker Compose Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/docker-compose')) + .create(getGenerator('docker-compose')) .doInDir(dir => { createMockedConfig('01-gateway', dir); createMockedConfig('02-mysql', dir); @@ -151,7 +152,7 @@ describe('JHipster Docker Compose Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/docker-compose')) + .create(getGenerator('docker-compose')) .doInDir(dir => { createMockedConfig('01-gateway', dir); createMockedConfig('02-mysql', dir); @@ -188,7 +189,7 @@ describe('JHipster Docker Compose Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/docker-compose')) + .create(getGenerator('docker-compose')) .doInDir(dir => { createMockedConfig('01-gateway', dir); createMockedConfig('02-mysql', dir); @@ -225,7 +226,7 @@ describe('JHipster Docker Compose Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/docker-compose')) + .create(getGenerator('docker-compose')) .doInDir(dir => { createMockedConfig('01-gateway', dir); createMockedConfig('02-mysql', dir); @@ -263,7 +264,7 @@ describe('JHipster Docker Compose Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/docker-compose')) + .create(getGenerator('docker-compose')) .doInDir(dir => { createMockedConfig('01-gateway', dir); createMockedConfig('02-mysql', dir); @@ -300,7 +301,7 @@ describe('JHipster Docker Compose Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/docker-compose')) + .create(getGenerator('docker-compose')) .doInDir(dir => { createMockedConfig('01-gateway', dir); createMockedConfig('02-mysql', dir); @@ -336,7 +337,7 @@ describe('JHipster Docker Compose Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/docker-compose')) + .create(getGenerator('docker-compose')) .doInDir(dir => { createMockedConfig('01-gateway', dir); createMockedConfig('05-cassandra', dir); @@ -370,7 +371,7 @@ describe('JHipster Docker Compose Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/docker-compose')) + .create(getGenerator('docker-compose')) .doInDir(dir => { createMockedConfig('08-monolith', dir); }) @@ -400,7 +401,7 @@ describe('JHipster Docker Compose Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/docker-compose')) + .create(getGenerator('docker-compose')) .doInDir(dir => { createMockedConfig('01-gateway', dir); createMockedConfig('02-mysql', dir); @@ -437,7 +438,7 @@ describe('JHipster Docker Compose Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/docker-compose')) + .create(getGenerator('docker-compose')) .doInDir(dir => { createMockedConfig('01-gateway', dir); createMockedConfig('10-couchbase', dir); @@ -471,7 +472,7 @@ describe('JHipster Docker Compose Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/docker-compose')) + .create(getGenerator('docker-compose')) .doInDir(dir => { createMockedConfig('12-oracle', dir); }) diff --git a/test/entity/database-changelog.spec.js b/test/entity/database-changelog.spec.mts similarity index 75% rename from test/entity/database-changelog.spec.js rename to test/entity/database-changelog.spec.mts index 1036e6e3e18a..2d736a07568a 100644 --- a/test/entity/database-changelog.spec.js +++ b/test/entity/database-changelog.spec.mts @@ -1,9 +1,10 @@ -const path = require('path'); -const fse = require('fs-extra'); -const helpers = require('yeoman-test'); +import path from 'path'; +import fse from 'fs-extra'; +import helpers from 'yeoman-test'; -const { SERVER_MAIN_RES_DIR } = require('../../generators/generator-constants.cjs'); -const { createMockedConfig } = require('../support/mock-config.cjs'); +import { SERVER_MAIN_RES_DIR } from '../../generators/generator-constants.mjs'; +import createMockedConfig from '../support/mock-config.cjs'; +import { getEntityTemplatePath, getGenerator } from '../support/index.mjs'; describe('jhipster:entity database changelogs', () => { context('when regenerating the entity', () => { @@ -11,10 +12,10 @@ describe('jhipster:entity database changelogs', () => { let runResult; before(() => helpers - .create(require.resolve('../../generators/entity')) + .create(getGenerator('entity')) .doInDir(dir => { createMockedConfig('05-cassandra', dir, { appDir: '' }); - fse.copySync(path.join(__dirname, '../templates/.jhipster/Simple.json'), path.join(dir, '.jhipster/Foo.json')); + fse.copySync(getEntityTemplatePath('Simple'), path.join(dir, '.jhipster/Foo.json')); }) .withArguments(['Foo']) .withOptions({ regenerate: true, force: true }) @@ -34,11 +35,11 @@ describe('jhipster:entity database changelogs', () => { let runResult; before(() => helpers - .create(require.resolve('../../generators/entity')) + .create(getGenerator('entity')) .doInDir(dir => { createMockedConfig('01-gateway', dir, { appDir: '' }); const jsonFile = path.join(dir, '.jhipster/Foo.json'); - fse.copySync(path.join(__dirname, '../templates/.jhipster/Simple.json'), jsonFile); + fse.copySync(getEntityTemplatePath('Simple'), jsonFile); fse.writeJsonSync(jsonFile, { ...fse.readJsonSync(jsonFile), microservicePath: 'microservice1', diff --git a/test/entity/single-entity.spec.js b/test/entity/single-entity.spec.js index e931c2e1ad96..1642236201e4 100644 --- a/test/entity/single-entity.spec.js +++ b/test/entity/single-entity.spec.js @@ -3,7 +3,8 @@ const fse = require('fs-extra'); const helpers = require('yeoman-test'); const { SERVER_MAIN_RES_DIR, SERVER_MAIN_SRC_DIR, CLIENT_MAIN_SRC_DIR } = require('../../generators/generator-constants.cjs'); -const { createMockedConfig } = require('../support/mock-config.cjs'); +const createMockedConfig = require('../support/mock-config.cjs'); +const { getTemplatePath, getEntityTemplatePath, getGenerator } = require('../support/index.cjs'); const DEFAULT_TEST_OPTIONS = { fromCli: true, skipInstall: true, skipChecks: true, skipPrettier: true }; @@ -11,21 +12,17 @@ describe('jhipster:entity --single-entity', () => { context('when regenerating', () => { describe('with default configuration', () => { let runResult; - before(() => - helpers - .create(require.resolve('../../generators/entity')) + before(async () => { + runResult = await helpers + .run(getGenerator('entity')) .doInDir(dir => { - fse.copySync(path.join(__dirname, '../templates/default'), dir); - fse.copySync(path.join(__dirname, '../templates/.jhipster/Simple.json'), path.join(dir, '.jhipster/Foo.json')); - fse.copySync(path.join(__dirname, '../templates/.jhipster/Simple2.json'), path.join(dir, '.jhipster/Bar.json')); + fse.copySync(getTemplatePath('default'), dir); + fse.copySync(getEntityTemplatePath('Simple'), path.join(dir, '.jhipster/Foo.json')); + fse.copySync(getEntityTemplatePath('Simple2'), path.join(dir, '.jhipster/Bar.json')); }) .withArguments(['Foo']) - .withOptions({ ...DEFAULT_TEST_OPTIONS, regenerate: true, force: true, singleEntity: true }) - .run() - .then(result => { - runResult = result; - }) - ); + .withOptions({ ...DEFAULT_TEST_OPTIONS, regenerate: true, force: true, singleEntity: true }); + }); after(() => runResult.cleanup()); @@ -50,11 +47,11 @@ describe('jhipster:entity --single-entity', () => { let runResult; before(() => helpers - .create(require.resolve('../../generators/entity')) + .create(getGenerator('entity')) .doInDir(dir => { createMockedConfig('05-cassandra', dir, { appDir: '' }); - fse.copySync(path.join(__dirname, '../templates/.jhipster/Simple.json'), path.join(dir, '.jhipster/Foo.json')); - fse.copySync(path.join(__dirname, '../templates/.jhipster/Simple2.json'), path.join(dir, '.jhipster/Bar.json')); + fse.copySync(getEntityTemplatePath('Simple'), path.join(dir, '.jhipster/Foo.json')); + fse.copySync(getEntityTemplatePath('Simple2'), path.join(dir, '.jhipster/Bar.json')); }) .withArguments(['Foo']) .withOptions({ ...DEFAULT_TEST_OPTIONS, regenerate: true, force: true, singleEntity: true }) diff --git a/test/export-jdl.spec.js b/test/export-jdl.spec.js index abdf7dc74684..21a7128133c6 100644 --- a/test/export-jdl.spec.js +++ b/test/export-jdl.spec.js @@ -1,13 +1,13 @@ -const path = require('path'); const assert = require('yeoman-assert'); const helpers = require('yeoman-test'); const fse = require('fs-extra'); +const { getTemplatePath, getGenerator } = require('./support/index.cjs'); describe('JHipster generator export jdl', () => { describe('exports entities to a JDL file without argument', () => { before(async () => { - await helpers.run(require.resolve('../generators/export-jdl/index.mjs')).inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/export-jdl'), dir); + await helpers.run(getGenerator('export-jdl')).inTmpDir(dir => { + fse.copySync(getTemplatePath('export-jdl'), dir); }); }); @@ -19,9 +19,9 @@ describe('JHipster generator export jdl', () => { describe('exports entities to a JDL file with file argument', () => { before(async () => { await helpers - .run(require.resolve('../generators/export-jdl/index.mjs')) + .run(getGenerator('export-jdl')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/export-jdl'), dir); + fse.copySync(getTemplatePath('export-jdl'), dir); }) .withArguments('custom-app.jdl'); }); diff --git a/test/heroku.spec.js b/test/heroku.spec.js index 6b51b5af32e5..90b25291b31a 100644 --- a/test/heroku.spec.js +++ b/test/heroku.spec.js @@ -1,4 +1,3 @@ -const path = require('path'); const assert = require('yeoman-assert'); const helpers = require('yeoman-test'); const fse = require('fs-extra'); @@ -7,6 +6,7 @@ const ChildProcess = require('child_process'); const { jestExpect: expect } = require('mocha-expect-snapshot'); const constants = require('../generators/generator-constants.cjs'); +const { getTemplatePath, getGenerator } = require('./support/index.cjs'); const expectedFiles = { monolith: [ @@ -45,9 +45,9 @@ describe('JHipster Heroku Sub Generator', () => { }, }); runResult = await helpers - .create(require.resolve('../generators/heroku')) + .create(getGenerator('heroku')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/default-microservice/'), dir); + fse.copySync(getTemplatePath('default-microservice/'), dir); }) .withOptions({ skipBuild: true, reproducibleTests: true }) .withPrompts({ @@ -88,9 +88,9 @@ describe('JHipster Heroku Sub Generator', () => { stub.withArgs(`heroku git:remote --app ${autogeneratedAppName}`).yields(false, `https://${autogeneratedAppName}.herokuapp.com`); stub.withArgs(`heroku addons:create jawsdb:kitefin --as DATABASE --app ${autogeneratedAppName}`).yields(false, '', ''); runResult = await helpers - .create(require.resolve('../generators/heroku')) + .create(getGenerator('heroku')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/default'), dir); + fse.copySync(getTemplatePath('default'), dir); }) .withOptions({ skipBuild: true, reproducibleTests: true }) .withPrompts({ @@ -123,9 +123,9 @@ describe('JHipster Heroku Sub Generator', () => { stub.withArgs(`heroku buildpacks:add heroku/java --app ${herokuAppName}`).yields(false, '', ''); stub.withArgs('git push heroku HEAD:master').yields(false, '', ''); runResult = await helpers - .create(require.resolve('../generators/heroku')) + .create(getGenerator('heroku')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/default'), dir); + fse.copySync(getTemplatePath('default'), dir); }) .withPrompts({ herokuAppName, @@ -151,9 +151,9 @@ describe('JHipster Heroku Sub Generator', () => { stub.withArgs(`heroku create ${herokuAppName}`).yields(false, '', ''); stub.withArgs(`heroku addons:create jawsdb:kitefin --as DATABASE --app ${herokuAppName}`).yields(false, '', ''); runResult = await helpers - .create(require.resolve('../generators/heroku')) + .create(getGenerator('heroku')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/default/'), dir); + fse.copySync(getTemplatePath('default/'), dir); }) .withOptions({ skipBuild: true, reproducibleTests: true }) .withPrompts({ @@ -182,9 +182,9 @@ describe('JHipster Heroku Sub Generator', () => { stub.withArgs(`heroku create ${herokuAppName} --region eu`).yields(false, '', ''); stub.withArgs(`heroku addons:create jawsdb:kitefin --as DATABASE --app ${herokuAppName}`).yields(false, '', ''); runResult = await helpers - .create(require.resolve('../generators/heroku')) + .create(getGenerator('heroku')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/default/'), dir); + fse.copySync(getTemplatePath('default/'), dir); }) .withOptions({ skipBuild: true, reproducibleTests: true }) .withPrompts({ @@ -210,9 +210,9 @@ describe('JHipster Heroku Sub Generator', () => { stub.withArgs(`heroku create ${herokuAppName} --region eu`).yields(false, '', ''); stub.withArgs(`heroku addons:create heroku-postgresql --as DATABASE --app ${herokuAppName}`).yields(false, '', ''); runResult = await helpers - .create(require.resolve('../generators/heroku')) + .create(getGenerator('heroku')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/default-psql/'), dir); + fse.copySync(getTemplatePath('default-psql/'), dir); }) .withOptions({ skipBuild: true, reproducibleTests: true }) .withPrompts({ @@ -243,9 +243,9 @@ describe('JHipster Heroku Sub Generator', () => { .yields(false, `{"app":{"name":"${existingHerokuAppName}"}, "dynos":[]}`); stub.withArgs(`heroku addons:create jawsdb:kitefin --as DATABASE --app ${existingHerokuAppName}`).yields(false, '', ''); runResult = await helpers - .create(require.resolve('../generators/heroku')) + .create(getGenerator('heroku')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/heroku/'), dir); + fse.copySync(getTemplatePath('heroku/'), dir); }) .withOptions({ skipBuild: true, reproducibleTests: true }) .run(); @@ -267,9 +267,9 @@ describe('JHipster Heroku Sub Generator', () => { stub.withArgs(`heroku addons:create bonsai --as BONSAI --app ${herokuAppName}`).yields(false, '', ''); runResult = await helpers - .create(require.resolve('../generators/heroku')) + .create(getGenerator('heroku')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/default-elasticsearch/'), dir); + fse.copySync(getTemplatePath('default-elasticsearch/'), dir); }) .withOptions({ skipBuild: true, reproducibleTests: true }) .withPrompts({ diff --git a/test/knative.spec.js b/test/knative.spec.js index 3afd5f4a0f8b..87cc50e1c2d3 100644 --- a/test/knative.spec.js +++ b/test/knative.spec.js @@ -2,7 +2,8 @@ const assert = require('yeoman-assert'); const helpers = require('yeoman-test'); const { jestExpect: expect } = require('mocha-expect-snapshot'); -const { createMockedConfig } = require('./support/mock-config.cjs'); +const createMockedConfig = require('./support/mock-config.cjs'); +const { getGenerator } = require('./support/index.cjs'); const expectedFiles = { eurekaregistry: ['./registry-knative/jhipster-registry.yml', './registry-knative/application-configmap.yml'], @@ -103,7 +104,7 @@ describe('JHipster Knative Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-knative')) + .create(getGenerator('kubernetes-knative')) .doInDir(dir => { createMockedConfig('01-gateway', dir); }) @@ -143,7 +144,7 @@ describe('JHipster Knative Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-knative')) + .create(getGenerator('kubernetes-knative')) .doInDir(dir => { createMockedConfig('01-gateway', dir); createMockedConfig('02-mysql', dir); @@ -184,7 +185,7 @@ describe('JHipster Knative Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-knative')) + .create(getGenerator('kubernetes-knative')) .doInDir(dir => { createMockedConfig('02-mysql', dir); }) @@ -224,7 +225,7 @@ describe('JHipster Knative Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-knative')) + .create(getGenerator('kubernetes-knative')) .doInDir(dir => { createMockedConfig('01-gateway', dir); }) @@ -262,7 +263,7 @@ describe('JHipster Knative Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-knative')) + .create(getGenerator('kubernetes-knative')) .doInDir(dir => { createMockedConfig('02-mysql', dir); createMockedConfig('03-psql', dir); @@ -306,7 +307,7 @@ describe('JHipster Knative Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-knative')) + .create(getGenerator('kubernetes-knative')) .doInDir(dir => { createMockedConfig('01-gateway', dir); createMockedConfig('02-mysql', dir); @@ -363,7 +364,7 @@ describe('JHipster Knative Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-knative')) + .create(getGenerator('kubernetes-knative')) .doInDir(dir => { createMockedConfig('02-mysql', dir); }) @@ -405,7 +406,7 @@ describe('JHipster Knative Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-knative')) + .create(getGenerator('kubernetes-knative')) .doInDir(dir => { createMockedConfig('01-gateway', dir); }) @@ -447,7 +448,7 @@ describe('JHipster Knative Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-knative')) + .create(getGenerator('kubernetes-knative')) .doInDir(dir => { createMockedConfig('01-gateway', dir); }) @@ -487,7 +488,7 @@ describe('JHipster Knative Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-knative')) + .create(getGenerator('kubernetes-knative')) .doInDir(dir => { createMockedConfig('01-gateway', dir); createMockedConfig('02-mysql', dir); @@ -530,7 +531,7 @@ describe('JHipster Knative Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-knative')) + .create(getGenerator('kubernetes-knative')) .doInDir(dir => { createMockedConfig('02-mysql', dir); }) @@ -572,7 +573,7 @@ describe('JHipster Knative Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-knative')) + .create(getGenerator('kubernetes-knative')) .doInDir(dir => { createMockedConfig('01-gateway', dir); }) @@ -617,7 +618,7 @@ describe('JHipster Knative Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-knative')) + .create(getGenerator('kubernetes-knative')) .doInDir(dir => { createMockedConfig('02-mysql', dir); createMockedConfig('03-psql', dir); @@ -665,7 +666,7 @@ describe('JHipster Knative Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-knative')) + .create(getGenerator('kubernetes-knative')) .doInDir(dir => { createMockedConfig('01-gateway', dir); createMockedConfig('02-mysql', dir); @@ -725,7 +726,7 @@ describe('JHipster Knative Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-knative')) + .create(getGenerator('kubernetes-knative')) .doInDir(dir => { createMockedConfig('02-mysql', dir); }) @@ -770,7 +771,7 @@ describe('JHipster Knative Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-knative')) + .create(getGenerator('kubernetes-knative')) .doInDir(dir => { createMockedConfig('01-gateway', dir); }) diff --git a/test/kubernetes.helm.spec.js b/test/kubernetes.helm.spec.js index 0ce5185a50a8..a8f7ff425ec3 100644 --- a/test/kubernetes.helm.spec.js +++ b/test/kubernetes.helm.spec.js @@ -2,7 +2,8 @@ const assert = require('yeoman-assert'); const helpers = require('yeoman-test'); const { jestExpect: expect } = require('mocha-expect-snapshot'); -const { createMockedConfig } = require('./support/mock-config.cjs'); +const createMockedConfig = require('./support/mock-config.cjs'); +const { getGenerator } = require('./support/index.cjs'); const expectedFiles = { csvcfiles: ['./csvc-helm/Chart.yaml', './csvc-helm/requirements.yaml', './csvc-helm/values.yaml', './csvc-helm/templates/_helpers.tpl'], @@ -77,7 +78,7 @@ describe('JHipster Kubernetes Helm Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-helm')) + .create(getGenerator('kubernetes-helm')) .doInDir(dir => { createMockedConfig('01-gateway', dir); }) @@ -116,7 +117,7 @@ describe('JHipster Kubernetes Helm Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-helm')) + .create(getGenerator('kubernetes-helm')) .doInDir(dir => { createMockedConfig('01-gateway', dir); createMockedConfig('02-mysql', dir); @@ -158,7 +159,7 @@ describe('JHipster Kubernetes Helm Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-helm')) + .create(getGenerator('kubernetes-helm')) .doInDir(dir => { createMockedConfig('02-mysql', dir); }) @@ -199,7 +200,7 @@ describe('JHipster Kubernetes Helm Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-helm')) + .create(getGenerator('kubernetes-helm')) .doInDir(dir => { createMockedConfig('01-gateway', dir); }) @@ -245,7 +246,7 @@ describe('JHipster Kubernetes Helm Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-helm')) + .create(getGenerator('kubernetes-helm')) .doInDir(dir => { createMockedConfig('02-mysql', dir); createMockedConfig('03-psql', dir); @@ -292,7 +293,7 @@ describe('JHipster Kubernetes Helm Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-helm')) + .create(getGenerator('kubernetes-helm')) .doInDir(dir => { createMockedConfig('01-gateway', dir); createMockedConfig('02-mysql', dir); @@ -351,7 +352,7 @@ describe('JHipster Kubernetes Helm Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-helm')) + .create(getGenerator('kubernetes-helm')) .doInDir(dir => { createMockedConfig('08-monolith', dir); }) @@ -388,7 +389,7 @@ describe('JHipster Kubernetes Helm Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-helm')) + .create(getGenerator('kubernetes-helm')) .doInDir(dir => { createMockedConfig('09-kafka', dir); }) @@ -424,7 +425,7 @@ describe('JHipster Kubernetes Helm Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-helm')) + .create(getGenerator('kubernetes-helm')) .doInDir(dir => { createMockedConfig('02-mysql', dir); }) @@ -468,7 +469,7 @@ describe('JHipster Kubernetes Helm Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes-helm')) + .create(getGenerator('kubernetes-helm')) .doInDir(dir => { createMockedConfig('01-gateway', dir); }) diff --git a/test/kubernetes.spec.js b/test/kubernetes.spec.js index a8c4c2921075..6ba5742f0071 100644 --- a/test/kubernetes.spec.js +++ b/test/kubernetes.spec.js @@ -2,7 +2,8 @@ const assert = require('yeoman-assert'); const helpers = require('yeoman-test'); const { jestExpect: expect } = require('mocha-expect-snapshot'); -const { createMockedConfig } = require('./support/mock-config.cjs'); +const createMockedConfig = require('./support/mock-config.cjs'); +const { getGenerator } = require('./support/index.cjs'); const expectedFiles = { eurekaregistry: ['./registry-k8s/jhipster-registry.yml', './registry-k8s/application-configmap.yml'], @@ -47,7 +48,7 @@ describe('JHipster Kubernetes Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes')) + .create(getGenerator('kubernetes')) .doInDir(dir => { createMockedConfig('01-gateway', dir); }) @@ -89,7 +90,7 @@ describe('JHipster Kubernetes Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes')) + .create(getGenerator('kubernetes')) .doInDir(dir => { createMockedConfig('01-gateway', dir); createMockedConfig('02-mysql', dir); @@ -131,7 +132,7 @@ describe('JHipster Kubernetes Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes')) + .create(getGenerator('kubernetes')) .doInDir(dir => { createMockedConfig('02-mysql', dir); }) @@ -172,7 +173,7 @@ describe('JHipster Kubernetes Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes')) + .create(getGenerator('kubernetes')) .doInDir(dir => { createMockedConfig('01-gateway', dir); }) @@ -210,7 +211,7 @@ describe('JHipster Kubernetes Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes')) + .create(getGenerator('kubernetes')) .doInDir(dir => { createMockedConfig('02-mysql', dir); createMockedConfig('03-psql', dir); @@ -255,7 +256,7 @@ describe('JHipster Kubernetes Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes')) + .create(getGenerator('kubernetes')) .doInDir(dir => { createMockedConfig('01-gateway', dir); createMockedConfig('02-mysql', dir); @@ -313,7 +314,7 @@ describe('JHipster Kubernetes Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes')) + .create(getGenerator('kubernetes')) .doInDir(dir => { createMockedConfig('08-monolith', dir); }) @@ -351,7 +352,7 @@ describe('JHipster Kubernetes Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes')) + .create(getGenerator('kubernetes')) .doInDir(dir => { createMockedConfig('09-kafka', dir); }) @@ -389,7 +390,7 @@ describe('JHipster Kubernetes Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes')) + .create(getGenerator('kubernetes')) .doInDir(dir => { createMockedConfig('02-mysql', dir); }) @@ -432,7 +433,7 @@ describe('JHipster Kubernetes Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes')) + .create(getGenerator('kubernetes')) .doInDir(dir => { createMockedConfig('01-gateway', dir); }) @@ -473,7 +474,7 @@ describe('JHipster Kubernetes Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/kubernetes')) + .create(getGenerator('kubernetes')) .doInDir(dir => { createMockedConfig('01-gateway', dir); createMockedConfig('02-mysql', dir); diff --git a/test/load.spec.js b/test/load.spec.js deleted file mode 100644 index f0bae04caebb..000000000000 --- a/test/load.spec.js +++ /dev/null @@ -1,8 +0,0 @@ -const assert = require('assert'); - -describe('JHipster generator', () => { - it('can be imported without blowing up', () => { - const app = require('../generators/app/index.cjs'); // eslint-disable-line global-require - assert(app !== undefined); - }); -}); diff --git a/test/needle-api/needle-client-angular.spec.js b/test/needle-api/needle-client-angular.spec.js index 491390889812..ab85db5c2291 100644 --- a/test/needle-api/needle-client-angular.spec.js +++ b/test/needle-api/needle-client-angular.spec.js @@ -1,6 +1,6 @@ -const path = require('path'); const assert = require('yeoman-assert'); const helpers = require('yeoman-test'); +const { getGenerator } = require('../support/index.cjs'); const ClientGenerator = require('../../generators/client/index.cjs'); const constants = require('../../generators/generator-constants.cjs'); @@ -53,7 +53,7 @@ describe('needle API Angular: JHipster client generator with blueprint', () => { let runResult; before(async () => { - runContext = helpers.create(path.join(__dirname, '../../generators/client/index.mjs')); + runContext = helpers.create(getGenerator('client')); runResult = await runContext .withOptions({ fromCli: true, diff --git a/test/needle-api/needle-client-i18n.spec.mjs b/test/needle-api/needle-client-i18n.spec.mts similarity index 88% rename from test/needle-api/needle-client-i18n.spec.mjs rename to test/needle-api/needle-client-i18n.spec.mts index 079d8a3d7d73..f1016451dafc 100644 --- a/test/needle-api/needle-client-i18n.spec.mjs +++ b/test/needle-api/needle-client-i18n.spec.mts @@ -1,21 +1,21 @@ -import path, { dirname } from 'path'; import assert from 'yeoman-assert'; import helpers from 'yeoman-test'; import fse from 'fs-extra'; -import { fileURLToPath } from 'url'; import LanguagesGenerator from '../../generators/languages/index.mjs'; import constants from '../../generators/generator-constants.cjs'; +import { getGenerator, getTemplatePath } from '../support/index.mjs'; const ANGULAR = constants.SUPPORTED_CLIENT_FRAMEWORKS.ANGULAR; const CLIENT_MAIN_SRC_DIR = constants.CLIENT_MAIN_SRC_DIR; -const __filename = fileURLToPath(import.meta.url); -const __dirname = dirname(__filename); +const generatorPath = getGenerator('languages'); -const generatorPath = path.join(__dirname, '../../generators/languages/index.mjs'); - -const mockBlueprintSubGen = class extends LanguagesGenerator { +/** + * @class + * @extends {LanguagesGenerator} + */ +class mockBlueprintSubGen extends LanguagesGenerator { constructor(args, opts, features) { super(args, opts, features); @@ -45,14 +45,14 @@ const mockBlueprintSubGen = class extends LanguagesGenerator { }; return { ...customPhaseSteps }; } -}; +} describe('needle API i18n: JHipster language generator with blueprint', () => { before(async () => { await helpers .run(generatorPath) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, '../../test/templates/ngx-blueprint'), dir); + fse.copySync(getTemplatePath('ngx-blueprint'), dir); }) .withOptions({ fromCli: true, diff --git a/test/needle-api/needle-client-react.spec.js b/test/needle-api/needle-client-react.spec.js index 400df09bc8f9..4e9c56ea9d34 100644 --- a/test/needle-api/needle-client-react.spec.js +++ b/test/needle-api/needle-client-react.spec.js @@ -1,8 +1,8 @@ -const path = require('path'); const assert = require('yeoman-assert'); const helpers = require('yeoman-test'); const ClientGenerator = require('../../generators/client/index.cjs'); const constants = require('../../generators/generator-constants.cjs'); +const { getGenerator } = require('../support/index.cjs'); const REACT = constants.SUPPORTED_CLIENT_FRAMEWORKS.REACT; const CLIENT_MAIN_SRC_DIR = constants.CLIENT_MAIN_SRC_DIR; @@ -52,7 +52,7 @@ describe('needle API React: JHipster client generator with blueprint', () => { before(async () => { result = await helpers - .run(path.join(__dirname, '../../generators/client/index.mjs')) + .run(getGenerator('client')) .withOptions({ fromCli: true, build: 'maven', diff --git a/test/needle-api/needle-client-vue.spec.js b/test/needle-api/needle-client-vue.spec.js index a0f63ae0a415..3e9b72741385 100644 --- a/test/needle-api/needle-client-vue.spec.js +++ b/test/needle-api/needle-client-vue.spec.js @@ -1,9 +1,9 @@ -const path = require('path'); const assert = require('yeoman-assert'); const helpers = require('yeoman-test'); const ClientGenerator = require('../../generators/client/index.cjs'); const constants = require('../../generators/generator-constants.cjs'); +const { getGenerator } = require('../support/index.cjs'); const VUE = constants.SUPPORTED_CLIENT_FRAMEWORKS.VUE; const CLIENT_MAIN_SRC_DIR = constants.CLIENT_MAIN_SRC_DIR; @@ -43,7 +43,7 @@ const mockBlueprintSubGen = class extends ClientGenerator { describe('needle API Vue: JHipster client generator with blueprint', () => { before(() => helpers - .run(path.join(__dirname, '../../generators/client/index.mjs')) + .run(getGenerator('client')) .withOptions({ fromCli: true, build: 'maven', diff --git a/test/needle-api/needle-client-webpack.spec.js b/test/needle-api/needle-client-webpack.spec.js index 9a2773b39f88..de077a2eb3b6 100644 --- a/test/needle-api/needle-client-webpack.spec.js +++ b/test/needle-api/needle-client-webpack.spec.js @@ -1,8 +1,8 @@ -const path = require('path'); const assert = require('yeoman-assert'); const helpers = require('yeoman-test'); const ClientGenerator = require('../../generators/client/index.cjs'); const constants = require('../../generators/generator-constants.cjs'); +const { getGenerator } = require('../support/index.cjs'); const { ANGULAR, VUE, REACT } = constants.SUPPORTED_CLIENT_FRAMEWORKS; const CLIENT_WEBPACK_DIR = constants.CLIENT_WEBPACK_DIR; @@ -36,7 +36,7 @@ const mockBlueprintSubGen = class extends ClientGenerator { describe('needle API Webpack: JHipster client generator with blueprint', () => { function generateAppWithClientFramework(clientFramework) { return helpers - .create(path.join(__dirname, '../../generators/client/index.mjs')) + .create(getGenerator('client')) .withOptions({ fromCli: true, build: 'maven', diff --git a/test/needle-api/needle-client.spec.js b/test/needle-api/needle-client.spec.js index fbe4bcbdde27..3919a1fbf1fd 100644 --- a/test/needle-api/needle-client.spec.js +++ b/test/needle-api/needle-client.spec.js @@ -1,8 +1,8 @@ -const path = require('path'); const assert = require('yeoman-assert'); const helpers = require('yeoman-test'); const ClientGenerator = require('../../generators/client/index.cjs'); const constants = require('../../generators/generator-constants.cjs'); +const { getGenerator } = require('../support/index.cjs'); const CLIENT_MAIN_SRC_DIR = constants.CLIENT_MAIN_SRC_DIR; @@ -32,7 +32,7 @@ const mockBlueprintSubGen = class extends ClientGenerator { describe('needle API Client: JHipster client generator with blueprint', () => { before(done => { helpers - .run(path.join(__dirname, '../../generators/client/index.mjs')) + .run(getGenerator('client')) .withOptions({ fromCli: true, defaults: true, diff --git a/test/needle-api/needle-server-cache.spec.js b/test/needle-api/needle-server-cache.spec.js index 379296779438..f26c47b8cec7 100644 --- a/test/needle-api/needle-server-cache.spec.js +++ b/test/needle-api/needle-server-cache.spec.js @@ -1,8 +1,8 @@ -const path = require('path'); const assert = require('yeoman-assert'); const helpers = require('yeoman-test'); const ServerGenerator = require('../../generators/server'); const constants = require('../../generators/generator-constants.cjs'); +const { getGenerator } = require('../support/index.cjs'); const SERVER_MAIN_SRC_DIR = constants.SERVER_MAIN_SRC_DIR; @@ -90,7 +90,7 @@ describe('needle API server cache: JHipster server generator with blueprint', () describe('ehcache', () => { before(done => { helpers - .run(path.join(__dirname, '../../generators/server')) + .run(getGenerator('server')) .withOptions({ ...DEFAULT_TEST_OPTIONS, blueprint: 'myblueprint', @@ -140,7 +140,7 @@ describe('needle API server cache: JHipster server generator with blueprint', () describe('caffeine', () => { before(done => { helpers - .run(path.join(__dirname, '../../generators/server')) + .run(getGenerator('server')) .withOptions({ ...DEFAULT_TEST_OPTIONS, blueprint: 'myblueprint', @@ -190,7 +190,7 @@ describe('needle API server cache: JHipster server generator with blueprint', () describe('infinispan', () => { before(done => { helpers - .run(path.join(__dirname, '../../generators/server')) + .run(getGenerator('server')) .withOptions({ ...DEFAULT_TEST_OPTIONS, blueprint: 'myblueprint', @@ -221,7 +221,7 @@ describe('needle API server cache: JHipster server generator with blueprint', () describe('redis', () => { before(done => { helpers - .run(path.join(__dirname, '../../generators/server')) + .run(getGenerator('server')) .withOptions({ ...DEFAULT_TEST_OPTIONS, blueprint: 'myblueprint', diff --git a/test/needle-api/needle-server-gradle.spec.js b/test/needle-api/needle-server-gradle.spec.js index 893a997b468d..da4c0c52dab8 100644 --- a/test/needle-api/needle-server-gradle.spec.js +++ b/test/needle-api/needle-server-gradle.spec.js @@ -1,7 +1,7 @@ -const path = require('path'); const assert = require('yeoman-assert'); const helpers = require('yeoman-test'); const ServerGenerator = require('../../generators/server'); +const { getGenerator } = require('../support/index.cjs'); const mockBlueprintSubGen = class extends ServerGenerator { constructor(args, opts, features) { @@ -37,7 +37,7 @@ const mockBlueprintSubGen = class extends ServerGenerator { describe('needle API server gradle: JHipster server generator with blueprint', () => { before(done => { helpers - .run(path.join(__dirname, '../../generators/server')) + .run(getGenerator('server')) .withOptions({ fromCli: true, skipInstall: true, diff --git a/test/needle-api/needle-server-liquibase.spec.js b/test/needle-api/needle-server-liquibase.spec.js index 280e1f0e8d08..5f13fd010a34 100644 --- a/test/needle-api/needle-server-liquibase.spec.js +++ b/test/needle-api/needle-server-liquibase.spec.js @@ -4,6 +4,7 @@ const helpers = require('yeoman-test'); const fse = require('fs-extra'); const ServerGenerator = require('../../generators/server'); const constants = require('../../generators/generator-constants.cjs'); +const { getGenerator } = require('../support/index.cjs'); const SERVER_MAIN_RES_DIR = constants.SERVER_MAIN_RES_DIR; @@ -80,7 +81,7 @@ const mockBlueprintSubGen = class extends ServerGenerator { describe('needle API server liquibase: JHipster server generator with blueprint', () => { before(done => { helpers - .run(path.join(__dirname, '../../generators/server')) + .run(getGenerator('server')) .inTmpDir(dir => { fse.copySync( path.join(__dirname, 'templates/src/main/resources/config/liquibase/changelog/'), diff --git a/test/needle-api/needle-server-logback-spring.spec.js b/test/needle-api/needle-server-logback-spring.spec.js index 2e63f4df10ba..146123c56666 100644 --- a/test/needle-api/needle-server-logback-spring.spec.js +++ b/test/needle-api/needle-server-logback-spring.spec.js @@ -1,8 +1,8 @@ -const path = require('path'); const assert = require('yeoman-assert'); const helpers = require('yeoman-test'); const ServerGenerator = require('../../generators/server'); const constants = require('../../generators/generator-constants.cjs'); +const { getGenerator } = require('../support/index.cjs'); const SERVER_MAIN_RES_DIR = constants.SERVER_MAIN_RES_DIR; @@ -34,7 +34,7 @@ const mockBlueprintSubGen = class extends ServerGenerator { describe('needle API server log: JHipster server generator with blueprint', () => { before(done => { helpers - .run(path.join(__dirname, '../../generators/server')) + .run(getGenerator('server')) .withOptions({ fromCli: true, skipInstall: true, diff --git a/test/needle-api/needle-server-maven.spec.js b/test/needle-api/needle-server-maven.spec.js index e77de49eb6d7..c7bee7bf0fc2 100644 --- a/test/needle-api/needle-server-maven.spec.js +++ b/test/needle-api/needle-server-maven.spec.js @@ -1,7 +1,7 @@ -const path = require('path'); const assert = require('yeoman-assert'); const helpers = require('yeoman-test'); const ServerGenerator = require('../../generators/server'); +const { getGenerator } = require('../support/index.cjs'); const mockBlueprintSubGen = class extends ServerGenerator { constructor(args, opts, features) { @@ -93,7 +93,7 @@ const mockBlueprintSubGen = class extends ServerGenerator { describe('needle API server maven: JHipster server generator with blueprint', () => { before(done => { helpers - .run(path.join(__dirname, '../../generators/server')) + .run(getGenerator('server')) .withOptions({ fromCli: true, skipInstall: true, diff --git a/test/openapi-client.spec.js b/test/openapi-client.spec.js index 42f708c4f290..45b5db585faa 100644 --- a/test/openapi-client.spec.js +++ b/test/openapi-client.spec.js @@ -1,8 +1,8 @@ -const path = require('path'); const assert = require('yeoman-assert'); const helpers = require('yeoman-test'); const fse = require('fs-extra'); const { jestExpect: expect } = require('mocha-expect-snapshot'); +const { getTemplatePath, getGenerator } = require('./support/index.cjs'); const basePackage = 'src/main/java/com/mycompany/myapp'; @@ -14,10 +14,10 @@ describe('JHipster OpenAPI Client Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/openapi-client')) + .create(getGenerator('openapi-client')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/openapi-client/microservice-simple'), dir); - fse.copySync(path.join(__dirname, './templates/openapi-client'), dir); + fse.copySync(getTemplatePath('openapi-client/microservice-simple'), dir); + fse.copySync(getTemplatePath('openapi-client'), dir); }) .withOptions({ skipChecks: true }) .withPrompts({ @@ -40,10 +40,10 @@ describe('JHipster OpenAPI Client Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/openapi-client')) + .create(getGenerator('openapi-client')) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, './templates/openapi-client/microservice-with-client'), dir); - fse.copySync(path.join(__dirname, './templates/openapi-client'), dir); + fse.copySync(getTemplatePath('openapi-client/microservice-with-client'), dir); + fse.copySync(getTemplatePath('openapi-client'), dir); }) .withOptions({ skipChecks: true, regen: true }) .run(); diff --git a/test/openshift.spec.js b/test/openshift.spec.js index e9b3dc949cf7..27b1dc7c211d 100644 --- a/test/openshift.spec.js +++ b/test/openshift.spec.js @@ -2,7 +2,8 @@ const assert = require('yeoman-assert'); const helpers = require('yeoman-test'); const { jestExpect: expect } = require('mocha-expect-snapshot'); -const { createMockedConfig } = require('./support/mock-config.cjs'); +const createMockedConfig = require('./support/mock-config.cjs'); +const { getGenerator } = require('./support/index.cjs'); const expectedFiles = { sccconfig: ['./ocp/registry/scc-config.yml'], @@ -26,7 +27,7 @@ describe('JHipster OpenShift Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/openshift')) + .create(getGenerator('openshift')) .inTmpDir(dir => { createMockedConfig('01-gateway', dir); }) @@ -63,7 +64,7 @@ describe('JHipster OpenShift Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/openshift')) + .create(getGenerator('openshift')) .inTmpDir(dir => { createMockedConfig('01-gateway', dir); createMockedConfig('02-mysql', dir); @@ -101,7 +102,7 @@ describe('JHipster OpenShift Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/openshift')) + .create(getGenerator('openshift')) .inTmpDir(dir => { createMockedConfig('02-mysql', dir); createMockedConfig('03-psql', dir); @@ -142,7 +143,7 @@ describe('JHipster OpenShift Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/openshift')) + .create(getGenerator('openshift')) .inTmpDir(dir => { createMockedConfig('01-gateway', dir); createMockedConfig('02-mysql', dir); @@ -195,7 +196,7 @@ describe('JHipster OpenShift Sub Generator', () => { let runResult; before(async () => { runResult = await helpers - .create(require.resolve('../generators/openshift')) + .create(getGenerator('openshift')) .inTmpDir(dir => { createMockedConfig('08-monolith', dir); }) diff --git a/test/spring-controller.spec.js b/test/spring-controller.spec.js index 51acba9128eb..4d98243b26d8 100644 --- a/test/spring-controller.spec.js +++ b/test/spring-controller.spec.js @@ -3,11 +3,12 @@ const assert = require('yeoman-assert'); const helpers = require('yeoman-test'); const fse = require('fs-extra'); const constants = require('../generators/generator-constants.cjs'); +const { getGenerator, getTemplatePath } = require('./support/index.cjs'); const SERVER_MAIN_SRC_DIR = constants.SERVER_MAIN_SRC_DIR; const SERVER_TEST_SRC_DIR = constants.SERVER_TEST_SRC_DIR; -const generator = require.resolve('../generators/spring-controller/index.mjs'); +const generator = getGenerator('spring-controller'); describe('JHipster generator spring-controller', () => { describe('creates spring controller', () => { @@ -15,7 +16,7 @@ describe('JHipster generator spring-controller', () => { helpers .run(generator) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, '../test/templates/default'), dir); + fse.copySync(getTemplatePath('default'), dir); }) .withArguments(['foo']) .withPrompts({ @@ -36,7 +37,7 @@ describe('JHipster generator spring-controller', () => { helpers .run(generator) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, '../test/templates/default'), dir); + fse.copySync(getTemplatePath('default'), dir); }) .withArguments(['foo']) .withOptions({ default: true }) @@ -57,7 +58,7 @@ describe('JHipster generator spring-controller', () => { .run(generator) .inTmpDir(dir => { const config = { - ...fse.readJSONSync(path.join(__dirname, '../test/templates/default/.yo-rc.json'))[constants.GENERATOR_JHIPSTER], + ...fse.readJSONSync(getTemplatePath('default/.yo-rc.json'))[constants.GENERATOR_JHIPSTER], packageFolder: undefined, packageName: 'com.test', }; diff --git a/test/spring-service.spec.js b/test/spring-service.spec.js index 2348ea20163a..093724a0151d 100644 --- a/test/spring-service.spec.js +++ b/test/spring-service.spec.js @@ -1,12 +1,12 @@ -const path = require('path'); const assert = require('yeoman-assert'); const helpers = require('yeoman-test'); const fse = require('fs-extra'); const constants = require('../generators/generator-constants.cjs'); +const { getGenerator, getTemplatePath } = require('./support/index.cjs'); const SERVER_MAIN_SRC_DIR = constants.SERVER_MAIN_SRC_DIR; -const generator = require.resolve('../generators/spring-service/index.mjs'); +const generator = getGenerator('spring-service'); describe('JHipster generator service', () => { describe('creates service without interface', () => { @@ -14,7 +14,7 @@ describe('JHipster generator service', () => { helpers .run(generator) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, '../test/templates/default'), dir); + fse.copySync(getTemplatePath('default'), dir); }) .withArguments(['foo']) .withPrompts({ @@ -37,7 +37,7 @@ describe('JHipster generator service', () => { helpers .run(generator) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, '../test/templates/default'), dir); + fse.copySync(getTemplatePath('default'), dir); }) .withArguments(['foo']) .withPrompts({ @@ -59,7 +59,7 @@ describe('JHipster generator service', () => { helpers .run(generator) .inTmpDir(dir => { - fse.copySync(path.join(__dirname, '../test/templates/default'), dir); + fse.copySync(getTemplatePath('default'), dir); }) .withArguments(['foo']) .withOptions({ default: true }) diff --git a/test/support/get-generator.mts b/test/support/get-generator.mts new file mode 100644 index 000000000000..e28f5f33fd2b --- /dev/null +++ b/test/support/get-generator.mts @@ -0,0 +1,8 @@ +import { fileURLToPath } from 'url'; +import { dirname, resolve } from 'path'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +// eslint-disable-next-line import/prefer-default-export +export const getGenerator = (generatorName: string) => resolve(__dirname, '../../generators', generatorName, 'index.mjs'); diff --git a/test/support/get-template-path.mts b/test/support/get-template-path.mts new file mode 100644 index 000000000000..1437f99c2712 --- /dev/null +++ b/test/support/get-template-path.mts @@ -0,0 +1,9 @@ +import { fileURLToPath } from 'url'; +import { dirname, resolve } from 'path'; + +const currentFilename = fileURLToPath(import.meta.url); +const currentFileDirname = dirname(currentFilename); + +export const getTemplatePath = (...templatePath: string[]) => resolve(currentFileDirname, '../templates', ...templatePath); + +export const getEntityTemplatePath = (entityName: string) => getTemplatePath('.jhipster', `${entityName}.json`); diff --git a/test/support/index.cjs b/test/support/index.cjs index 3f90bcf90063..92214d685b87 100644 --- a/test/support/index.cjs +++ b/test/support/index.cjs @@ -322,8 +322,17 @@ const testBlueprintSupport = (generatorName, options = {}) => { }); }; +const getTemplatePath = (...templatePath) => path.resolve(__dirname, '../templates', ...templatePath); + +const getEntityTemplatePath = entityName => getTemplatePath(`.jhipster/${entityName}.json`); + +const getGenerator = generatorName => path.resolve(__dirname, '../../generators', generatorName, 'index.mjs'); + module.exports = { basicTests, testBlueprintSupport, testOptions, + getTemplatePath, + getEntityTemplatePath, + getGenerator, }; diff --git a/test/support/index.mts b/test/support/index.mts index 65a3fad02466..12ec19eb4d23 100644 --- a/test/support/index.mts +++ b/test/support/index.mts @@ -4,6 +4,8 @@ const { basicTests, testBlueprintSupport, testOptions } = testSupport; export { basicTests, testBlueprintSupport, testOptions }; +export * from './get-generator.mjs'; +export * from './get-template-path.mjs'; export * from './application-samples.mjs'; export * from './entity-samples.mjs'; export * from './client-samples.mjs'; diff --git a/test/support/mock-config.cjs b/test/support/mock-config.cjs index 50502d9e7570..98778436c48d 100644 --- a/test/support/mock-config.cjs +++ b/test/support/mock-config.cjs @@ -143,6 +143,4 @@ const createMockedConfig = (sampleDir, testDir, { appDir = sampleDir, config } = return generator; }; -module.exports = { - createMockedConfig, -}; +module.exports = createMockedConfig;