Files
labtimesheet/docs/tests/integration/internship-start-guard.md

2.3 KiB

Test Evidence: Internship cannot activate before its business start date

  • Test type: Integration
  • Requirement IDs: ACC-019, ACC-020
  • Scenario IDs: AC-ACC-010 (start-date transition only)
  • Test class/method: com.lab.labtimesheet.feature.account.service.AccountActivationIntegrationTest#internshipCannotActivateBeforeItsBusinessStartDate
  • Implementation commit: 6181984cf85f184be39513d6313f9cbe8267add5

Protected behavior

An active Intern account cannot move its separately stored internship from NOT_STARTED to ACTIVE before the configured inclusive start date in the application's injected business timezone.

Test method

The PostgreSQL 18.4 test creates and activates an Intern account through the production SMTP/account services. Its internship starts one business day after the fixed test clock. The Admin attempts the lifecycle transition and the test reloads the profile through the owning feature repository.

Hand-derived expected result

The service throws an actionable start-date error and the persisted internship remains NOT_STARTED.

RED

Command

export JAVA_HOME=/opt/homebrew/opt/openjdk@25
export PATH="$JAVA_HOME/bin:$PATH"
export DOCKER_HOST=unix:///Users/sechmachine/.orbstack/run/docker.sock
./mvnw -Dtest=AccountActivationIntegrationTest#internshipCannotActivateBeforeItsBusinessStartDate test

Observed result

Tests run: 1, Failures: 1, Errors: 0, Skipped: 0
Expected code to raise a throwable, but the internship activated before its start date.
BUILD FAILURE

GREEN

Command

./mvnw -Dtest=AccountActivationIntegrationTest#internshipCannotActivateBeforeItsBusinessStartDate test

Observed result

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
BUILD SUCCESS
PostgreSQL: 18.4

Affected suite

Command and result

./mvnw -Dtest=BootstrapIntegrationTest,SmtpOnboardingWebIntegrationTest,AccountActivationIntegrationTest,AccountWebIntegrationTest,BootstrapOnboardingWebIntegrationTest,JavaMailSmtpProbeTest,SecurityResponseIntegrationTest test
Tests run: 20, Failures: 0, Errors: 0, Skipped: 0
BUILD SUCCESS

External-test boundaries

This covers only the early-activation guard. It does not claim the later scheduler, completion, withdrawal, transfer, or session-lifecycle portions of AC-ACC-010.