@@ -98,10 +98,12 @@ const DATASET = DatasetSchema.parse({
9898 { name : 'm_nomode' , aggregate : 'sum' , field : 'amt_nomode' } ,
9999 { name : 'm_emptycfg' , aggregate : 'sum' , field : 'amt_emptycfg' } ,
100100 { name : 'm_bare' , aggregate : 'sum' , field : 'amt_bare' } ,
101- // An explicit measure `currency` wins over every field-side answer,
102- // the field's FIXED currency included.
101+ // An explicit measure `currency` wins over a dynamic field's tenant
102+ // default. [ADR-0144 M0-3] Over a FIXED field it may only restate the
103+ // field's code: a contradicting one is refused at compile
104+ // (`measure-currency-coherence.ts`, record-currency-analytics.test.ts).
103105 { name : 'm_explicit_dynamic' , aggregate : 'sum' , field : 'amt_dynamic' , currency : 'JPY' } ,
104- { name : 'm_explicit_fixed' , aggregate : 'sum' , field : 'amt_fixed' , currency : 'JPY ' } ,
106+ { name : 'm_explicit_fixed' , aggregate : 'sum' , field : 'amt_fixed' , currency : 'EUR ' } ,
105107 { name : 'm_units' , aggregate : 'sum' , field : 'units' } ,
106108 ] ,
107109} ) ;
@@ -220,11 +222,11 @@ describe.each<Shape>(['raw', 'parsed'])('[#20091] result-column currency honours
220222 expect ( preview . m_bare ) . toBe ( 'USD' ) ;
221223 } ) ;
222224
223- it ( ' an explicit measure currency wins, over a dynamic field and over a fixed one', ( ) => {
225+ it ( " an explicit measure currency wins over a dynamic field, and restates a fixed one's code" , ( ) => {
224226 expect ( live . m_explicit_dynamic ) . toBe ( 'JPY' ) ;
225227 expect ( preview . m_explicit_dynamic ) . toBe ( 'JPY' ) ;
226- expect ( live . m_explicit_fixed ) . toBe ( 'JPY ' ) ;
227- expect ( preview . m_explicit_fixed ) . toBe ( 'JPY ' ) ;
228+ expect ( live . m_explicit_fixed ) . toBe ( 'EUR ' ) ;
229+ expect ( preview . m_explicit_fixed ) . toBe ( 'EUR ' ) ;
228230 } ) ;
229231
230232 it ( 'CONTROL: a non-monetary measure carries no currency' , ( ) => {
0 commit comments