diff --git a/e2e/nx-spring-boot-e2e/tests/nx-spring-boot.test.ts b/e2e/nx-spring-boot-e2e/tests/nx-spring-boot.test.ts index 6f104be9..c9005671 100644 --- a/e2e/nx-spring-boot-e2e/tests/nx-spring-boot.test.ts +++ b/e2e/nx-spring-boot-e2e/tests/nx-spring-boot.test.ts @@ -45,6 +45,28 @@ describe('nx-spring-boot e2e', () => { }, 180000); }); + describe('--type=gradle-project and --language=kotlin', () => { + it('should create a gradle spring-boot project with kotlin', async (done) => { + const appName = uniq('nx-spring-boot'); + ensureNxProject( + '@nxrocks/nx-spring-boot', + 'dist/packages/nx-spring-boot' + ); + await runNxCommandAsync( + `generate @nxrocks/nx-spring-boot:application ${appName} --type gradle-project --language=kotlin` + ); + + const resultBuildInfo= await runNxCommandAsync(`buildInfo ${appName}`); + expect(resultBuildInfo.stdout).toContain(`Executing command: ./gradlew bootBuildInfo`) + + expect(() => + checkFilesExist(`apps/${appName}/gradlew`,`apps/${appName}/build.gradle.kts`, `apps/${appName}/HELP.md`) + ).not.toThrow(); + done(); + }, 180000); + }); + + describe('--directory', () => { it('should create src in the specified directory', async (done) => { const appName = uniq('nx-spring-boot'); diff --git a/packages/nx-spring-boot/src/schematics/application/lib/add-build-info-task.ts b/packages/nx-spring-boot/src/schematics/application/lib/add-build-info-task.ts index 880a8c91..f1b9b910 100644 --- a/packages/nx-spring-boot/src/schematics/application/lib/add-build-info-task.ts +++ b/packages/nx-spring-boot/src/schematics/application/lib/add-build-info-task.ts @@ -13,7 +13,8 @@ springBoot { buildInfo() } `; - const buildGradlePath = `${options.projectRoot}/build.gradle`; + const ext = options.language === 'kotlin' ? '.kts' : '' + const buildGradlePath = `${options.projectRoot}/build.gradle${ext}`; const content = tree.read(buildGradlePath).toString() + buildInfoTask; tree.overwrite(buildGradlePath, content);