You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All new labels introduced across Phases 0–3 must be added to every locale .properties file under roda-ui/roda-wui/src/main/resources/config/i18n/. After adding to ServerMessages.properties, submit to Transifex per documentation/Translation_Guide.md.
# ServerMessages.propertiesui.search.fields.IndexedAIP.email_nested_group = Contains Email where...
ui.search.fields.IndexedAIP.email_nested_group.email_subject = Subject
ui.search.fields.IndexedAIP.email_nested_group.email_sender = Sender
ui.search.fields.IndexedAIP.email_nested_group.email_sentDate = Sent Date
Phase 2 — Virtual catalogue dropdown and column headers
# ServerMessages.propertiesui.catalogue.Search_emails.label = Emails
ui.lists.Search_emails.columns.subject_txt = Subject
ui.lists.Search_emails.columns.sender_s = From
ui.lists.Search_emails.columns.sentDate_dt = Sent Date
Integration Test Scenarios
Tests live in roda-core/roda-core-tests/ and use TestNG (@Test(groups = "travis")).
Note
All tests require Docker services running (Solr, PostgreSQL, ZooKeeper). Run with:
RODA_CORE_SOLR_TYPE=CLOUD SIEGFRIED_MODE=standalone \
mvn -Dtestng.groups="travis" -Denforcer.skip=true clean test
Test 1 — Nested document indexing
Ingest a test AIP with an emailarchive.xml descriptive metadata file (containing 3 email child records)
Assert: totalCount = 3, each result has fields.subject_txt populated, mandatory IndexedAIP fields (permissions, ghost, etc.) are present (inherited from parent).
Test 3 — ParentWhichFilterParameter returns parent AIP
Overview
Ensure all new labels are fully internationalised and that the end-to-end nested document flow is covered by integration tests.
Part of: #3382
Depends on: #3660, #3661, #3662, #3663 (all previous phases must be complete)
i18n Requirements
All new labels introduced across Phases 0–3 must be added to every locale
.propertiesfile underroda-ui/roda-wui/src/main/resources/config/i18n/. After adding toServerMessages.properties, submit to Transifex perdocumentation/Translation_Guide.md.Full list of required i18n keys
Phase 0 — EmailArchive metadata type
Phase 1 — Nested filter group labels
Phase 2 — Virtual catalogue dropdown and column headers
Integration Test Scenarios
Tests live in
roda-core/roda-core-tests/and use TestNG (@Test(groups = "travis")).Note
All tests require Docker services running (Solr, PostgreSQL, ZooKeeper). Run with:
Test 1 — Nested document indexing
emailarchive.xmldescriptive metadata file (containing 3 email child records)content_type:emailreturns 3 documentssubject_txt,sender_s,sentDate_dtfields populated{parentAIPUUID}/emails#{index}Test 2 —
ChildOfFilterParameterreturns children asIndexedAIPUsing
/api/v2/aips/findwith:{ "filter": { "parameters": [{ "type": "ChildOfFilterParameter", "childrenOfFilter": { "type": "SimpleFilterParameter", "name": "content_type", "value": "emailarchive" } }] } }Assert:
totalCount = 3, each result hasfields.subject_txtpopulated, mandatoryIndexedAIPfields (permissions,ghost, etc.) are present (inherited from parent).Test 3 —
ParentWhichFilterParameterreturns parent AIPUsing
/api/v2/aips/findwith:{ "filter": { "parameters": [{ "type": "ParentWhichFilterParameter", "parentFilter": { "type": "SimpleFilterParameter", "name": "content_type", "value": "emailarchive" }, "childrenFilter": { "type": "SimpleFilterParameter", "name": "subject_txt", "value": "quarterly" } }] } }Assert: result is the parent mailbox AIP (not the child),
totalCount = 1.Test 4 — Permission enforcement
emailarchivemetadata; restrict READ permission to grouparchivists/api/v2/aips/findwithChildOfFilterParameteras a user NOT inarchiviststotalCount = 0(children are not returned when parent is not accessible)Files to Change
roda-ui/.../resources/config/i18n/ServerMessages.properties.propertiesfiles (PT, SV, HU, ES, HR, DE-AT…)roda-core-testsNestedDocumentsTest.java