diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index e2d5354..951c490 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -65,7 +65,7 @@ jobs: - name: Upload dependency-check report if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 with: name: dependency-check-report path: target/dependency-check-report.* @@ -159,7 +159,7 @@ jobs: - name: Upload Trivy reports if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 with: name: trivy-reports path: trivy-*.json @@ -189,7 +189,7 @@ jobs: - name: Upload Gitleaks report if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 with: name: gitleaks-report path: gitleaks-report.json diff --git a/cannamanage-frontend/src/__tests__/mocks/handlers.ts b/cannamanage-frontend/src/__tests__/mocks/handlers.ts index 4b8b03d..7751bd0 100644 --- a/cannamanage-frontend/src/__tests__/mocks/handlers.ts +++ b/cannamanage-frontend/src/__tests__/mocks/handlers.ts @@ -98,11 +98,11 @@ export const mockStaffList = [ ] export const mockQuotaStatus = { - memberId: "m1", + dailyUsedGrams: 15, + dailyLimitGrams: 25, + monthlyUsedGrams: 15, monthlyLimitGrams: 50, - usedGrams: 15, - remainingGrams: 35, - distributionCount: 3, + isUnder21: false, } export const mockRecentDistributions = [ diff --git a/cannamanage-frontend/src/__tests__/services/distributions.test.tsx b/cannamanage-frontend/src/__tests__/services/distributions.test.tsx index c6c151f..b88057b 100644 --- a/cannamanage-frontend/src/__tests__/services/distributions.test.tsx +++ b/cannamanage-frontend/src/__tests__/services/distributions.test.tsx @@ -62,7 +62,7 @@ describe("useQuotaQuery", () => { await waitFor(() => expect(result.current.isSuccess).toBe(true)) expect(result.current.data).toEqual(mockQuotaStatus) expect(result.current.data?.monthlyLimitGrams).toBe(50) - expect(result.current.data?.usedGrams).toBe(15) + expect(result.current.data?.dailyUsedGrams).toBe(15) }) it("is disabled when memberId is empty", async () => { diff --git a/cannamanage-frontend/src/__tests__/services/members.test.tsx b/cannamanage-frontend/src/__tests__/services/members.test.tsx index 05da812..387fb4a 100644 --- a/cannamanage-frontend/src/__tests__/services/members.test.tsx +++ b/cannamanage-frontend/src/__tests__/services/members.test.tsx @@ -91,7 +91,7 @@ describe("useMemberQuotaQuery", () => { await waitFor(() => expect(result.current.isSuccess).toBe(true)) expect(result.current.data).toEqual(mockQuotaStatus) - expect(result.current.data?.remainingGrams).toBe(35) + expect(result.current.data?.monthlyUsedGrams).toBe(15) }) }) diff --git a/cannamanage-service/src/main/java/de/cannamanage/service/RetentionService.java b/cannamanage-service/src/main/java/de/cannamanage/service/RetentionService.java index a818ef8..c424ee7 100644 --- a/cannamanage-service/src/main/java/de/cannamanage/service/RetentionService.java +++ b/cannamanage-service/src/main/java/de/cannamanage/service/RetentionService.java @@ -9,7 +9,7 @@ import de.cannamanage.service.repository.DistributionRepository; import de.cannamanage.service.repository.MemberRepository; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -29,9 +29,11 @@ import java.util.*; @Slf4j @Service @RequiredArgsConstructor -@ConditionalOnProperty(name = "cannamanage.schedulers.enabled", havingValue = "true", matchIfMissing = false) public class RetentionService { + @Value("${cannamanage.schedulers.enabled:false}") + private boolean schedulersEnabled; + private final ClubRepository clubRepository; private final MemberRepository memberRepository; private final DistributionRepository distributionRepository; @@ -39,11 +41,15 @@ public class RetentionService { /** * Daily scheduled retention processing at 2:00 AM. + * Only runs when schedulers are enabled. * Processes each club independently. */ @Scheduled(cron = "0 0 2 * * *") @Transactional public void processRetention() { + if (!schedulersEnabled) { + return; + } log.info("Starting scheduled retention processing"); List clubs = clubRepository.findAll(); int totalAnonymized = 0;