@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
text/typescript
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')
})
})