Test Scenario: Run a report through the grid and read every result
This page documents a test scenario verifying Run a report from its page and read its rows in Prove the report grid run end to end — the remaining work. It is filled in with the target screen and checklist of steps before testing starts; record the outcome by hand in * Results.
1. Before you start
- The database is this worktree's own, provisioned with Acme Corporation holding
group:
compass db status reports the schema in sync and bootstrap finished,
and compass services status shows every unit running, the five
ores.compute.wrapper nodes included.
- The currency quotes the report's yield curves need are seeded, following
How do I seed currency quotes for a local report run?.
Without them the run reaches the grid and the engine refuses every curve.
- At least one run of the report has completed and at least one has failed, so
the comparison and the error display have something to read. This scenario
creates the second completed run in its own steps.
- The result rows table exists and the reporting service may write it, which a
freshly recreated database grants through its prefix grant function.
3. Steps
3.1. Sign in as the tenant administrator
- Open
http://127.0.0.1:20202.
- Sign in as
tenant_admin@acme_corporation with Secure-Password-123.
- Choose the party
ACME Corporation HK Ltd in the party picker.
- Confirm
Reporting appears in the main navigation.
3.2. Read the report list and open NPV
- Go to
Reporting then Reports.
- Confirm the list states the reports the party runs, and open
NPV.
- Confirm the page states the definition first: the record details, the
last-changed line, the history of the record, and the tabs
Definition and
Runs.
- Confirm
Run and Refresh sit at the top right, and Edit on the record.
3.3. Start a run from the definition
- Press
Run.
- Confirm the page moves to a new run's page with the tabs
Run and Results.
- Confirm the run's state moves on its own, without a hand refresh, and that it
reaches
completed.
3.4. Follow the run onto the grid
- On the run's
Run tab, follow the link that opens this run on the grid.
- Confirm the grid's page names the run, its report and its batch; the same page
is at
/operations/grid/report-runs/<run id> and is reachable from
Operations then Grid.
- Confirm it names the run, its report and its compute batch, and that its
errors tab states what the run recorded, if anything.
- Open the batch: the grid's jobs tab opens with the batch selected and lists its
jobs. Confirm the job for this run is
Done.
- Select that job and press the action that follows it to its own page. Confirm
the job page names the run behind it, the node that ran it and the outcome.
- Follow the node from the job, and confirm the node page states the host, its
platform and when it last reported.
3.5. Read the results at trade level
- Open the run's
Results tab.
- Confirm the header states the trade count and the priced date, that the note
says these are the rows the post-processor loaded, and that one row per trade
is drawn.
- Confirm the totals line states the trade count and the total NPV in the run's
currency.
- Open one row and confirm it states that trade's NPV, its base-currency NPV, its
notional, its counterparty and any error the run recorded against it.
3.6. Follow a trade, a book and a counterparty
- From the open row, follow the trade link and confirm it opens that trade's
record.
- Back on the results, follow a book link and confirm it opens the book, and a
counterparty link and confirm it opens the counterparty.
- Confirm the trades in the run name the same book and counterparty the record
pages state.
3.7. Roll the run up by book and by counterparty
- Change
Aggregate by to Book.
- Confirm the books roll up under their portfolios, a portfolio under its parent,
and that the header still states the run's own trade count.
- Change
Aggregate by to Counterparty and confirm the rows roll up to
counterparties, with their groups where they have one.
- Confirm the donut of each book's share is drawn at the book level when the run
has more than one book, and that every figure beside it matches the table.
3.8. Compare the run with an earlier one
- Go back to the report, press
Run once more, and wait for the second run to
complete.
- On the second run's
Results tab, choose the first run in Compare to.
- Confirm each row states its change and change percentage, that a row the
earlier run had and this one does not is marked as gone, and that the summary
line names the earlier run's totals.
- Confirm the plots state the run's problems by scope when the compared run
recorded any.
3.9. Read a run that failed
- Go back to the report, open its
Runs tab, and open a run in state failed.
- Confirm the run page states the failure in the engine's own words, and that the
errors link lists them by scope.
- Confirm the results tab states that the run shows no rows and why, rather than
an empty table.
3.10. Check the rows in the store
- In a shell, run
compass sql -- -c "set row_security=off; select measure, count(*) from ores_reporting_report_result_rows_tbl where report_instance_id'<run id>' group by 1;"=.
- Confirm the run's rows are there, with the measures the report produced.
- Confirm
select count(*) from ores_reporting_report_result_rows_tbl where report_instance_id'<run id>'=
equals the trades on the screen times the measures.
- Confirm no row carries a measure the screen does not read, and that the
table answers as a hypertable:
select * from timescaledb_information.hypertables where hypertable_name'ores_reporting_report_result_rows_tbl';=.
4. Results
| Field |
Value |
| Status |
PASSED |
| Completed at |
2026-10-27T20:18:52Z |
| Branch |
|
| Commit |
|
| Worktree |
|
5. Notes
Emacs 29.3 (Org mode 9.6.15)