From 9a50949fcc39e64e66f1ed233699c9fe1b04b295 Mon Sep 17 00:00:00 2001 From: Fabio Formosa Date: Thu, 14 May 2026 00:06:34 +0200 Subject: [PATCH] fixed tests and github actions --- .github/workflows/maven-release.yml | 8 ++++---- .github/workflows/maven.yml | 4 ++-- quartz-manager-frontend/jest.config.js | 10 +++++++++- .../scheduler-control.component.spec.ts | 4 ++-- .../simple-trigger-config.component.spec.ts | 18 +++++++++--------- .../simple-trigger-config.component.ts | 1 + quartz-manager-frontend/tsconfig.spec.json | 1 + 7 files changed, 28 insertions(+), 18 deletions(-) diff --git a/.github/workflows/maven-release.yml b/.github/workflows/maven-release.yml index 5da6e61..4871bd4 100644 --- a/.github/workflows/maven-release.yml +++ b/.github/workflows/maven-release.yml @@ -14,10 +14,10 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Set up Java 17 for publishing to Maven Central Repository + - name: Set up Java 21 for publishing to Maven Central Repository uses: actions/setup-java@v4 with: - java-version: '17' + java-version: '21' distribution: 'temurin' server-id: maven-central-release server-username: MAVEN_USERNAME @@ -35,10 +35,10 @@ jobs: MAVEN_PASSWORD: ${{ secrets.MAVEN_CENTRAL_TOKEN_PASSWORD }} MAVEN_GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} - - name: Set up Java 17 for publishing to GitHub Packages + - name: Set up Java 21 for publishing to GitHub Packages uses: actions/setup-java@v4 with: - java-version: '17' + java-version: '21' distribution: 'temurin' - name: Publish to GitHub Packages Apache Maven run: mvn deploy --file quartz-manager-parent/pom.xml -P "deploy-github,build-webjar" diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 911227e..f4baff0 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -26,10 +26,10 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: - java-version: '17' + java-version: '21' distribution: 'temurin' cache: maven - name: Build and test with Maven diff --git a/quartz-manager-frontend/jest.config.js b/quartz-manager-frontend/jest.config.js index 35ad8c8..1aa8b02 100644 --- a/quartz-manager-frontend/jest.config.js +++ b/quartz-manager-frontend/jest.config.js @@ -5,8 +5,16 @@ module.exports = { tsconfig: '/tsconfig.spec.json', stringifyContentPathRegex: '\\.(html|svg)$' }), + moduleNameMapper: { + '^tslib$': '/node_modules/tslib/tslib.es6.mjs', + '^rxjs$': '/node_modules/rxjs/dist/cjs/index.js', + '^rxjs/operators$': '/node_modules/rxjs/dist/cjs/operators/index.js', + '^rxjs/(.*)$': '/node_modules/rxjs/dist/cjs/$1', + '^@fortawesome/fontawesome$': '/node_modules/@fortawesome/fontawesome/index.js', + '^@fortawesome/fontawesome-free-solid$': '/node_modules/@fortawesome/fontawesome-free-solid/index.js' + }, setupFilesAfterEnv: ['/jest.setup.ts'], transformIgnorePatterns: [ - 'node_modules/(?!(@angular|@stomp/rx-stomp|@stomp/stompjs|.*\\.mjs$)/)' + 'node_modules/(?!(@angular|@fortawesome|@stomp/rx-stomp|@stomp/stompjs|.*\\.mjs$)/)' ] }; diff --git a/quartz-manager-frontend/src/app/components/scheduler-control/scheduler-control.component.spec.ts b/quartz-manager-frontend/src/app/components/scheduler-control/scheduler-control.component.spec.ts index 2245bb0..2430bbf 100644 --- a/quartz-manager-frontend/src/app/components/scheduler-control/scheduler-control.component.spec.ts +++ b/quartz-manager-frontend/src/app/components/scheduler-control/scheduler-control.component.spec.ts @@ -74,7 +74,7 @@ describe('SchedulerControlComponent', () => { expect(playIconDe).toBeTruthy(); schedulerBtnDe.nativeElement.click(); - const startSchedulerReq = httpTestingController.expectOne('/quartz-manager/scheduler/run'); + const startSchedulerReq = httpTestingController.expectOne('/quartz-manager/scheduler/start'); startSchedulerReq.flush(null); fixture.detectChanges(); @@ -98,7 +98,7 @@ describe('SchedulerControlComponent', () => { expect(pauseIconDe).toBeTruthy(); schedulerBtnDe.nativeElement.click(); - const startSchedulerReq = httpTestingController.expectOne('/quartz-manager/scheduler/pause'); + const startSchedulerReq = httpTestingController.expectOne('/quartz-manager/scheduler/standby'); startSchedulerReq.flush(null); fixture.detectChanges(); diff --git a/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.spec.ts b/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.spec.ts index bb33884..e8cce12 100644 --- a/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.spec.ts +++ b/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.spec.ts @@ -56,7 +56,7 @@ describe('SimpleTriggerConfig', () => { it('should fetch no triggers at the init', () => { expect(component).toBeTruthy(); - httpTestingController.expectNone(`${CONTEXT_PATH}/simple-triggers/my-simple-trigger`); + httpTestingController.expectNone(`${CONTEXT_PATH}/simple-triggers/DEFAULT/my-simple-trigger`); }); function setInputValue(componentDe: DebugElement, inputSelector: string, value: string) { @@ -95,7 +95,7 @@ describe('SimpleTriggerConfig', () => { component.openTriggerForm(); fixture.detectChanges(); - const getJobsReq = httpTestingController.expectOne(`${CONTEXT_PATH}/jobs`); + const getJobsReq = httpTestingController.expectOne(`${CONTEXT_PATH}/job-classes`); getJobsReq.flush([testJobName]); const componentDe: DebugElement = fixture.debugElement; @@ -150,7 +150,7 @@ describe('SimpleTriggerConfig', () => { expect(submittedTriggerKey).toEqual(new TriggerKey(testTriggerName, null)); flush(); - const postSimpleTriggerReq = httpTestingController.expectOne(`${CONTEXT_PATH}/simple-triggers/${testTriggerName}`); + const postSimpleTriggerReq = httpTestingController.expectOne(`${CONTEXT_PATH}/simple-triggers/DEFAULT/${testTriggerName}`); postSimpleTriggerReq.flush(mockTrigger); expect(actualNewTrigger).toEqual(mockTrigger); @@ -166,7 +166,7 @@ describe('SimpleTriggerConfig', () => { mockTrigger.jobDetailDTO = {jobClassName: testJobName, description: null}; mockTrigger.mayFireAgain = true; mockTrigger.misfireInstruction = MisfireInstruction.MISFIRE_INSTRUCTION_FIRE_NOW; - const getSimpleTriggerReq = httpTestingController.expectOne(`${CONTEXT_PATH}/simple-triggers/${testTriggerName}`); + const getSimpleTriggerReq = httpTestingController.expectOne(`${CONTEXT_PATH}/simple-triggers/DEFAULT/${testTriggerName}`); getSimpleTriggerReq.flush(mockTrigger); component.simpleTriggerReactiveForm.setValue({ @@ -198,7 +198,7 @@ describe('SimpleTriggerConfig', () => { submitButton.nativeElement.click(); - const putSimpleTriggerReq = httpTestingController.expectOne(`${CONTEXT_PATH}/simple-triggers/${testTriggerName}`); + const putSimpleTriggerReq = httpTestingController.expectOne(`${CONTEXT_PATH}/simple-triggers/DEFAULT/${testTriggerName}`); putSimpleTriggerReq.flush(mockTrigger); expect(actualNewTrigger).toBeUndefined(); @@ -214,7 +214,7 @@ describe('SimpleTriggerConfig', () => { const mockTrigger = new Trigger(); mockTrigger.triggerKeyDTO = mockTriggerKey; mockTrigger.jobDetailDTO = {jobClassName: 'TestJob', description: null}; - const getSimpleTriggerReq = httpTestingController.expectOne(`${CONTEXT_PATH}/simple-triggers/my-simple-trigger`); + const getSimpleTriggerReq = httpTestingController.expectOne(`${CONTEXT_PATH}/simple-triggers/DEFAULT/my-simple-trigger`); getSimpleTriggerReq.flush(mockTrigger); fixture.detectChanges(); @@ -246,7 +246,7 @@ describe('SimpleTriggerConfig', () => { mockTrigger.mayFireAgain = true; mockTrigger.misfireInstruction = MisfireInstruction.MISFIRE_INSTRUCTION_FIRE_NOW; - const getSimpleTriggerReq = httpTestingController.expectOne(`${CONTEXT_PATH}/simple-triggers/${testTriggerName}`); + const getSimpleTriggerReq = httpTestingController.expectOne(`${CONTEXT_PATH}/simple-triggers/DEFAULT/${testTriggerName}`); getSimpleTriggerReq.flush(mockTrigger); expect(component.simpleTriggerReactiveForm.value.triggerName).toEqual(testTriggerName); @@ -271,7 +271,7 @@ describe('SimpleTriggerConfig', () => { it('should display the warning if there are no eligible jobs', () => { fixture.detectChanges(); - const getJobsReq = httpTestingController.expectOne(`${CONTEXT_PATH}/jobs`); + const getJobsReq = httpTestingController.expectOne(`${CONTEXT_PATH}/job-classes`); getJobsReq.flush([]); fixture.detectChanges(); @@ -285,7 +285,7 @@ describe('SimpleTriggerConfig', () => { it('should not display the warning if there are eligible jobs', () => { fixture.detectChanges(); - const getJobsReq = httpTestingController.expectOne(`${CONTEXT_PATH}/jobs`); + const getJobsReq = httpTestingController.expectOne(`${CONTEXT_PATH}/job-classes`); getJobsReq.flush(['sampleJob']); fixture.detectChanges(); diff --git a/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.ts b/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.ts index 13fb3ba..ba66250 100644 --- a/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.ts +++ b/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.ts @@ -207,6 +207,7 @@ export class SimpleTriggerConfigComponent implements OnInit { const reactiveFormValue = this.simpleTriggerReactiveForm.getRawValue(); const simpleTriggerCommand = new SimpleTriggerCommand(); simpleTriggerCommand.triggerName = reactiveFormValue.triggerName; + simpleTriggerCommand.triggerGroup = this.selectedTriggerKey?.group || 'DEFAULT'; simpleTriggerCommand.jobClass = reactiveFormValue.jobClass; simpleTriggerCommand.repeatCount = reactiveFormValue.triggerRecurrence.repeatCount; simpleTriggerCommand.repeatInterval = reactiveFormValue.triggerRecurrence.repeatInterval; diff --git a/quartz-manager-frontend/tsconfig.spec.json b/quartz-manager-frontend/tsconfig.spec.json index a9b5332..1ac1cba 100644 --- a/quartz-manager-frontend/tsconfig.spec.json +++ b/quartz-manager-frontend/tsconfig.spec.json @@ -3,6 +3,7 @@ "compilerOptions": { "outDir": "../out-tsc/spec", "baseUrl": "", + "importHelpers": false, "types": [ "jasmine", "node"