Context
SonarQube duplication on the moox/verapdf branch: the install/checksum/zip-slip/doctor/record tests repeat the same arrange boilerplate (temp workspaces, building stub zips including ..-traversal and symlink entries, fabricating a fake installer with a known checksum, faking Process). Offenders: InstallVeraPdfCommandTest (57%), SafeZipExtractorTest (56%), InstallerChecksumTest (46%), DoctorCommandTest (37%), RecordVeraPdfValidationTest (36%).
What to build
Shared test setup is factored out so the same fixtures aren't rebuilt in every test file, and repetitive malicious-input cases run from datasets — while each test's intent stays explicit.
Acceptance criteria
Blocked by
None — can start immediately.
Context
SonarQube duplication on the
moox/verapdfbranch: the install/checksum/zip-slip/doctor/record tests repeat the same arrange boilerplate (temp workspaces, building stub zips including..-traversal and symlink entries, fabricating a fake installer with a known checksum, fakingProcess). Offenders:InstallVeraPdfCommandTest(57%),SafeZipExtractorTest(56%),InstallerChecksumTest(46%),DoctorCommandTest(37%),RecordVeraPdfValidationTest(36%).What to build
Shared test setup is factored out so the same fixtures aren't rebuilt in every test file, and repetitive malicious-input cases run from datasets — while each test's intent stays explicit.
Acceptance criteria
tests/Helpers.phportests/Pest.php), reused across the five test files.SafeZipExtractorTest) run via Pest datasets rather than copy-pasted per-case blocks.Blocked by
None — can start immediately.