1.8.23 • Published 4 years ago

@gapi/testing-util v1.8.23

Weekly downloads
389
License
MIT
Repository
-
Last release
4 years ago
Example E2E testing from API
import { Transaction, Block, Account, Unit, TransactionReceipt, Tx, Personal } from '../../core/services/contract/web3.types';
import { IQuery, IMutation } from '../../../api-types/graphql';
import { AtcTestUtil } from '../../core/testing/test.util';
import { User } from '../../core/models/User';
import { SequelizeController } from '../../core/sequelize.controller';
import { Wallet } from '../../core/models/Wallet';
import { EthereumAPI } from './ethereum.api';
import { AuthModule } from '../../core/services/auth/auth.module';
import { AtcPerson } from './services/person.service';
import { BUY_COINS_MUTATION } from '../../core/testing/mutations/buyCoins.mutation';
import { SEND_TRANSACTION_MUTATION } from '../../core/testing/mutations/sendTransaction.mutation';
import { ServerErrorsList } from '../../core/services/errors/server-errors-list';

const atcTestUtil: AtcTestUtil = new AtcTestUtil();

beforeAll(() => atcTestUtil.init());
afterAll(() => atcTestUtil.destroy());

describe('Ethereum Controller', () => {

  // tslint:disable-next-line:max-line-length
  it(`e2e: mutation -> (buyCoins) : Should sucessfully buy ${1000 * Number(atcTestUtil.defaultTestingAmount)} ATC coin with ${atcTestUtil.defaultTestingAmount} ETH`, async done => {
    atcTestUtil.sendRequest<IMutation>({
      query: BUY_COINS_MUTATION,
      variables: {
        address: atcTestUtil.users.USER.wallets[0].address,
        amount: atcTestUtil.defaultTestingAmount
      },
      signiture: atcTestUtil.users.USER
    })
      .subscribe(async res => {
        if (!res.success) {
          console.error(res.errors[0].name);
        }
        expect(res.success).toBeTruthy();
        expect(res.data.buyCoins.tx).toBeDefined();
        done();
      }, err => {
        expect(err).toBe(null);
        done();
      });
  });

  it(`e2e: mutation -> (buyCoins) : Should throw error 'invalid-address'`, async done => {
    atcTestUtil.sendRequest<IMutation>({
      query: BUY_COINS_MUTATION,
      variables: {
        address: 'g',
        amount: atcTestUtil.defaultTestingAmount
      }
    })
      .subscribe(res => {
        expect(res.success).toBeFalsy();
        expect(res.errors[0].name).toBe('invalid-address');
        done();
      }, err => {
        expect(err).toBe(null);
        done();
      });
  });

  it(`e2e: mutation -> (buyCoins) : Should throw error 'missing-wallet-id' when buying ATC Coins`, async done => {
      atcTestUtil.sendRequest<IMutation>({
        query: BUY_COINS_MUTATION,
        variables: {
          address: '0xB1dCf5215d8f537F47B286699746Bf696A768bbc',
          amount: atcTestUtil.defaultTestingAmount
        }
      })
        .subscribe(res => {
          expect(res.success).toBeFalsy();
          expect(res.data.buyCoins).toBeNull();
          expect(res.errors[0].name).toBe('missing-wallet-id');
          done();
        }, err => {
          expect(err).toBe(null);
          done();
        });
    });

  it(`e2e: mutation -> (sendTransaction) : Should throw error 'account-not-found' when sending transaction from unknown account`, done => {
    atcTestUtil.sendRequest<IMutation>({
      query: SEND_TRANSACTION_MUTATION,
      variables: {
        from: '0x67De18cA13BDd44Bed2ACF1062866E93FB9F479B',
        to: '0xE3b6f16234Ac91d5Cd5A1030d13839a8be671b06',
        amount: atcTestUtil.defaultTestingAmount
      }
    })
      .map(res => {
        expect(res.success).toBeFalsy();
        expect(res.data.sendTransaction).toBeNull();
        expect(res.errors[0].name).toBe('account-not-found');
        done();
      }, (err) => {
        expect(err).toBe(null);
        done();
      }).subscribe();
  });

});
Example Unit testing
import { Block, Account, Unit, TransactionReceipt, Tx, Personal } from '../../core/services/contract/web3.types';
import { IQuery, IMutation } from '../../../api-types/graphql';
import { AtcTestUtil } from '../../core/testing/test.util';
import { User } from '../../core/models/User';
import { SequelizeController } from '../../core/sequelize.controller';
import { Wallet } from '../../core/models/Wallet';
import { FAKE_USERS_WALLETS_COUNT } from '../../core/testing/fakeUsers';
import { EthereumAPI } from './ethereum.api';
import { AuthModule } from '../../core/services/auth/auth.module';
import { AtcPerson } from './services/person.service';
import { Transaction } from '../../core/models/Transaction';

const atcTestUtil: AtcTestUtil = new AtcTestUtil();

beforeAll(() => atcTestUtil.init());
afterAll(() => atcTestUtil.destroy());

describe('Ethereum Api', () => {

  it(`unit: (FakeWalletsCount) : Should have ${FAKE_USERS_WALLETS_COUNT.count} wallets inside personal web3`, async done => {
    expect(await atcTestUtil.getEtherAccounts()).toHaveLength(FAKE_USERS_WALLETS_COUNT.count);
    done();
  });

  // tslint:disable-next-line:max-line-length
  it(`unit: (sendTransaction) : Should send transaction from USER to ADMIN ${atcTestUtil.defaultTestingAmount} ETH`, async done => {
    const person = new AtcPerson(
      AuthModule.decrypt(atcTestUtil.users.USER.credential.password),
      atcTestUtil.users.USER.wallets[1].address
    );
    await person.unlockAccount();
    EthereumAPI.sendTransaction(
      atcTestUtil.users.USER.wallets[1].address,
      atcTestUtil.users.ADMIN.wallets[1].address,
      atcTestUtil.defaultTestingAmount,
      atcTestUtil.users.USER.credential,
      null,
      null
    ).then(async transaction => {
      expect(transaction.blockHash).toBeTruthy();
      const t = await Transaction.find({where: {hash: transaction.transactionHash}});
      expect(transaction.transactionHash).toBe(t.hash);
      await t.destroy();
      await person.lockAccount();
      done();
    }).catch(e => {
      expect(e).toBe(null);
      done();
    });
  });

  // tslint:disable-next-line:max-line-length
  it(`unit: (sendTransaction) : Should throw error invalid-account-password when sending from ADMIN to USER ${atcTestUtil.defaultTestingAmount} ETH`, async done => {
    EthereumAPI.sendTransaction(
      atcTestUtil.users.ADMIN.wallets[1].address,
      atcTestUtil.users.USER.wallets[1].address,
      atcTestUtil.defaultTestingAmount,
      atcTestUtil.users.ADMIN.credential,
      null,
      null
    ).then(async transaction => {
      expect(transaction.blockHash).toBeTruthy();
      done();
    }).catch(e => {
      expect(e.name).toBe('invalid-account-password');
      done();
    });
  });

});
1.8.22

4 years ago

1.8.23

4 years ago

1.8.21

4 years ago

1.8.20

4 years ago

1.8.19

5 years ago

1.8.18

5 years ago

1.8.17

5 years ago

1.8.16

5 years ago

1.8.15

5 years ago

1.8.14

5 years ago

1.8.13

5 years ago

1.8.12

5 years ago

1.8.11

5 years ago

1.8.10

5 years ago

1.8.9

5 years ago

1.8.8

5 years ago

1.8.7

5 years ago

1.8.6

5 years ago

1.8.5

5 years ago

1.8.4

5 years ago

1.8.3

5 years ago

1.8.2

5 years ago

1.8.1

5 years ago

1.8.0

5 years ago

1.7.8

5 years ago

1.7.7

5 years ago

1.7.6

5 years ago

1.7.5

5 years ago

1.7.4

5 years ago

1.7.3

5 years ago

1.7.2

5 years ago

1.7.1

5 years ago

1.7.0

5 years ago

1.6.33

5 years ago

1.6.32

5 years ago

1.6.31

5 years ago

1.6.30

5 years ago

1.6.29

5 years ago

1.6.28

5 years ago

1.6.27

5 years ago

1.6.26

5 years ago

1.6.25

5 years ago

1.6.24

5 years ago

1.6.23

5 years ago

1.6.22

5 years ago

1.6.21

5 years ago

1.6.20

5 years ago

1.6.19

5 years ago

1.6.18

5 years ago

1.6.17

5 years ago

1.6.16

5 years ago

1.6.15

5 years ago

1.6.14

5 years ago

1.6.13

5 years ago

1.6.12

5 years ago

1.6.11

5 years ago

1.6.10

5 years ago

1.6.9

5 years ago

1.6.8

5 years ago

1.6.7

5 years ago

1.6.6

5 years ago

1.6.5

5 years ago

1.6.4

5 years ago

1.6.3

5 years ago

1.6.2

5 years ago

1.6.1

5 years ago

1.6.0

5 years ago

1.5.39

5 years ago

1.5.38

5 years ago

1.5.37

5 years ago

1.5.36

5 years ago

1.5.35

5 years ago

1.5.34

5 years ago

1.5.33

5 years ago

1.5.32

5 years ago

1.5.31

5 years ago

1.5.30

5 years ago

1.5.29

5 years ago

1.5.28

5 years ago

1.5.27

5 years ago

1.5.26

5 years ago

1.5.25

5 years ago

1.5.24

5 years ago

1.5.23

5 years ago

1.5.22

5 years ago

1.5.21

5 years ago

1.5.20

5 years ago

1.5.19

5 years ago

1.5.18

5 years ago

1.5.17

5 years ago

1.5.16

5 years ago

1.5.15

5 years ago

1.5.14

5 years ago

1.5.13

5 years ago

1.5.12

5 years ago

1.5.11

5 years ago

1.5.10

5 years ago

1.5.9

5 years ago

1.5.8

5 years ago

1.5.7

5 years ago

1.5.6

5 years ago

1.5.5

5 years ago

1.5.4

5 years ago

1.5.3

5 years ago

1.5.2

5 years ago

1.5.1

5 years ago

1.5.0

5 years ago

1.4.94

5 years ago

1.4.93

5 years ago

1.4.92

5 years ago

1.4.91

5 years ago

1.4.90

5 years ago

1.4.89

5 years ago

1.4.88

5 years ago

1.4.87

5 years ago

1.4.86

5 years ago

1.4.85

5 years ago

1.4.84

5 years ago

1.4.83

5 years ago

1.4.82

5 years ago

1.4.81

5 years ago

1.4.80

5 years ago

1.4.79

5 years ago

1.4.78

5 years ago

1.4.77

5 years ago

1.4.76

5 years ago

1.4.75

5 years ago

1.4.74

5 years ago

1.4.73

5 years ago

1.4.72

5 years ago

1.4.71

5 years ago

1.4.70

5 years ago

1.4.69

5 years ago

1.4.68

5 years ago

1.4.67

5 years ago

1.4.66

5 years ago

1.4.65

5 years ago

1.4.64

5 years ago

1.4.63

5 years ago

1.4.62

5 years ago

1.4.61

5 years ago

1.4.60

5 years ago

1.4.59

5 years ago

1.4.58

5 years ago

1.4.57

5 years ago

1.4.56

5 years ago

1.4.55

5 years ago

1.4.54

5 years ago

1.4.53

5 years ago

1.4.52

5 years ago

1.4.51

5 years ago

1.4.50

5 years ago

1.4.49

5 years ago

1.4.48

5 years ago

1.4.47

5 years ago

1.4.46

5 years ago

1.4.45

5 years ago

1.4.44

5 years ago

1.4.43

5 years ago

1.4.41

5 years ago

1.4.40

5 years ago

1.4.39

5 years ago

1.4.38

5 years ago

1.4.37

5 years ago

1.4.36

5 years ago

1.4.35

5 years ago

1.4.34

5 years ago

1.4.33

5 years ago

1.4.32

5 years ago

1.4.31

5 years ago

1.4.30

5 years ago

1.4.29

5 years ago

1.4.28

5 years ago

1.4.27

5 years ago

1.4.26

6 years ago

1.4.25

6 years ago

1.4.24

6 years ago

1.4.23

6 years ago

1.4.22

6 years ago

1.4.21

6 years ago

1.4.20

6 years ago

1.4.19

6 years ago

1.4.18

6 years ago

1.4.17

6 years ago

1.4.16

6 years ago

1.4.15

6 years ago

1.4.14

6 years ago

1.4.13

6 years ago

1.4.12

6 years ago

1.4.11

6 years ago

1.4.10

6 years ago

1.4.9

6 years ago

1.4.8

6 years ago

1.4.7

6 years ago

1.4.6

6 years ago

1.4.5

6 years ago

1.4.4

6 years ago

1.4.3

6 years ago

1.4.2

6 years ago

1.4.1

6 years ago

1.4.0

6 years ago

1.3.3

6 years ago

1.3.2

6 years ago

1.3.1

6 years ago

1.3.0

6 years ago

1.2.58

6 years ago

1.2.57

6 years ago

1.2.56

6 years ago

1.2.55

6 years ago

1.2.54

6 years ago

1.2.53

6 years ago

1.2.52

6 years ago

1.2.51

6 years ago

1.2.50

6 years ago

1.2.49

6 years ago

1.2.48

6 years ago

1.2.47

6 years ago

1.2.46

6 years ago

1.2.45

6 years ago

1.2.44

6 years ago

1.2.42

6 years ago

1.2.41

6 years ago

1.2.40

6 years ago

1.2.39

6 years ago

1.2.38

6 years ago

1.2.37

6 years ago

1.2.36

6 years ago

1.2.35

6 years ago

1.2.34

6 years ago

1.2.33

6 years ago

1.2.32

6 years ago

1.2.31

6 years ago

1.2.30

6 years ago

1.2.29

6 years ago

1.2.28

6 years ago

1.2.27

6 years ago

1.2.26

6 years ago

1.2.25

6 years ago

1.2.24

6 years ago

1.2.23

6 years ago

1.2.22

6 years ago

1.2.21

6 years ago

1.2.19

6 years ago

1.2.18

6 years ago

1.2.17

6 years ago

1.2.16

6 years ago

1.2.15

6 years ago

1.2.14

6 years ago

1.2.13

6 years ago

1.2.12

6 years ago

1.2.11

6 years ago

1.2.10

6 years ago

1.2.9

6 years ago

1.2.8

6 years ago

1.2.7

6 years ago

1.2.5

6 years ago

1.2.4

6 years ago

1.2.3

6 years ago

1.2.2

6 years ago

1.2.1

6 years ago

1.2.0

6 years ago

1.1.0

6 years ago

1.0.36

6 years ago

1.0.35

6 years ago

1.0.34

6 years ago

1.0.33

6 years ago

1.0.32

6 years ago

1.0.31

6 years ago

1.0.30

6 years ago

1.0.29

6 years ago

1.0.28

6 years ago

1.0.27

6 years ago

1.0.26

6 years ago

1.0.25

6 years ago

1.0.24

6 years ago

1.0.23

6 years ago

1.0.22

6 years ago

1.0.21

6 years ago

1.0.20

6 years ago

1.0.19

6 years ago

1.0.18

6 years ago

1.0.17

6 years ago

1.0.16

6 years ago

1.0.15

6 years ago

1.0.14

6 years ago

1.0.13

6 years ago

1.0.12

6 years ago

1.0.11

6 years ago

1.0.10

6 years ago

1.0.9

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago

0.7.297

6 years ago

0.7.296

6 years ago

0.7.294

6 years ago

0.7.293

6 years ago

0.7.292

6 years ago

0.7.291

6 years ago

0.7.290

6 years ago

0.7.289

6 years ago

0.7.288

6 years ago

0.7.287

6 years ago

0.7.286

6 years ago

0.7.285

6 years ago

0.7.284

6 years ago

0.7.283

6 years ago

0.7.282

6 years ago

0.7.281

6 years ago

0.7.280

6 years ago

0.7.279

6 years ago

0.7.278

6 years ago

0.7.277

6 years ago

0.7.276

6 years ago

0.7.275

6 years ago

0.7.274

6 years ago

0.7.273

6 years ago

0.7.272

6 years ago

0.7.271

6 years ago

0.7.270

6 years ago

0.7.269

6 years ago

0.7.268

6 years ago

0.7.267

6 years ago

0.7.266

6 years ago

0.7.265

6 years ago

0.7.264

6 years ago

0.7.263

6 years ago

0.7.262

6 years ago

0.7.261

6 years ago

0.7.260

6 years ago

0.7.259

6 years ago

0.7.258

6 years ago

0.7.257

6 years ago

0.7.256

6 years ago

0.7.255

6 years ago

0.7.254

6 years ago

0.7.253

6 years ago

0.7.252

6 years ago

0.7.251

6 years ago

0.7.250

6 years ago

0.7.249

6 years ago

0.7.248

6 years ago

0.7.247

6 years ago

0.7.246

6 years ago

0.7.245

6 years ago

0.7.244

6 years ago

0.7.243

6 years ago

0.7.242

6 years ago

0.7.241

6 years ago

0.7.240

6 years ago

0.7.239

6 years ago

0.7.238

6 years ago

0.7.237

6 years ago

0.7.236

6 years ago

0.7.235

6 years ago

0.7.234

6 years ago

0.7.233

6 years ago

0.7.232

6 years ago

0.7.231

6 years ago

0.7.230

6 years ago

0.7.229

6 years ago

0.7.228

6 years ago

0.7.227

6 years ago

0.7.226

6 years ago

0.7.225

6 years ago

0.7.224

6 years ago

0.7.223

6 years ago

0.7.222

6 years ago

0.7.221

6 years ago

0.7.220

6 years ago

0.7.219

6 years ago

0.7.218

6 years ago

0.7.217

6 years ago

0.7.216

6 years ago

0.7.215

6 years ago

0.7.214

6 years ago

0.7.213

6 years ago

0.7.212

6 years ago

0.7.211

6 years ago

0.7.210

6 years ago

0.7.209

6 years ago

0.7.208

6 years ago

0.7.207

6 years ago

0.7.206

6 years ago