Test Scenario: Currency Pair: duplicate and inverted pair_code rejected on create

Table of Contents

This page documents a test scenario verifying Creating a Currency Pair with an already-used pair_code silently versions the existing row in Currency pair support in reference data. It is filled in with the target dialog and checklist of steps before testing starts; the QA Validation Runner panel rewrites * Results in place on save.

Scenario Info

Field Value
Verifies task Creating a Currency Pair with an already-used pair_code silently versions the existing row
Parent story Currency pair support in reference data
Target dialog CurrencyPairDetailDialog
Clients  
State PENDING

Steps

Connect and log in

Log in as tenant_admin@barclays_plc (password Secure-Password-123) and select the BARCLAYS PLC party. If the DB was recreated since, re-run compass shell -f projects/ores.shell/scripts/library/provisioning/barclays_system_provision.ores to restore this starting state first.

Result

Field Value
Status PASS

Attempt to create a duplicate pair via matching base/quote

Open Currency Pairs. Note an existing pair's Base and Quote currency (e.g. the first row in the grid). Click Add, pick that same Base Currency and Quote Currency combination, fill in Classification, and click Save.

Result

Field Value
Status PASS

Confirm the duplicate error is clear and the save is blocked

Confirm a "Duplicate Pair" error dialog appears naming the colliding pair_code, and that the dialog stays open (save did not go through) rather than silently closing.

Result

Field Value
Status PASS

Confirm the existing pair's data is unchanged after the duplicate attempt

Close the Add dialog (Cancel/Close). Reopen the pair you tried to duplicate (double-click it in the list). Confirm its data (Base, Quote, Classification, Version) is unchanged from before the attempt — no phantom version bump.

Result

Field Value
Status PASS

Attempt to create the inverted pair (swap base/quote)

Click Add again. This time pick the swapped Base/Quote for the same pair noted earlier (e.g. if EUR/USD exists, pick Base=USD, Quote=EUR). Fill in Classification and click Save.

Result

Field Value
Status PASS

Confirm the inverted-pair error names both pairs and explains why

Confirm an "Inverted Pair" error dialog appears, naming both the pair you tried to create and the existing pair it's the inverse of, and explaining that only one direction is allowed per FX market convention (with guidance to delete the existing pair first if the inverse is really wanted).

Result

Field Value
Status PASS

Confirm a genuinely new pair still saves normally

Click Add again, pick a Base/Quote combination that does not yet exist in either direction, fill in Classification, and Save. Confirm it saves successfully with no error, and appears in the list.

Result

Field Value
Status FAIL
Notes save works but no eventing. something is wrong with eventing.

Results

Field Value
Status FAILED
Completed at 2026-07-09T19:00:28Z
Branch feature/test-ore-fx-convention-import
Commit 40740e790
Worktree prime_origin

Notes

Emacs 29.3 (Org mode 9.6.15)