1
0
mirror of https://github.com/oceanprotocol-archive/squid-js.git synced 2024-02-02 15:31:51 +01:00

added some missed methods on Ocean.accounts module

This commit is contained in:
Pedro Gutiérrez 2019-02-14 13:15:50 +01:00 committed by Pedro Gutiérrez
parent 8dcdf0a851
commit 057714988a
2 changed files with 81 additions and 1 deletions

View File

@ -1,5 +1,5 @@
import Web3Provider from "../keeper/Web3Provider"
import Balance from "../models/Balance"
import Account from "./Account"
/**
@ -36,4 +36,28 @@ export default class OceanAccounts {
return ethAccounts.map((address: string) => new Account(address))
}
/**
* Return account balance.
* @param {Account} account Account instance.
* @return {Promise<Balance>} Ether and Ocean Token balance.
*/
public balance(account: Account): Promise<Balance> {
return account.getBalance()
}
/**
* Request tokens for a account.
* @param {Account} account Account instance.
* @param {number} amount Token amount.
* @return {Promise<boolean>} Success.
*/
public async requestTokens(account: Account, amount: number): Promise<boolean> {
try {
await account.requestTokens(amount)
return true
} catch(e) {
return false
}
}
}

View File

@ -0,0 +1,56 @@
import { assert, /*expect,*/ spy, use } from "chai"
import * as spies from "chai-spies"
import Account from "../../src/ocean/Account"
import OceanAccounts from "../../src/ocean/OceanAccounts"
use(spies)
describe("OceanAccounts", () => {
let oceanAccounts: OceanAccounts
before(async () => {
oceanAccounts = await OceanAccounts.getInstance()
})
afterEach(() => {
spy.restore()
})
describe("#getInstance()", () => {
it("should get an instance of OceanAccounts", async () => {
const oceanAccounts: OceanAccounts = await OceanAccounts.getInstance()
assert.instanceOf(oceanAccounts, OceanAccounts, "No returned OceanAccounts instance")
})
})
describe("#list()", () => {
it("should return the list of accounts", async () => {
const accounts = await oceanAccounts.list()
accounts.map(account => assert.instanceOf(account, Account))
})
})
describe("#balance()", () => {
it("should return the balance of an account", async () => {
const [account] = await oceanAccounts.list()
spy.on(account, 'getBalance', () => ({eth: 1, ocn: 5}))
const balance = await oceanAccounts.balance(account)
assert.deepEqual(balance, {eth: 1, ocn: 5})
})
})
describe("#requestTokens()", () => {
it("should return the balance of an account", async () => {
const [account] = await oceanAccounts.list()
spy.on(account, 'requestTokens', () => 10)
const success = await oceanAccounts.requestTokens(account, 10)
assert.isTrue(success)
})
})
})