Bite 31.3 — Core Business Demo Journey in pt‐BR - RodrigoMattosoSilveira/EnterpriseRemoteSystems GitHub Wiki
Bite 31.3 — Core Business Demo Journey in pt-BR
Manual Promotion Test Suite
Branch: 864-bite-313-core-business-demo-journey-in-pt-brr
Committed SHA: 6d138cef35c4b203a16cb486277d7b48eba6df63
Purpose
These tests validate that the Tenant-scoped business journey is usable and coherent in Brazilian Portuguese and that localization remains presentation-only.
The manual suite covers:
- People;
- Person creation/detail;
- Collaborator/Journey creation/detail;
- Work Periods and Planning;
- Gold Production;
- Expenses;
- Current Account / Ledger;
- Outstanding Receipts and receipt lifecycle;
- locale switching without changing identity, Tenant, records, or financial values;
- visible Tenant-boundary presentation.
The automated LOCAL and CI suites are already green. Do not repeat backend/API/SQL verification manually unless one of these UI tests exposes a discrepancy.
Test environment setup
Dedicated manual database
Use a disposable database for this suite so the test can create and mutate business records without affecting other LOCAL data.
Terminal 1 — backend
Start the backend with:
ERS_DATABASE_PATH=data/manual-31-3.db \
ERS_RESET_DATABASE=true \
ERS_PROVISION_E2E_ADMIN=true \
[email protected] \
E2E_ADMIN_PASSWORD='Local-E2E-Administrator-28D!' \
E2E_TENANT_ADMIN_PASSWORD='Local-E2E-Administrator-28D!' \
make local-backend
Important: ERS_RESET_DATABASE=true is for the first startup only.
If the backend must be restarted after any test data has been created, restart it without ERS_RESET_DATABASE=true:
ERS_DATABASE_PATH=data/manual-31-3.db \
ERS_PROVISION_E2E_ADMIN=true \
[email protected] \
E2E_ADMIN_PASSWORD='Local-E2E-Administrator-28D!' \
E2E_TENANT_ADMIN_PASSWORD='Local-E2E-Administrator-28D!' \
make local-backend
Otherwise the manual-test records will be erased.
Terminal 2 — frontend
Start the frontend:
make local-frontend
Verify the startup output reports:
git rev-parse HEAD
6d138cef35c4b203a16cb486277d7b48eba6df63
SOURCE_REVISION=6d138cef35c4b203a16cb486277d7b48eba6df63
Both revisions must match before continuing.
Browser
Use one normal Microsoft Edge window/profile.
Do not use InPrivate mode.
Do not manually invoke Edge translation.
All test navigation below must be performed through visible ERS UI controls. Do not type application routes into the address bar.
Test identity
Use the Tenant Administrator:
Login: [email protected]
Password: Local-E2E-Administrator-28D!
Role: Tenant Administrator
Actor: e2e-default-tenant-admin
Tenant: Default Tenant
Tenant ID/default code: default
Important localization rule for this suite
The following are not translation defects because they are canonical data rather than ERS presentation text:
- Tenant name
Default Tenant; - Tenant ID/code
default/DEFAULT; - Person names, nicknames, e-mail addresses, notes, CPF and RG entered during these tests;
- canonical record IDs;
- canonical reference-data labels such as
Salary,Underground Mining,North Pit,Drilling; - canonical price-list description
Meal; - canonical codes such as
GOLD_GRAM; - the ERS domain term Tenant, which intentionally remains
Tenantin pt-BR.
An English phrase is a defect when it is application-owned UI copy such as a heading, button, explanatory paragraph, filter label, field label, empty state, status presentation, financial presentation label, or workflow instruction that should have a pt-BR translation.
Values to record during the suite
Create a small evidence note and record:
PERSON_ID=
MEMBERSHIP_ID=
JOURNEY_ID=
WORK_PERIOD_ID=
EXPENSE_ID=
LEDGER_ENTRY_ID=
RECEIPT_NUMBER=
Also record screenshots for any unexpected English UI text.
Test 01 — Sign in in pt-BR and establish the Tenant security boundary
Identity
Sign in as:
[email protected]
with:
Local-E2E-Administrator-28D!
Steps
- On the sign-in page, open Language.
- Select Português (Brasil).
- Confirm the sign-in screen changes to Portuguese before authentication.
- Sign in as
[email protected]. - If the Tenant selector does not already show Default Tenant, open it and select Default Tenant.
- Confirm the visible current context is Default Tenant.
- In the left navigation rail, click Pessoas.
- Confirm the page heading is Pessoas.
- Locate the Tenant-boundary card.
- Confirm its title is:
Limite do Tenant para Pessoas
- Confirm the card identifies the current Tenant as
Default Tenant/default. - Read the explanatory paragraph and confirm it is in Portuguese and explains that profile text does not change the Tenant boundary.
- Inspect the left navigation rail.
Expected result
The Tenant Administrator remains in Default Tenant and the common business navigation is Portuguese.
Expected visible navigation includes Portuguese labels such as:
Pessoas
Colaboradores
Despesas
Períodos de trabalho
Produção de ouro
Recibos pendentes
Default Tenant itself remains unchanged because it is Tenant data.
The Tenant-boundary card must make it clear that the business records shown belong to the selected Tenant.
PASS criteria
PASS only if:
- Portuguese remains selected;
- the selected Tenant is
Default Tenant; - the People Tenant-boundary card is Portuguese;
- the Tenant boundary is understandable without inspecting developer tools;
- navigation to business workbenches is Portuguese.
Promotion blocker
Block promotion if:
- the selected Tenant changes because the locale changes;
- the Tenant-boundary card is English;
- significant shell/business navigation remains English;
- the Tenant context is unclear or appears to be merely a visual filter rather than the record/security context.
Test 02 — Create a complete Person entirely through the Portuguese UI
Dependency
Test 01 must pass.
Stay signed in as the Tenant Administrator in Default Tenant with Português (Brasil) selected.
Steps — create the Person
-
From Pessoas, click Criar Pessoa.
-
Confirm the page title is:
Nova Pessoa -
Confirm visible form/navigation text includes Portuguese labels such as:
Pessoal Endereço Banco Emergência Observações Status do Perfil -
In the Pessoal section enter:
Nome: Marina Sobrenome: Ribeiro Apelido: B31-3-Marina CPF: 529.982.247-25 RG: 3132026-1 Celular: (11) 99999-3131 E-mail: [email protected] Status: ActiveActivemay remain an English reference-data label. Do not treat that reference-data value as a translation defect. -
Click Criar Pessoa.
-
Wait for the Person detail page to load.
-
If the page automatically scrolls to the Authentication section, scroll back to the Person profile area.
-
Record
PERSON_IDfrom the Person detail page/URL reached through this UI navigation. -
Record the displayed ID do Vínculo as
MEMBERSHIP_ID.
Steps — complete the profile
-
Select the Endereço tab.
-
Enter:
Endereço 1: Rua Manual 313 Endereço 2: leave blank Estado: Pará Cidade: Itaituba CEP: 68180-000 País: Brasil -
Select the Banco tab.
-
Enter:
Nome do banco: Banco Demo Número do banco: 313 Conta corrente: 31313-3 PIX: [email protected] -
Select the Emergência tab.
-
Enter:
Nome do contato de emergência: Paulo Ribeiro Celular de emergência: (11) 98888-3131 E-mail de emergência: [email protected] -
Select Observações.
-
Enter:
Bite 31.3 manual pt-BR fixture -
Click Salvar alterações.
-
Wait for the success message.
Expected result
The Person detail presentation is Portuguese.
The profile should now report:
Completo
and the action:
Criar Colaborador
should become available.
The user-entered values must remain exactly the values entered. Localization must not modify:
Marina Ribeiro;B31-3-Marina;- CPF;
- RG;
- e-mail addresses;
- bank data;
- notes;
PERSON_ID;MEMBERSHIP_ID.
PASS criteria
PASS only if:
- creation succeeds through the UI;
- profile tabs and explanatory text are Portuguese;
- the final profile is complete;
- Criar Colaborador is available;
- all canonical/user-entered values are unchanged.
Promotion blocker
Block promotion for:
- untranslated application-owned Person form/detail text;
- locale changing Person or Membership identity;
- date/number formatting errors;
- broken tab navigation;
- missing or incorrectly translated completion/eligibility state.
Test 03 — Create a Collaborator Journey and verify Journey presentation
Dependency
Tests 01–02 must pass.
The Person B31-3-Marina must show Completo and Criar Colaborador.
Steps
-
On the Person detail page click Criar Colaborador.
-
Confirm the page title is:
Novo Colaborador -
Confirm
B31-3-Marinais the selected eligible Person. -
Confirm the form is divided into Portuguese workflow sections including:
Jornada Alocação de Trabalho Pagamento Observações -
Enter/select:
Data de início da Jornada: 2026-09-18 Status: Active Setor: Underground Mining Local: North Pit Tarefa: Drilling Método de Pagamento: Salary Valor do Pagamento: 2400 Observações: Bite 31.3 manual Journey -
Click Criar Colaborador.
-
Wait for the Colaboradores page.
-
Search for:
B31-3-Marina -
Open that Collaborator Journey from the search result.
-
Record the displayed ID da Jornada as
JOURNEY_ID.
Expected result
The Collaborator detail page is Portuguese and visibly includes concepts such as:
Jornada do Colaborador
Resumo da Pessoa
Ciclo de vida
Atribuição de Trabalho
Pagamento
Conta Corrente
The payment value for Salary should be presented using pt-BR BRL formatting, visually equivalent to:
R$ 2.400,00
The following values may remain English because they are reference data:
Salary
Underground Mining
North Pit
Drilling
Active
The Person, Membership and Journey identifiers must remain unchanged.
PASS criteria
PASS only if:
- the Journey is created successfully;
- the detail page is coherently Portuguese;
- the payment amount uses pt-BR formatting;
- canonical reference-data values are preserved;
- the Journey remains associated with the correct Person and Tenant.
Promotion blocker
Block promotion if:
- ERS workflow text is English;
- payment formatting is English-style while pt-BR is selected;
- Person/Membership/Journey provenance changes;
- changing locale appears to change the underlying payment value.
Test 04 — Work Period and Planning surfaces remain coherent in Portuguese
Dependency
Tests 01–03 must pass.
Steps
-
Use the left rail to open Períodos de trabalho.
-
Confirm the heading is:
Períodos de trabalho -
Click Adicionar Período de Trabalho.
-
Enter:
Data de trabalho: 2026-09-18 Código do período: DAY Nome: 06:00-18:00 Início: 06:00 Fim: 18:00 -
Click Criar Período de Trabalho.
-
On the detail page record
WORK_PERIOD_ID. -
Confirm the context heading contains Default Tenant, the localized work date, and
06:00-18:00. -
Confirm the displayed
DAYcode remains canonical. -
Confirm the visible tabs are:
Plano Informar / Imprimir Resultados Reais Acúmulo -
Open Plano.
-
Confirm planning labels, filters, instructions and empty/data states are Portuguese.
-
Confirm
B31-3-Marinais visible in the planning roster if eligible. -
Open Informar / Imprimir.
-
Inspect the visible workflow text.
-
Open Resultados Reais.
-
Inspect the visible workflow text.
-
Open Acúmulo.
-
Inspect the visible workflow text.
Do not needlessly post accrual entries in this test.
Expected result
The entire Work Period shell and all four planning tabs are understandable in Portuguese.
The date must be presented using pt-BR formatting rather than remaining a raw ISO presentation. A 2026-09-18 business date should display in a pt-BR form such as:
18 de set. de 2026
The canonical period code DAY remains unchanged.
PASS criteria
PASS if:
- all tabs can be opened;
- application-owned planning labels/instructions are Portuguese;
- the Work Period remains under
Default Tenant; - date presentation is pt-BR;
- canonical
DAYand record IDs are unchanged.
Promotion blocker
Block promotion for:
- untranslated planning workflow copy;
- a broken planning tab after changing locale;
- raw dates where the page is intended to display a formatted date;
- Tenant/context changes caused by localization.
Test 05 — Gold Production → Accrual presentation
Dependency
Test 04 must pass and the 06:00-18:00 Work Period must exist.
Steps
-
Navigate through the UI to Produção de ouro.
-
Confirm the page title is:
Produção de Ouro -
Confirm the explanatory text describes this as the authorized Gold Production workflow in Portuguese.
-
In Período de Trabalho, select the Work Period created in Test 04.
-
In the production form enter:
Data da produção: 2026-09-18 Poço / Local: North Pit Ouro produzido (gramas): 80 -
Click Registrar Produção.
-
Confirm the Produção de Ouro Registrada section shows the newly created entry.
-
Confirm the quantity is displayed as:
80 gand is not unnecessarily padded to eight decimal places.
-
Click Abrir Acúmulo for that Work Period.
-
Confirm the Accrual surface is Portuguese.
-
Confirm visible text includes concepts such as:
Acúmulo Ouro Produzido Total de ouro produzido Execuções de Acúmulo -
Confirm the recorded production appears as read-only input to Accrual.
Expected result
Gold Production and Accrual form one coherent Portuguese workflow.
North Pit remains unchanged as canonical reference data.
The numeric quantity is formatted for presentation without changing the stored quantity.
PASS criteria
PASS if:
- production can be recorded;
- the record is visible;
- the quantity presentation is sensible;
- the Accrual surface is Portuguese;
- Gold Production remains visibly the authoritative editing surface.
Promotion blocker
Block promotion if:
- Gold Production/Accrual instructions remain English;
- production values change during localization;
- Accrual incorrectly appears to be the editing surface for Gold Production.
Test 06 — Create a BRL Expense and inspect its translated detail
Dependency
Tests 01–03 must pass.
Steps
-
Use the left navigation to open Despesas.
-
Confirm the page heading is:
Despesas -
Click Criar Despesa.
-
Confirm the form heading and instructions are Portuguese.
-
In the Collaborator search field type:
B31-3-Marina -
Select the matching Collaborator.
-
Confirm the selected Collaborator indicator is visible.
-
Set:
Categoria: Cantina Data da Despesa: 2026-09-18 -
For the first Cantina item select:
Descrição do Item: Meal Moeda: Real / BRL Quantidade: 2 -
Enter in Observações:
Teste manual Bite 31.3 -
Inspect the calculation preview before submitting.
-
Confirm the price-list item
Mealremains exactlyMeal; it is canonical price-list data. -
Confirm the calculation preview uses Portuguese labels.
-
The seeded
Mealprice is BRL 35.00, so confirm the total is visually:R$ 70,00 -
Click Criar Despesa.
-
On the Expenses list, locate the new record for
B31-3-Marina. -
Open the record through the UI.
-
Record
EXPENSE_ID.
Expected result
The Expense detail page should use Portuguese application labels such as:
Despesa
Valor
Data
Classificação
Titularidade Financeira
Método de cálculo
Lançamento Financeiro
Exact wording may vary by section, but application-owned UI should not revert to English.
The following must remain canonical:
B31-3-Marina
Meal
EXPENSE_ID
PERSON_ID
MEMBERSHIP_ID
JOURNEY_ID
The BRL amount must remain financially equal to 70.00 while being displayed according to pt-BR conventions.
PASS criteria
PASS if:
- the Expense is created through the Portuguese UI;
- preview and detail text are Portuguese;
- the amount is
R$ 70,00visually; - canonical business data is unchanged;
- Person/Journey provenance is visible and correct.
Promotion blocker
Block promotion if:
- amount or quantity changes with locale;
- canonical ownership/provenance is lost;
- application-owned detail text remains English;
- the UI translates
Meal, IDs, names, or other persisted data as though they were UI strings.
Test 07 — Current Account / Ledger translation and financial provenance
Dependency
Test 06 must pass.
Steps
-
From the Expense detail page click Abrir Conta Corrente.
-
Confirm the page heading is:
Conta Corrente da Pessoa -
Confirm the page explains that balances belong to the Person and Journey references remain provenance.
-
Confirm the Real balance reflects the newly created BRL 70.00 Expense as a debit.
-
Expected visual balance after this isolated Expense is:
-R$ 70,00 -
Locate the Gramas de Ouro balance card.
-
Since no gold financial entries were created for this Person, confirm the Gold balance is shown as numeric zero under the Gold heading/code, for example:
Gramas de Ouro 0 GOLD_GRAM -
Confirm the Gold balance card does not redundantly display:
0 g gold -
Find the ledger row created by the Expense.
-
Confirm application presentation includes Portuguese concepts such as:
Lançamentos do Razão Débito dedução de despesa Pessoa proprietária Proveniência da Jornada Origem -
Record the ledger-entry identifier as
LEDGER_ENTRY_ID. -
Confirm the receipt status for the debit is presented in Portuguese, initially equivalent to:
Pendente de emissão
Expected result
The Current Account provides a Portuguese presentation while retaining exact Person/Journey financial ownership.
The Expense deduction should remain exactly BRL 70.00 in value.
PASS criteria
PASS if:
- the balance is correct;
- the ledger row is correct;
- financial direction/type labels are translated;
- Person ownership and Journey provenance remain visible;
- Gold zero balance presentation is clean and non-redundant.
Promotion blocker
Block promotion if:
- balances change because the locale changes;
- a debit appears as a credit or vice versa;
- ownership/provenance is wrong;
- financial labels are raw English codes where a translated display label should exist.
Test 08 — Outstanding Receipt and printable receipt lifecycle in Portuguese
Dependency
Tests 06–07 must pass.
Use the same Tenant Administrator and the same Expense-generated receipt.
Steps — Outstanding Receipts
-
From Current Account click Recibos pendentes.
-
Confirm the heading is:
Recibos pendentes -
Find the outstanding receipt associated with
B31-3-Marina. -
Confirm its status is presented in Portuguese.
-
Record the receipt number as
RECEIPT_NUMBER. -
Click Abrir recibo.
Steps — printable receipt
-
Confirm the page heading is:
Recibo -
Confirm visible sections/labels are Portuguese, including concepts such as:
Ciclo de vida do recibo Etapa de impressão Pessoa proprietária Proveniência da Jornada Data efetiva Transação Valor -
Confirm the amount is still visually:
R$ 70,00 -
Click Imprimir Recibo.
-
Edge should open its operating-system/browser print dialog.
-
Do not actually print paper; click Cancelar in the Edge print dialog.
-
Return to ERS.
-
Confirm ERS recorded the print step and the receipt now shows a Portuguese printed status equivalent to:
Impresso -
Locate Referência do documento assinado.
-
Enter:
MANUAL-31.3-SIGNED-001 -
In receipt notes, if available, enter:
Teste manual Bite 31.3 -
Click:
Registrar devolução assinada -
Confirm the receipt reaches:
Recibo devolvido/ terminal Devolvido status.
-
Use the UI to return to Recibos pendentes.
-
Confirm the returned receipt is no longer an outstanding obligation.
-
On this fresh manual database, if this was the only outstanding receipt, confirm the pagination summary reads:
Exibindo página 1 de 1 · 0 recibosspecifically not:
0 recibo(s)
Expected result
The complete receipt lifecycle is understandable in Portuguese.
The receipt leaves the outstanding workbench after signed return.
Identifiers and amounts remain unchanged.
PASS criteria
PASS if:
- the receipt can be opened;
- print/return lifecycle labels are Portuguese;
- the receipt reaches terminal returned status;
- it leaves Outstanding Receipts;
- zero-receipt pluralization is natural Portuguese.
Promotion blocker
Block promotion for:
- English receipt workflow instructions;
- broken print/return controls;
- receipt still appearing as outstanding after successful return;
recibo(s)or similar placeholder pluralization;- amount/provenance changes.
Test 09 — Locale switching changes presentation only
Dependency
Tests 01–08 must pass.
Use the Expense and Current Account records already created.
Steps
-
Navigate through the UI to the Expense created in Test 06.
-
Before changing language record the following again:
PERSON_ID MEMBERSHIP_ID JOURNEY_ID EXPENSE_ID -
Confirm Default Tenant is selected.
-
Confirm Portuguese presentation includes:
Despesa R$ 70,00 -
Open the Language selector.
-
Select English (United States).
-
Do not reload the page.
-
Confirm the current page changes to English immediately.
-
Confirm the same business amount is displayed using English formatting, visually:
R$70.00 -
Confirm the same Expense/Person/Journey IDs remain unchanged.
-
Confirm
Default Tenantremains the selected Tenant. -
Confirm the user-entered text:
Teste manual Bite 31.3is not translated.
-
Confirm canonical
Mealremains unchanged. -
Open Language again.
-
Select Português (Brasil).
-
Without reloading, confirm the UI immediately returns to Portuguese.
-
Confirm the same BRL 70.00 value returns to pt-BR presentation:
R$ 70,00 -
Navigate to the Work Period created in Test 04.
-
Confirm its
DAYcode andWORK_PERIOD_IDdid not change. -
Navigate to the Collaborator created in Test 03.
-
Confirm
JOURNEY_ID,PERSON_ID, andMEMBERSHIP_IDdid not change.
Expected result
Changing locale affects only presentation.
It must not change:
- signed-in Account;
- Tenant;
- Person;
- Membership;
- Journey;
- Expense;
- Work Period;
- Ledger Entry;
- Receipt;
- persisted amounts;
- user-entered text;
- canonical data.
No manual page reload should be necessary when switching the Language selector.
PASS criteria
PASS only if the locale can switch:
pt-BR → en-US → pt-BR
without navigation loss, record mutation, Tenant change, or page reload.
Promotion blocker
Block promotion immediately if locale switching:
- changes selected Tenant;
- changes identity;
- changes a record ID;
- changes a financial amount;
- requires a manual browser reload;
- translates user-entered or canonical data.
Test 10 — Final Portuguese core-journey sweep and Tenant story
Dependency
Tests 01–09 must pass.
Set Language to:
Português (Brasil)
and keep Default Tenant selected.
Steps
Using only the left rail and in-page links, visit each of these surfaces:
- Pessoas
- the
B31-3-MarinaPerson detail - Colaboradores
- the
B31-3-MarinaCollaborator Journey detail - Períodos de trabalho
- the
06:00-18:00Work Period detail - each Work Period tab:
- Plano
- Informar / Imprimir
- Resultados Reais
- Acúmulo
- Produção de ouro
- Despesas
- the Expense detail created in Test 06
- Conta Corrente da Pessoa
- Recibos pendentes
At every surface:
- Confirm Default Tenant remains the selected Tenant.
- Look specifically for English application-owned UI copy.
- Do not count canonical data as a translation failure.
Allowed examples include:
Default Tenant
default
B31-3-Marina
Marina Ribeiro
Salary
Underground Mining
North Pit
Drilling
Meal
DAY
GOLD_GRAM
record IDs
e-mail addresses
notes entered during the tests
- Return to Pessoas.
- Re-read Limite do Tenant para Pessoas.
- Confirm that, after walking the complete business journey, the relationship between the selected Tenant and its business records is still visually understandable.
Expected result
The core Brazilian demo journey feels like one coherent pt-BR application rather than a Portuguese shell surrounding English business screens.
The Tenant security/data boundary remains prominent and understandable.
Canonical business data remains canonical.
PASS criteria
PASS if:
- no significant application-owned English text is discovered on the Bite 31.3 journey;
- Tenant context remains stable everywhere;
- labels, instructions, actions, empty states and financial presentation are Portuguese;
- canonical data is not incorrectly translated.
Promotion blocker
Any of the following blocks promotion:
- a major Bite 31.3 page or workflow reverts to English;
- a Portuguese page contains conspicuous untranslated application instructions/actions;
- changing locale changes Tenant or identity;
- financial values change instead of merely being reformatted;
- canonical data is mutated or machine-translated;
- the Tenant boundary becomes ambiguous during the business journey.
Final promotion gate
Promote Bite 31.3 only when:
- Test 01 passes — Tenant boundary and Portuguese shell
- Test 02 passes — Person creation/detail
- Test 03 passes — Collaborator/Journey
- Test 04 passes — Work Period/Planning
- Test 05 passes — Gold Production/Accrual
- Test 06 passes — Expense creation/detail
- Test 07 passes — Current Account/Ledger
- Test 08 passes — Receipt lifecycle
- Test 09 passes — locale is presentation-only
- Test 10 passes — final core-journey translation/Tenant sweep
- No unexpected English application-owned UI remains in the demonstrated journey
- No Tenant, identity, authorization, ownership, record-ID, or financial-semantic regression is observed
Glossary impact
None. Bite 31.3 localizes presentation of existing ERS concepts. Tenant remains the intentional ERS term in Brazilian Portuguese, and canonical IDs/codes/data remain unchanged.