UNPKG

@fioprotocol/fiosdk

Version:

The Foundation for Interwallet Operability (FIO) is a consortium of leading blockchain wallets, exchanges and payments providers that seeks to accelerate blockchain adoption by reducing the risk, complexity, and inconvenience of sending and receiving cryp

72 lines (62 loc) 2.66 kB
import { expect } from 'chai'; import { Account, Action, FIOSDK, TransactionResponse } from '../../src/FIOSDK'; import { generateTestingFioDomain } from '../utils'; import { defaultFee } from '../constants'; export const FioPermissionsTests = ({ fioSdk, publicKey, publicKey2, }: { fioSdk: FIOSDK, publicKey: string, publicKey2: string, }) => describe('Testing Fio permissions', () => { let accountName: string let accountName2: string let newFioDomain: string const permName = 'register_address_on_domain' it(`create new domain and register to user 1`, async () => { accountName = FIOSDK.accountHash(publicKey).accountnm accountName2 = FIOSDK.accountHash(publicKey2).accountnm newFioDomain = generateTestingFioDomain() const result = await fioSdk.genericAction('registerFioDomain', { fioDomain: newFioDomain, maxFee: defaultFee }) expect(result.status).to.equal('OK') }) it(`First call addperm, user1 adds permission to user2 to register addresses on user1 domain `, async () => { const result = await fioSdk.genericAction('pushTransaction', { account: Account.perms, action: Action.addPerm, data: { actor: accountName, grantee_account: accountName2, max_fee: defaultFee, object_name: newFioDomain, permission_info: '', permission_name: permName, tpid: '', }, }) as TransactionResponse expect(result.status).to.equal('OK') }) it(`getGranteePermissions user2 account `, async () => { const result = await fioSdk.genericAction('getGranteePermissions', { granteeAccount: accountName2 }) expect(result).to.have.keys('more', 'permissions') expect(result.permissions[0]).to.have.keys('grantee_account', 'permission_name', 'permission_info', 'object_name', 'grantor_account') }) it(`getGrantorPermissions user1 account `, async () => { const result = await fioSdk.genericAction('getGrantorPermissions', { grantorAccount: accountName }) expect(result).to.have.keys('more', 'permissions') expect(result.permissions[0]).to.have.keys('grantee_account', 'permission_name', 'permission_info', 'object_name', 'grantor_account') }) it(`getObjectPermissions user1 domain and "register_address_on_domain" permission `, async () => { const result = await fioSdk.genericAction('getObjectPermissions', { objectName: newFioDomain, permissionName: permName, }) expect(result).to.have.keys('more', 'permissions') expect(result.permissions[0]).to.have.keys('grantee_account', 'permission_name', 'permission_info', 'object_name', 'grantor_account') }) })