|
@@ -12,6 +12,7 @@ describe('Membership integration tests', () => {
|
|
|
const keyring = new Keyring({ type: 'sr25519' });
|
|
|
const nKeyPairs: KeyringPair[] = new Array();
|
|
|
const N: number = +process.env.MEMBERSHIP_CREATION_N!;
|
|
|
+ const paidTerms: number = +process.env.MEMBERSHIP_PAID_TERMS!;
|
|
|
const nodeUrl: string = process.env.NODE_URL!;
|
|
|
const sudoUri: string = process.env.SUDO_ACCOUNT_URL!;
|
|
|
const defaultTimeout: number = 30000;
|
|
@@ -19,8 +20,9 @@ describe('Membership integration tests', () => {
|
|
|
let sudo: KeyringPair;
|
|
|
let aKeyPair: KeyringPair;
|
|
|
let membershipFee: number;
|
|
|
+ let membershipTransactionFee: number;
|
|
|
|
|
|
- before(async function() {
|
|
|
+ before(async function () {
|
|
|
this.timeout(defaultTimeout);
|
|
|
registerJoystreamTypes();
|
|
|
const provider = new WsProvider(nodeUrl);
|
|
@@ -30,30 +32,28 @@ describe('Membership integration tests', () => {
|
|
|
nKeyPairs.push(keyring.addFromUri(i.toString()));
|
|
|
}
|
|
|
aKeyPair = keyring.addFromUri('A');
|
|
|
- membershipFee = await apiMethods.getMembershipFee(0);
|
|
|
- let nonce = await apiMethods.getNonce(sudo);
|
|
|
- nonce = nonce.sub(new BN(1));
|
|
|
- await apiMethods.transferBalanceToAccounts(
|
|
|
+ membershipFee = await apiMethods.getMembershipFee(paidTerms);
|
|
|
+ membershipTransactionFee = apiMethods.estimateBuyMembershipFee(
|
|
|
sudo,
|
|
|
- nKeyPairs,
|
|
|
- membershipFee + 1,
|
|
|
- nonce
|
|
|
+ paidTerms,
|
|
|
+ 'member_name_which_is_longer_than_expected'
|
|
|
);
|
|
|
- await apiMethods.transferBalance(sudo, aKeyPair.address, 2);
|
|
|
+ let nonce = await apiMethods.getNonce(sudo);
|
|
|
+ nonce = nonce.sub(new BN(1));
|
|
|
+ await apiMethods.transferBalanceToAccounts(sudo, nKeyPairs, membershipFee + membershipTransactionFee, nonce);
|
|
|
+ await apiMethods.transferBalance(sudo, aKeyPair.address, membershipTransactionFee * 2);
|
|
|
});
|
|
|
|
|
|
it('Buy membeship is accepted with sufficient funds', async () => {
|
|
|
await Promise.all(
|
|
|
nKeyPairs.map(async keyPair => {
|
|
|
- await apiMethods.buyMembership(keyPair, 0, 'new_member');
|
|
|
+ await apiMethods.buyMembership(keyPair, paidTerms, 'new_member');
|
|
|
})
|
|
|
);
|
|
|
nKeyPairs.map(keyPair =>
|
|
|
apiMethods
|
|
|
.getMembership(keyPair.address)
|
|
|
- .then(membership =>
|
|
|
- assert(!membership.isEmpty, 'Account m is not a member')
|
|
|
- )
|
|
|
+ .then(membership => assert(!membership.isEmpty, 'Account m is not a member'))
|
|
|
);
|
|
|
}).timeout(defaultTimeout);
|
|
|
|
|
@@ -61,18 +61,13 @@ describe('Membership integration tests', () => {
|
|
|
apiMethods
|
|
|
.getBalance(aKeyPair.address)
|
|
|
.then(balance =>
|
|
|
- assert(
|
|
|
- balance.toNumber() < membershipFee,
|
|
|
- 'Account A already have sufficient balance to purchase membership'
|
|
|
- )
|
|
|
+ assert(balance.toNumber() < membershipFee, 'Account A already have sufficient balance to purchase membership')
|
|
|
);
|
|
|
}).timeout(defaultTimeout);
|
|
|
|
|
|
it('Account A can not buy the membership with insufficient funds', async () => {
|
|
|
- await apiMethods.buyMembership(aKeyPair, 0, 'late_member', true);
|
|
|
- apiMethods
|
|
|
- .getMembership(aKeyPair.address)
|
|
|
- .then(membership => assert(membership.isEmpty, 'Account A is a member'));
|
|
|
+ await apiMethods.buyMembership(aKeyPair, paidTerms, 'late_member', true);
|
|
|
+ apiMethods.getMembership(aKeyPair.address).then(membership => assert(membership.isEmpty, 'Account A is a member'));
|
|
|
}).timeout(defaultTimeout);
|
|
|
|
|
|
it('Account A has been provided with funds to buy the membership', async () => {
|
|
@@ -80,20 +75,15 @@ describe('Membership integration tests', () => {
|
|
|
apiMethods
|
|
|
.getBalance(aKeyPair.address)
|
|
|
.then(balance =>
|
|
|
- assert(
|
|
|
- balance.toNumber() >= membershipFee,
|
|
|
- 'The account balance is insufficient to purchase membership'
|
|
|
- )
|
|
|
+ assert(balance.toNumber() >= membershipFee, 'The account balance is insufficient to purchase membership')
|
|
|
);
|
|
|
}).timeout(defaultTimeout);
|
|
|
|
|
|
it('Account A was able to buy the membership', async () => {
|
|
|
- await apiMethods.buyMembership(aKeyPair, 0, 'late_member');
|
|
|
+ await apiMethods.buyMembership(aKeyPair, paidTerms, 'late_member');
|
|
|
apiMethods
|
|
|
.getMembership(aKeyPair.address)
|
|
|
- .then(membership =>
|
|
|
- assert(!membership.isEmpty, 'Account A is a not member')
|
|
|
- );
|
|
|
+ .then(membership => assert(!membership.isEmpty, 'Account A is a not member'));
|
|
|
}).timeout(defaultTimeout);
|
|
|
|
|
|
after(() => {
|