Test Scenario: Verify the trade blotter
Table of Contents
- 1. Before you start
- 2. Scenario Info
- 3. Steps
- 3.1. Log in as diane.kay
- 3.2. Reach the blotter from the area
- 3.3. Read the portfolio tree's counts
- 3.4. Read the rows and their columns
- 3.5. Narrow to a book and a portfolio
- 3.6. Flatten the list to the legs
- 3.7. Read the rows by counterparty
- 3.8. Read the rows by asset class
- 3.9. Open what a row names
- 3.10. Group trades from the blotter
- 4. Results
- 5. Notes
This page documents a test scenario verifying Merge the trades and structures screens in Trade Blotter — the remaining work. It walks the one screen the Trading area offers: the trades and the structures read together, by the portfolio tree or by counterparty. Record the outcome by hand in each *** Result.
1. Before you start
- The fleet is up on this checkout and the database holds tenant
acme_corporationprovisioned fromacme_demowith its trade population. Recreate and provision only if it is stale:compass db recreate -y -k, thencompass shell -f projects/ores.shell/scripts/library/provisioning/how_do_i_provision_the_system_with_acme_corporation_holding_group.ores. - What the screen shows is one party's holdings. Signed in as
diane.kayyou see the structures and trades ofACME Corporation UK plc. The database holds the other legal entities' holdings too; they belong to parties this session does not work for, and they are not a defect. - A structure's legs are placed where its trades are booked. The population books most structures into one book each; one structure whose legs sit in two books is the case Step 5 needs, and it says so on its row when the data has one.
2. Scenario Info
| Field | Value |
|---|---|
| Verifies task | Merge the trades and structures screens |
| Parent story | Trade Blotter — the remaining work |
| Target screen | Trade blotter, at /trading/blotter. |
| Clients | |
| State | PASSED |
3. Steps
3.1. Log in as diane.kay
- Open http://127.0.0.1:20802/.
- Username
diane.kay@acme_corporation, passwordSecure-Password-123, then Sign in. - Passes when the home page greets Welcome, Diane Kay and the status bar names tenant Acme Corporation and party ACME Corporation UK plc.
3.1.1. Result
| Field | Value |
|---|---|
| Status | PASS |
3.2. Reach the blotter from the area
- Choose Trading in the menu.
- Passes when the area page offers one card, Trade blotter.
- Open it. Passes when the address is
/trading/blotterand the crumb reads Home › Trading › Trade blotter. - Also open
/trading/tradesand/trading/structuresin the address bar: each passes when it lands on/trading/blotter, because those two lists are the screen's rows now.
3.2.1. Result
| Field | Value |
|---|---|
| Status | PASS |
3.3. Read the portfolio tree's counts
- The rail on the left is headed Read by and offers Portfolio tree.
- Passes when the rail's first node is the party, ACME Corporation UK plc, with a number on the same line, and each portfolio and book under it carries its own number.
- Read the biggest portfolio's number, open it, and read the list's pager. Passes when the pager's total equals the number the node stated.
- Passes when a book with nothing booked to it is not drawn, and when the numbers add up: a portfolio's figure is the rows placed anywhere below it.
3.3.1. Result
| Field | Value |
|---|---|
| Status | PASS |
3.4. Read the rows and their columns
- The columns are Identifier, What, Book, Counterparty, Date, State; Structure is not drawn yet.
- Passes when a structure's row states its reference (
PKG-…orDYN-…), its kind, the book or books its legs sit in, a counterparty name, a date and a state. - Passes when a trade's row states its own reference (
POP-…) and its own book, counterparty, date and state, and when the Book and Counterparty cells are links. - Passes when no row is a leg of a structure: a structure's legs are inside it, and its row stands in their place.
3.4.1. Result
| Field | Value |
|---|---|
| Status | PASS |
3.5. Narrow to a book and a portfolio
- Choose a book on the rail. Passes when every row's Book is that book, and the pager's total equals the number the node stated.
- Choose the portfolio above it. Passes when the list holds the rows of every book below that portfolio, and its total equals the portfolio's number.
- Passes when a structure whose legs span books is not under either book but under the portfolio that holds them both, and its row carries the chip spans books and names both books. If the data holds no such structure, record that here and pass the step on the chip's absence being explainable.
3.5.1. Result
| Field | Value |
|---|---|
| Status | PASS |
3.6. Flatten the list to the legs
- Tick Flat beside Group trades.
- Passes when the Structure column appears, the pager's total grows to every trade of the party, and each leg states the structure that holds it.
- Passes when a trade no structure holds shows a dash in Structure, and when unticking Flat brings back the top rows with the column gone.
3.6.1. Result
| Field | Value |
|---|---|
| Status | PASS |
3.7. Read the rows by counterparty
- Choose Counterparty in Read by. Passes when the rail becomes the counterparties the rows face, each with its own number, and the tree is gone.
- Choose a counterparty. Passes when every row's Counterparty is that one, and the pager's total equals the node's number.
- Choose Portfolio tree again. Passes when the tree is drawn at once, not the counterparties and not a wait.
- Choose a counterparty again, then the tree: the same, both ways.
3.7.1. Result
| Field | Value |
|---|---|
| Status | PASS |
3.8. Read the rows by asset class
- Choose Asset class in Read by. Passes when the rail becomes the classes the party's rows fall into, each with its name from the refdata catalogue, a coloured dot, and its own number: Bond, Commodity, Credit, Equity, FX, Interest Rate.
- Choose Interest Rate. Passes when every row's What badge reads a rates instrument and the pager's total equals the node's number.
- Passes when the nodes add up to the party's total: a structure has no class, so the figure counts the classed trades only and a flat row with no class is not counted twice.
- Choose Portfolio tree again. Passes when the tree is drawn at once.
3.8.1. Result
| Field | Value |
|---|---|
| Status | PASS |
3.9. Open what a row names
- From the top rows, click a structure's identifier. Passes when the structure's
page opens at
/trading/structures/<reference>, titled by its kind, with its tree beside it and its legs under Members. - Go back, tick Flat, and click a trade's identifier. Passes when the trade's
page opens at
/trading/trades/<id>with its Details tab. - From either page, the crumb leads back to the blotter.
3.9.1. Result
| Field | Value |
|---|---|
| Status | PASS |
3.10. Group trades from the blotter
- Click Group trades. Passes when the grouping screen opens, at
/trading/structures/group. - Pick two trades of one counterparty and group them. Passes when the new
structure is offered back to the blotter: return to
/trading/blotterand it is one row holding those two trades as legs. - If the picker offers no pair sharing a counterparty, record it: that is the population's shape, not the screen's.
3.10.1. Result
| Field | Value |
|---|---|
| Status | PASS |
4. Results
| Field | Value |
|---|---|
| Status | PASSED |
| Completed at | 2026-10-30T14:32:52Z |
| Branch | |
| Commit | |
| Worktree |
5. Notes
The steps above were run by hand at 2026-10-30T14:32:52Z, when the screen offered
two ways to read the rows. Read the rows by asset class was added afterwards,
on 2026-10-31, and passed under the browser case
tools/ui-tests/specs/blotter.spec.ts at commit 89ec35d5b6 rather than by
hand.