From f33326161cad575a180fedcca2562973b6b5da01 Mon Sep 17 00:00:00 2001 From: Kate Sills Date: Fri, 24 Apr 2020 16:26:01 -0700 Subject: [PATCH] chore: improve brand check --- packages/ERTP/src/amountMath.js | 7 +++++-- .../test/unitTests/mathHelpers/test-natMathHelpers.js | 9 ++++++--- .../test/unitTests/mathHelpers/test-setMathHelpers.js | 2 +- .../test/unitTests/mathHelpers/test-strSetMathHelpers.js | 2 +- packages/ERTP/test/unitTests/test-issuerObj.js | 2 +- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/packages/ERTP/src/amountMath.js b/packages/ERTP/src/amountMath.js index e5413ea73ab..2e13dbf9c21 100644 --- a/packages/ERTP/src/amountMath.js +++ b/packages/ERTP/src/amountMath.js @@ -2,7 +2,7 @@ import harden from '@agoric/harden'; import { assert, details } from '@agoric/assert'; -import { mustBeSameStructure, mustBeComparable } from '@agoric/same-structure'; +import { mustBeComparable } from '@agoric/same-structure'; import mathHelpersLib from './mathHelpersLib'; /** @@ -186,7 +186,10 @@ function makeAmountMath(brand, mathHelpersName) { allegedBrand !== undefined, details`alleged brand is undefined. Did you pass an extent rather than an amount?`, ); - mustBeSameStructure(brand, allegedBrand, 'Unrecognized brand'); + assert( + brand === allegedBrand, + details`the brand in the allegedAmount in 'coerce' didn't match the amountMath brand`, + ); // Will throw on inappropriate extent return amountMath.make(extent); }, diff --git a/packages/ERTP/test/unitTests/mathHelpers/test-natMathHelpers.js b/packages/ERTP/test/unitTests/mathHelpers/test-natMathHelpers.js index 60d09ac5700..65433fa5962 100644 --- a/packages/ERTP/test/unitTests/mathHelpers/test-natMathHelpers.js +++ b/packages/ERTP/test/unitTests/mathHelpers/test-natMathHelpers.js @@ -10,7 +10,7 @@ import makeAmountMath from '../../../src/amountMath'; const mockBrand = harden({ isMyIssuer: () => false, - allegedName: () => 'mock', + getAllegedName: () => 'mock', }); const amountMath = makeAmountMath(mockBrand, 'nat'); @@ -56,8 +56,11 @@ test('natMathHelpers', t => { `coerce can take an amount`, ); t.throws( - () => coerce(harden({ brand: {}, extent: 4 })), - /Unrecognized brand/, + () => + coerce( + harden({ brand: { getAllegedName: () => 'somename' }, extent: 4 }), + ), + /the brand in the allegedAmount in 'coerce' didn't match the amountMath brand/, `coerce can't take the wrong brand`, ); t.throws( diff --git a/packages/ERTP/test/unitTests/mathHelpers/test-setMathHelpers.js b/packages/ERTP/test/unitTests/mathHelpers/test-setMathHelpers.js index 42457f71958..2e930fe5188 100644 --- a/packages/ERTP/test/unitTests/mathHelpers/test-setMathHelpers.js +++ b/packages/ERTP/test/unitTests/mathHelpers/test-setMathHelpers.js @@ -10,7 +10,7 @@ import makeAmountMath from '../../../src/amountMath'; const mockBrand = harden({ isMyIssuer: () => false, - allegedName: () => 'mock', + getAllegedName: () => 'mock', }); const amountMath = makeAmountMath(mockBrand, 'set'); diff --git a/packages/ERTP/test/unitTests/mathHelpers/test-strSetMathHelpers.js b/packages/ERTP/test/unitTests/mathHelpers/test-strSetMathHelpers.js index ed7572ade84..e37fb463afb 100644 --- a/packages/ERTP/test/unitTests/mathHelpers/test-strSetMathHelpers.js +++ b/packages/ERTP/test/unitTests/mathHelpers/test-strSetMathHelpers.js @@ -10,7 +10,7 @@ import makeAmountMath from '../../../src/amountMath'; const mockBrand = harden({ isMyIssuer: () => false, - allegedName: () => 'mock', + getAllegedName: () => 'mock', }); const amountMath = makeAmountMath(mockBrand, 'strSet'); diff --git a/packages/ERTP/test/unitTests/test-issuerObj.js b/packages/ERTP/test/unitTests/test-issuerObj.js index ac5226c59d2..978c5eec307 100644 --- a/packages/ERTP/test/unitTests/test-issuerObj.js +++ b/packages/ERTP/test/unitTests/test-issuerObj.js @@ -233,7 +233,7 @@ test('issuer.split bad amount', t => { const payment = mint.mintPayment(amountMath.make(1000)); t.rejects( _ => E(issuer).split(payment, otherUnitOps.make(10)), - /Unrecognized brand/, + /the brand in the allegedAmount in 'coerce' didn't match the amountMath brand/, 'throws for bad amount', ); } catch (e) {