Bite 32.6.3 — Person Photo Management - RodrigoMattosoSilveira/EnterpriseRemoteSystems GitHub Wiki
Bite 32.6.3 — Person Photo Management
Manual Promotion Test Suite
Promotion Candidate
Bite: 32.6.3 — Person Photo Management
Branch: 913-bite-3263-person-photo-management
SHA: 26eac356a60a62275d3dfc26a55122c53ef7cbb9
The supplied HEAD ZIP was verified to contain the exact committed SHA above.
All LOCAL and CI tests pass. Perform the following 4 targeted manual tests before promotion.
The suite is deliberately UI-driven. No SQL, direct API calls, DevTools commands, or manually entered application URLs are required.
Test Fixtures
Use these supplied files:
bite-32.6.3-valid-person-photo.png
bite-32.6.3-replacement-photo.jpg
bite-32.6.3-invalid-32x32.png
Purpose:
valid-person-photo.png valid PNG, 128 × 128
replacement-photo.jpg valid JPEG, 160 × 120
invalid-32x32.png invalid dimensions, 32 × 32
Test 01 — Tenant Administrator Creates a Person With a Photo
Purpose
Verify that a Tenant Administrator can optionally select a valid photo while creating a Person and that the photo is uploaded after Person creation.
Sign-In Identity
Sign in as:
Name: Mariana Alves
Role: Tenant Administrator
Login: [email protected]
Password: Demo-31.4-Brasil!
Required Context
Entity: Mineração Serra Dourada — DEMO
Locale: en-US
Prerequisites
- Start ERS normally in LOCAL.
- Confirm the Brazilian demo Entity is available.
- Confirm no Person named
Manual Photo 32.6.3already exists. - Have
bite-32.6.3-valid-person-photo.pngavailable on the computer running the browser.
Test Person
Create:
First name: Manual
Last name: Photo 32.6.3
Nickname: Photo Test
CPF: 32630000150
RG: MANUAL-3263-PHOTO
Cellular: +55 11 99876-3263
Email: [email protected]
Status: Active
If the UI rejects the supplied CPF because the current validation rules require another valid value, use any otherwise-unused valid test CPF and record it.
Steps
-
Open ERS.
-
Sign in as Mariana Alves.
-
Confirm the selected Entity is
Mineração Serra Dourada — DEMO. -
Confirm the locale is English (United States).
-
Using normal navigation, open People.
-
Click Add Person.
-
Confirm the Create Person page contains a card titled Photo.
-
Confirm the card states that selecting a photo is optional.
-
Click Add Photo.
-
In the operating-system file picker, choose:
bite-32.6.3-valid-person-photo.png -
Confirm a photo preview appears.
-
Confirm the page shows the requirement text:
JPEG or PNG, maximum 5 MiB, dimensions 64–2048 pixels. -
Enter the Person data listed above.
-
Save/Create the Person using the normal UI.
-
Wait for ERS to navigate to the newly created Person detail page.
-
Confirm the Person detail page loads successfully.
-
Locate the Photo card.
-
Confirm the selected image is displayed as the Person photo.
-
Confirm the Photo card offers:
Replace Photo Remove Photo -
Confirm there is no error message indicating that the Person was created but the photo upload failed.
Values to Record
Person ID or displayed Person identifier:
CPF actually used:
Photo displayed after creation: yes / no
Photo mutation controls visible: yes / no
Any upload error:
Expected Results
- The Person is created successfully.
- The selected valid PNG is uploaded after Person creation.
- The new Person detail page displays the image.
- The Tenant Administrator can see Replace Photo and Remove Photo.
- Normal Person data remains intact.
PASS Criteria
PASS only if the Person is created and the photo is visible on the resulting Person detail page without an upload error.
Promotion-Blocking Conditions
Block promotion if:
- the Photo card is missing from Create Person;
- the browser cannot select a valid PNG;
- the Person is created but the photo silently disappears;
- the Person detail page fails after creation;
- the image is broken or unreadable;
- photo upload corrupts or prevents Person creation.
Test 02 — Tenant Administrator Replaces and Removes a Person Photo
Purpose
Verify the lifecycle of the single current global Person photo:
existing photo → replacement photo → no photo/default initials
Sign-In Identity
Remain signed in as Mariana Alves.
Required Context
Entity: Mineração Serra Dourada — DEMO
Locale: en-US
Person: Manual Photo 32.6.3
Prerequisites
Test 01 must have passed.
Have this file available:
bite-32.6.3-replacement-photo.jpg
Steps
Phase A — Replace
-
From the Person detail page for
Manual Photo 32.6.3, locate the Photo card. -
Confirm the PNG from Test 01 is currently visible.
-
Click Replace Photo.
-
In the operating-system file picker, choose:
bite-32.6.3-replacement-photo.jpg -
Wait for the upload to finish.
-
Confirm the displayed Person photo changes to the replacement JPEG.
-
Navigate away using normal UI navigation, for example back to People.
-
Reopen
Manual Photo 32.6.3. -
Confirm the replacement JPEG is still displayed.
-
Confirm ERS still offers Replace Photo and Remove Photo.
Phase B — Remove
- Click Remove Photo.
- Wait for the operation to complete.
- Confirm the image is removed.
- Confirm the Photo card now shows the default initials avatar rather than a broken-image indicator.
- Confirm the mutation action changes to Add Photo.
- Navigate away to People.
- Reopen
Manual Photo 32.6.3. - Confirm the photo remains absent.
- Confirm the initials avatar remains visible.
Values to Record
Replacement persisted after navigation: yes / no
Removal persisted after navigation: yes / no
Default initials displayed after removal:
Any broken image indicator:
Expected Results
- Replacing the photo changes the single current photo.
- The replacement persists after navigation/reload.
- Removing the photo deletes the current photo.
- ERS falls back to the Person initials avatar.
- No stale previous photo reappears.
PASS Criteria
PASS only if both replacement and removal persist correctly.
Promotion-Blocking Conditions
Block promotion if:
- replacement leaves the old photo visible after navigation;
- removal leaves a broken image;
- the removed photo reappears;
- replacing/removing the photo changes Person identity or Membership data;
- the page reports a successful mutation but the visual state does not persist.
Test 03 — TENANT_VIEWER Can See the Person Photo but Cannot Manage It
Purpose
Verify the Bite 32.6.2 read-only role remains genuinely read-only for the new Bite 32.6.3 capability.
Sign-In Identity
Sign out from Mariana and sign in as:
Role: Entity Executive / TENANT_VIEWER
Login: [email protected]
Use the password established during the Bite 32.6.2 manual tests.
Required Context
Entity: Mineração Serra Dourada — DEMO
Locale: en-US
Prerequisites
Before starting this test:
-
Sign in as Mariana if necessary.
-
Open
Manual Photo 32.6.3. -
If Test 02 ended with no photo, use Add Photo and add:
bite-32.6.3-valid-person-photo.png -
Sign out from Mariana.
-
Sign in as the
TENANT_VIEWER.
Steps
-
Confirm the selected Entity is
Mineração Serra Dourada — DEMO. -
Open People.
-
Find and open
Manual Photo 32.6.3. -
Locate the Photo card.
-
Confirm the Person photo is visible.
-
Confirm the card is presented as read-only.
-
Confirm the following controls are not present:
Add Photo Replace Photo Remove Photo -
Confirm there is no visible file-picker control for selecting a photo.
-
Navigate away and reopen the Person.
-
Confirm the photo remains visible and the mutation controls remain absent.
Values to Record
Photo visible to TENANT_VIEWER: yes / no
Add Photo visible: yes / no
Replace Photo visible: yes / no
Remove Photo visible: yes / no
File picker available: yes / no
Expected Results
The TENANT_VIEWER may inspect the Person photo because the role has Person read visibility, but cannot initiate any photo mutation.
PASS Criteria
PASS only if the photo is readable and every photo-management control is absent.
Promotion-Blocking Conditions
Block promotion immediately if a TENANT_VIEWER can:
- add a photo;
- replace a photo;
- remove a photo;
- expose a file picker intended for photo mutation.
Also block promotion if the Viewer receives an ordinary 403 while simply viewing the photo.
Test 04 — Validation and Brazilian Portuguese Presentation
Purpose
Verify that invalid image dimensions are rejected and that the Person Photo UI is correctly localized in pt-BR.
Sign-In Identity
Sign out from the Viewer and sign back in as:
Name: Mariana Alves
Role: Tenant Administrator
Login: [email protected]
Password: Demo-31.4-Brasil!
Required Context
Entity: Mineração Serra Dourada — DEMO
Person: Manual Photo 32.6.3
Prerequisites
Have this file available:
bite-32.6.3-invalid-32x32.png
This is a real PNG but its dimensions are below the supported minimum of 64 × 64 pixels.
Steps
Phase A — Invalid dimensions
-
Open People.
-
Open
Manual Photo 32.6.3. -
Locate the Photo card.
-
Record whether a valid photo is currently displayed.
-
Click Replace Photo if a photo exists; otherwise click Add Photo.
-
Choose:
bite-32.6.3-invalid-32x32.png -
Wait for ERS to process the upload.
-
Confirm ERS rejects the image.
-
Confirm the Person detail page remains usable.
-
Confirm the previously valid photo remains unchanged if one existed before the rejected upload.
-
Confirm ERS does not display the 32 × 32 image as the current Person photo.
Phase B — pt-BR presentation
-
Change the application language to:
Português (Brasil) -
Confirm the selected Entity remains
Mineração Serra Dourada — DEMO. -
Reopen
Manual Photo 32.6.3if necessary. -
Locate the Person Photo card.
-
Confirm the card title is:
Foto -
For a Person with a current photo, confirm the actions are presented as:
Substituir foto Remover foto -
If the Person currently has no photo, confirm the action is:
Adicionar foto -
Confirm the requirement text is presented in Portuguese and describes:
JPEG ou PNG máximo de 5 MiB dimensões entre 64 e 2048 pixels -
Confirm the surrounding terminology uses Entidade, not Locatário.
-
Confirm no untranslated i18n key such as
people.photo.*is visible.
Values to Record
32×32 PNG rejected: yes / no
Previous valid photo preserved after rejection: yes / no
pt-BR card title:
pt-BR mutation labels:
Any "Locatário" wording observed:
Any untranslated people.photo.* key observed:
Expected Results
- The 32 × 32 PNG is rejected because it is below the minimum supported dimensions.
- A rejected upload does not replace an existing valid photo.
- The UI remains usable after the validation error.
pt-BRpresents the feature as Foto with Portuguese mutation labels.- Bite 32.6.1 Entidade terminology remains intact.
PASS Criteria
PASS only if invalid dimensions are rejected without changing the current photo and the pt-BR presentation is complete and consistent.
Promotion-Blocking Conditions
Block promotion if:
- the 32 × 32 image is accepted;
- an invalid upload removes/replaces a previously valid photo;
- the invalid upload breaks the Person page;
- English photo-management labels appear where Portuguese is expected;
Locatárioreappears;- untranslated
people.photo.*keys are visible.
Cross-Tenant Global Photo Behavior
No additional manual cross-Tenant photo test is required for this promotion.
The Person Photo is implemented as a 1:1 attribute of the global Person, while every read and mutation request still resolves the Person through the selected Entity/Membership boundary. LOCAL and CI already cover the storage and authorization layers.
Manually constructing a second-Entity Membership solely to prove that the same global image is reused would add substantial setup relative to the additional promotion confidence.
Promotion Decision
Bite 32.6.3 is ready for promotion only if:
[ ] Test 01 PASS — Tenant Administrator creates a Person with a photo
[ ] Test 02 PASS — photo replacement and removal persist correctly
[ ] Test 03 PASS — TENANT_VIEWER can read but cannot manage the photo
[ ] Test 04 PASS — invalid dimensions are rejected and pt-BR presentation is correct
Any successful photo mutation performed while authenticated solely as TENANT_VIEWER is an immediate promotion blocker.
Any invalid image that becomes the persisted Person photo is also a promotion blocker.
Glossary Impact
The Bite 32.6.3 implementation introduced the following glossary entry. Confirm it has been added to the Person / Identity domain section:
Person Photo
The single current image associated with a global Person.
A Person Photo belongs to the global Person rather than to a Tenant Membership,
Collaborator, or Journey. Therefore the same current Person Photo is visible in
every Tenant in which that Person is authorized to be viewed.
A Tenant Administrator may add, replace, or remove the Person Photo for a Person
who is reachable through a Membership in the selected Tenant. Read-only Tenant
roles may view the photo when they have permission to read the Person but cannot
modify it. Person self-service may view the Person's own photo but does not grant
photo-management authority.
ERS accepts JPEG and PNG Person Photos up to 5 MiB with width and height between
64 and 2048 pixels. Accepted images are decoded and normalized before
persistence. ERS stores the current photo separately from the global Person
record so ordinary Person projections do not carry image bytes.
Replacing a Person Photo replaces the single current photo; removing it restores
the default initials avatar. Photo replacement and removal are auditable
operations.