|
@@ -3,10 +3,11 @@ import { registerJoystreamTypes } from '@joystream/types';
|
|
|
import { Keyring } from '@polkadot/keyring';
|
|
|
import { assert } from 'chai';
|
|
|
import { KeyringPair } from '@polkadot/keyring/types';
|
|
|
-import BN = require('bn.js');
|
|
|
+import BN from 'bn.js';
|
|
|
import { ApiWrapper } from './utils/apiWrapper';
|
|
|
import { initConfig } from './utils/config';
|
|
|
import { v4 as uuid } from 'uuid';
|
|
|
+import tap from 'tap';
|
|
|
|
|
|
export function membershipTest(nKeyPairs: KeyringPair[]) {
|
|
|
initConfig();
|
|
@@ -15,15 +16,16 @@ export function membershipTest(nKeyPairs: KeyringPair[]) {
|
|
|
const paidTerms: number = +process.env.MEMBERSHIP_PAID_TERMS!;
|
|
|
const nodeUrl: string = process.env.NODE_URL!;
|
|
|
const sudoUri: string = process.env.SUDO_ACCOUNT_URI!;
|
|
|
- const defaultTimeout: number = 30000;
|
|
|
+ const defaultTimeout: number = 75000;
|
|
|
let apiWrapper: ApiWrapper;
|
|
|
let sudo: KeyringPair;
|
|
|
let aKeyPair: KeyringPair;
|
|
|
let membershipFee: BN;
|
|
|
let membershipTransactionFee: BN;
|
|
|
|
|
|
- before(async function () {
|
|
|
- this.timeout(defaultTimeout);
|
|
|
+ tap.setTimeout(defaultTimeout);
|
|
|
+
|
|
|
+ tap.test('Membership creation test setup', { bail: true }, async () => {
|
|
|
registerJoystreamTypes();
|
|
|
const provider = new WsProvider(nodeUrl);
|
|
|
apiWrapper = await ApiWrapper.create(provider);
|
|
@@ -42,7 +44,7 @@ export function membershipTest(nKeyPairs: KeyringPair[]) {
|
|
|
await apiWrapper.transferBalance(sudo, aKeyPair.address, membershipTransactionFee);
|
|
|
});
|
|
|
|
|
|
- it('\n\tBuy membeship is accepted with sufficient funds', async () => {
|
|
|
+ tap.test('Buy membeship is accepted with sufficient funds', { bail: true }, async () => {
|
|
|
await Promise.all(
|
|
|
nKeyPairs.map(async (keyPair, index) => {
|
|
|
await apiWrapper.buyMembership(keyPair, paidTerms, `new_member_${index}${keyPair.address.substring(0, 8)}`);
|
|
@@ -53,9 +55,9 @@ export function membershipTest(nKeyPairs: KeyringPair[]) {
|
|
|
.getMemberIds(keyPair.address)
|
|
|
.then(membership => assert(membership.length > 0, `Account ${keyPair.address} is not a member`))
|
|
|
);
|
|
|
- }).timeout(defaultTimeout);
|
|
|
+ });
|
|
|
|
|
|
- it('\n\tAccount A can not buy the membership with insufficient funds', async () => {
|
|
|
+ tap.test('Account A can not buy the membership with insufficient funds', { bail: true }, async () => {
|
|
|
await apiWrapper
|
|
|
.getBalance(aKeyPair.address)
|
|
|
.then(balance =>
|
|
@@ -68,9 +70,9 @@ export function membershipTest(nKeyPairs: KeyringPair[]) {
|
|
|
apiWrapper
|
|
|
.getMemberIds(aKeyPair.address)
|
|
|
.then(membership => assert(membership.length === 0, 'Account A is a member'));
|
|
|
- }).timeout(defaultTimeout);
|
|
|
+ });
|
|
|
|
|
|
- it('\n\tAccount A was able to buy the membership with sufficient funds', async () => {
|
|
|
+ tap.test('Account A was able to buy the membership with sufficient funds', { bail: true }, async () => {
|
|
|
await apiWrapper.transferBalance(sudo, aKeyPair.address, membershipFee.add(membershipTransactionFee));
|
|
|
apiWrapper
|
|
|
.getBalance(aKeyPair.address)
|
|
@@ -81,14 +83,13 @@ export function membershipTest(nKeyPairs: KeyringPair[]) {
|
|
|
apiWrapper
|
|
|
.getMemberIds(aKeyPair.address)
|
|
|
.then(membership => assert(membership.length > 0, 'Account A is a not member'));
|
|
|
- }).timeout(defaultTimeout);
|
|
|
+ });
|
|
|
|
|
|
- after(() => {
|
|
|
+ tap.teardown(() => {
|
|
|
apiWrapper.close();
|
|
|
});
|
|
|
}
|
|
|
|
|
|
-describe.skip('Membership integration tests', () => {
|
|
|
- const nKeyPairs: KeyringPair[] = new Array();
|
|
|
- membershipTest(nKeyPairs);
|
|
|
-});
|
|
|
+const nKeyPairs: KeyringPair[] = new Array();
|
|
|
+
|
|
|
+membershipTest(nKeyPairs);
|