4.5 KiB
| id | ticket | title | status | created | completed | ref_decisions | tags | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0085 | studio-packer-rgba8888-asset-pipeline | RGBA8888 Tests, Fixtures, and Conformance Updates | done | 2026-05-23 | 2026-05-23 |
|
|
Objective
Update packer tests and fixtures so RGBA8888 is the asserted source of truth and RGB565-specific expectations are removed.
Background
DEC-0037 requires tests and fixtures to stop proving RGB565 behavior. The code
base has parser, walker, details, materializer, and workspace service tests that
mention convertedRgb565, originalArgb8888, 15-color limits, magenta
color-key behavior, and RGB565 payload sizes.
Scope
Included
- Update packer unit tests and integration-style workspace tests.
- Update fixture
asset.jsonfiles under packer test resources. - Add conformance-oriented assertions for RGBA channel order, alpha, index
0, 16 usable colors, and removed color-key behavior.
Excluded
- Manual regeneration of
test-projects/mainandfragments. - Production code changes except minor compile-fix test helpers.
- Runtime repository tests.
Execution Steps
Step 1 - Update parser and details tests
What: Replace palette payload fixtures with rgba8888.
How: Rewrite test JSON snippets and assertions that mention
originalArgb8888 or convertedRgb565.
File(s):
prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/services/PackerAssetDeclarationParserTest.javaprometeu-packer/prometeu-packer-v1/src/test/java/p/packer/services/PackerAssetDetailsServiceTest.java
Step 2 - Update glyph walker tests
What: Assert new palette extraction semantics.
How: Add image fixtures in tests that cover:
16 colors, 17-color failure, alpha 0, partial alpha, magenta as ordinary color,
and index 0 as ordinary.
File(s):
prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/repositories/PackerGlyphBankWalkerTest.java
Step 3 - Update materializer and workspace service tests
What: Assert RGBA8888 runtime payload and metadata behavior.
How: Update tests that read assets.pa, measured bank size, payload offsets,
and palette byte expectations. Replace RGB565 byte checks with RGBA byte checks.
File(s):
prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/repositories/PackerRuntimeAssetMaterializerTest.javaprometeu-packer/prometeu-packer-v1/src/test/java/p/packer/services/FileSystemPackerWorkspaceServiceTest.javaprometeu-packer/prometeu-packer-v1/src/test/java/p/packer/services/PackerRuntimePatchServiceTest.javaprometeu-packer/prometeu-packer-v1/src/test/java/p/packer/services/PackerRuntimeRegistryTest.java
Step 4 - Update packer fixture assets
What: Replace fixture asset.json palette fields with rgba8888.
How: Edit packer test fixtures under src/test/resources/fixtures so
canonical palette declarations do not contain convertedRgb565.
File(s):
prometeu-packer/prometeu-packer-v1/src/test/resources/fixtures/**/asset.json
Step 5 - Add stale-contract guards
What: Add tests or quality checks that catch old RGB565 palette contract residue.
How: Add assertions in existing tests or a focused repository quality test
that normal packer specs/tests/fixtures do not contain convertedRgb565 or
RGB565 glyph palette payload expectations.
File(s):
- Existing packer test suites under
prometeu-packer/prometeu-packer-v1/src/test/java
Test Requirements
Unit Tests
- Parser, details, mapper, glyph walker, and workspace service unit tests must all pass.
Integration Tests
- Run the relevant Gradle test task for
prometeu-packer-v1.
Manual Verification
- Search for
convertedRgb565,originalArgb8888,RGB565,rgb565,2048, and magenta color-key references in packer tests and fixtures.
Acceptance Criteria
- Tests use
rgba8888as canonical palette data. - Tests assert RGBA channel order and alpha preservation.
- Tests assert 16 usable palette entries.
- Tests assert magenta is ordinary or no longer special.
- Tests assert 4096-byte palette blocks where payload size is checked.
- Packer test fixtures no longer rely on
convertedRgb565.
Dependencies
- Depends on
PLN-0082,PLN-0083, andPLN-0084.
Risks
- Some stale generated fixture data may be easier to regenerate than hand-edit.
- Overbroad residue checks could flag historical discussion artifacts; scope checks to normal specs, code, tests, and fixtures.