@ -62,10 +62,11 @@ contract('PaymentSplitter', function (accounts) {
await Promise . all ( this . payees . map ( async ( payee , index ) => {
await Promise . all ( this . payees . map ( async ( payee , index ) => {
expect ( await this . contract . payee ( index ) ) . to . equal ( payee ) ;
expect ( await this . contract . payee ( index ) ) . to . equal ( payee ) ;
expect ( await this . contract . released ( payee ) ) . to . be . bignumber . equal ( '0' ) ;
expect ( await this . contract . released ( payee ) ) . to . be . bignumber . equal ( '0' ) ;
expect ( await this . contract . releasable ( payee ) ) . to . be . bignumber . equal ( '0' ) ;
} ) ) ;
} ) ) ;
} ) ;
} ) ;
describe ( 'accepts payments' , async function ( ) {
describe ( 'accepts payments' , function ( ) {
it ( 'Ether' , async function ( ) {
it ( 'Ether' , async function ( ) {
await send . ether ( owner , this . contract . address , amount ) ;
await send . ether ( owner , this . contract . address , amount ) ;
@ -79,7 +80,7 @@ contract('PaymentSplitter', function (accounts) {
} ) ;
} ) ;
} ) ;
} ) ;
describe ( 'shares' , async function ( ) {
describe ( 'shares' , function ( ) {
it ( 'stores shares if address is payee' , async function ( ) {
it ( 'stores shares if address is payee' , async function ( ) {
expect ( await this . contract . shares ( payee1 ) ) . to . be . bignumber . not . equal ( '0' ) ;
expect ( await this . contract . shares ( payee1 ) ) . to . be . bignumber . not . equal ( '0' ) ;
} ) ;
} ) ;
@ -89,8 +90,8 @@ contract('PaymentSplitter', function (accounts) {
} ) ;
} ) ;
} ) ;
} ) ;
describe ( 'release' , async function ( ) {
describe ( 'release' , function ( ) {
describe ( 'Ether' , async function ( ) {
describe ( 'Ether' , function ( ) {
it ( 'reverts if no funds to claim' , async function ( ) {
it ( 'reverts if no funds to claim' , async function ( ) {
await expectRevert ( this . contract . release ( payee1 ) ,
await expectRevert ( this . contract . release ( payee1 ) ,
'PaymentSplitter: account is not due payment' ,
'PaymentSplitter: account is not due payment' ,
@ -104,7 +105,7 @@ contract('PaymentSplitter', function (accounts) {
} ) ;
} ) ;
} ) ;
} ) ;
describe ( 'Token' , async function ( ) {
describe ( 'Token' , function ( ) {
it ( 'reverts if no funds to claim' , async function ( ) {
it ( 'reverts if no funds to claim' , async function ( ) {
await expectRevert ( this . contract . release ( this . token . address , payee1 ) ,
await expectRevert ( this . contract . release ( this . token . address , payee1 ) ,
'PaymentSplitter: account is not due payment' ,
'PaymentSplitter: account is not due payment' ,
@ -119,7 +120,27 @@ contract('PaymentSplitter', function (accounts) {
} ) ;
} ) ;
} ) ;
} ) ;
describe ( 'distributes funds to payees' , async function ( ) {
describe ( 'tracks releasable and released' , function ( ) {
it ( 'Ether' , async function ( ) {
await send . ether ( payer1 , this . contract . address , amount ) ;
const payment = amount . divn ( 10 ) ;
expect ( await this . contract . releasable ( payee2 ) ) . to . be . bignumber . equal ( payment ) ;
await this . contract . release ( payee2 ) ;
expect ( await this . contract . releasable ( payee2 ) ) . to . be . bignumber . equal ( '0' ) ;
expect ( await this . contract . released ( payee2 ) ) . to . be . bignumber . equal ( payment ) ;
} ) ;
it ( 'Token' , async function ( ) {
await this . token . transfer ( this . contract . address , amount , { from : owner } ) ;
const payment = amount . divn ( 10 ) ;
expect ( await this . contract . releasable ( this . token . address , payee2 , { } ) ) . to . be . bignumber . equal ( payment ) ;
await this . contract . release ( this . token . address , payee2 ) ;
expect ( await this . contract . releasable ( this . token . address , payee2 , { } ) ) . to . be . bignumber . equal ( '0' ) ;
expect ( await this . contract . released ( this . token . address , payee2 ) ) . to . be . bignumber . equal ( payment ) ;
} ) ;
} ) ;
describe ( 'distributes funds to payees' , function ( ) {
it ( 'Ether' , async function ( ) {
it ( 'Ether' , async function ( ) {
await send . ether ( payer1 , this . contract . address , amount ) ;
await send . ether ( payer1 , this . contract . address , amount ) ;