refactor: integration tests structure refactor

This commit is contained in:
ppedziwiatr
2022-03-13 00:31:45 +01:00
parent e27137d6ff
commit d357118894
10 changed files with 35 additions and 29 deletions

View File

@@ -12,7 +12,11 @@ jobs:
run: yarn run: yarn
- name: Run unit tests - name: Run unit tests
run: yarn test:unit run: yarn test:unit
- name: Run integration tests - name: Run integration tests [basic]
run: yarn test:integration run: yarn test:integration:basic
- name: Run integration tests [internal-writes]
run: yarn test:integration:internal-writes
- name: Run integration tests [wasm]
run: yarn test:integration:wasm
- name: Run regression tests - name: Run regression tests
run: yarn test:regression run: yarn test:regression

View File

@@ -27,7 +27,9 @@
"yalc:publish": "yarn build && yalc publish --push", "yalc:publish": "yarn build && yalc publish --push",
"test": "jest", "test": "jest",
"test:unit": "jest ./src/__tests__/unit", "test:unit": "jest ./src/__tests__/unit",
"test:integration": "jest ./src/__tests__/integration", "test:integration:basic": "jest ./src/__tests__/integration/basic",
"test:integration:internal-writes": "jest ./src/__tests__/integration/internal-writes",
"test:integration:wasm": "jest ./src/__tests__/integration/wasm",
"test:regression": "node ./node_modules/.bin/jest ./src/__tests__/regression" "test:regression": "node ./node_modules/.bin/jest ./src/__tests__/regression"
}, },
"license": "MIT", "license": "MIT",

View File

@@ -5,7 +5,7 @@ import Arweave from 'arweave';
import { JWKInterface } from 'arweave/node/lib/wallet'; import { JWKInterface } from 'arweave/node/lib/wallet';
import { Contract, LoggerFactory, SmartWeave, SmartWeaveNodeFactory } from '@smartweave'; import { Contract, LoggerFactory, SmartWeave, SmartWeaveNodeFactory } from '@smartweave';
import path from 'path'; import path from 'path';
import { addFunds, mineBlock } from './_helpers'; import { addFunds, mineBlock } from '../_helpers';
let arweave: Arweave; let arweave: Arweave;
let arlocal: ArLocal; let arlocal: ArLocal;
@@ -39,7 +39,7 @@ describe('Testing the SmartWeave client', () => {
wallet = await arweave.wallets.generate(); wallet = await arweave.wallets.generate();
await addFunds(arweave, wallet); await addFunds(arweave, wallet);
contractSrc = fs.readFileSync(path.join(__dirname, 'data/very-complicated-contract.js'), 'utf8'); contractSrc = fs.readFileSync(path.join(__dirname, '../data/very-complicated-contract.js'), 'utf8');
// deploying contract using the new SDK. // deploying contract using the new SDK.
const contractTxId = await smartweave.createContract.deploy({ const contractTxId = await smartweave.createContract.deploy({

View File

@@ -5,7 +5,7 @@ import Arweave from 'arweave';
import { JWKInterface } from 'arweave/node/lib/wallet'; import { JWKInterface } from 'arweave/node/lib/wallet';
import { Contract, LoggerFactory, SmartWeave, SmartWeaveNodeFactory } from '@smartweave'; import { Contract, LoggerFactory, SmartWeave, SmartWeaveNodeFactory } from '@smartweave';
import path from 'path'; import path from 'path';
import { addFunds, mineBlock } from './_helpers'; import { addFunds, mineBlock } from '../_helpers';
interface ExampleContractState { interface ExampleContractState {
counter: number; counter: number;
@@ -50,8 +50,8 @@ describe('Testing the SmartWeave client', () => {
wallet = await arweave.wallets.generate(); wallet = await arweave.wallets.generate();
await addFunds(arweave, wallet); await addFunds(arweave, wallet);
contractSrc = fs.readFileSync(path.join(__dirname, 'data/example-contract.js'), 'utf8'); contractSrc = fs.readFileSync(path.join(__dirname, '../data/example-contract.js'), 'utf8');
initialState = fs.readFileSync(path.join(__dirname, 'data/example-contract-state.json'), 'utf8'); initialState = fs.readFileSync(path.join(__dirname, '../data/example-contract-state.json'), 'utf8');
// deploying contract using the new SDK. // deploying contract using the new SDK.
const contractTxId = await smartweave.createContract.deploy({ const contractTxId = await smartweave.createContract.deploy({

View File

@@ -5,8 +5,8 @@ import Arweave from 'arweave';
import { JWKInterface } from 'arweave/node/lib/wallet'; import { JWKInterface } from 'arweave/node/lib/wallet';
import { Contract, LoggerFactory, SmartWeave, SmartWeaveNodeFactory } from '@smartweave'; import { Contract, LoggerFactory, SmartWeave, SmartWeaveNodeFactory } from '@smartweave';
import path from 'path'; import path from 'path';
import { TsLogFactory } from '../../logging/node/TsLogFactory'; import { TsLogFactory } from '../../../logging/node/TsLogFactory';
import { addFunds, mineBlock } from './_helpers'; import { addFunds, mineBlock } from '../_helpers';
interface ExampleContractState { interface ExampleContractState {
counter: number; counter: number;
@@ -49,8 +49,8 @@ describe('Testing the SmartWeave client', () => {
wallet = await arweave.wallets.generate(); wallet = await arweave.wallets.generate();
await addFunds(arweave, wallet); await addFunds(arweave, wallet);
contractSrc = fs.readFileSync(path.join(__dirname, 'data/example-contract.js'), 'utf8'); contractSrc = fs.readFileSync(path.join(__dirname, '../data/example-contract.js'), 'utf8');
initialState = fs.readFileSync(path.join(__dirname, 'data/example-contract-state.json'), 'utf8'); initialState = fs.readFileSync(path.join(__dirname, '../data/example-contract-state.json'), 'utf8');
// deploying contract using the new SDK. // deploying contract using the new SDK.
const contractTxId = await smartweave.createContract.deploy({ const contractTxId = await smartweave.createContract.deploy({

View File

@@ -5,7 +5,7 @@ import Arweave from 'arweave';
import { JWKInterface } from 'arweave/node/lib/wallet'; import { JWKInterface } from 'arweave/node/lib/wallet';
import { Contract, LoggerFactory, SmartWeave, SmartWeaveNodeFactory, timeout } from '@smartweave'; import { Contract, LoggerFactory, SmartWeave, SmartWeaveNodeFactory, timeout } from '@smartweave';
import path from 'path'; import path from 'path';
import { addFunds, mineBlock } from './_helpers'; import { addFunds, mineBlock } from '../_helpers';
let arweave: Arweave; let arweave: Arweave;
let arlocal: ArLocal; let arlocal: ArLocal;
@@ -40,7 +40,7 @@ describe('Testing the SmartWeave client', () => {
wallet = await arweave.wallets.generate(); wallet = await arweave.wallets.generate();
await addFunds(arweave, wallet); await addFunds(arweave, wallet);
contractSrc = fs.readFileSync(path.join(__dirname, 'data/inf-loop-contract.js'), 'utf8'); contractSrc = fs.readFileSync(path.join(__dirname, '../data/inf-loop-contract.js'), 'utf8');
// deploying contract using the new SDK. // deploying contract using the new SDK.
const contractTxId = await smartweave.createContract.deploy({ const contractTxId = await smartweave.createContract.deploy({

View File

@@ -5,8 +5,8 @@ import Arweave from 'arweave';
import { JWKInterface } from 'arweave/node/lib/wallet'; import { JWKInterface } from 'arweave/node/lib/wallet';
import { Contract, LoggerFactory, SmartWeave, SmartWeaveNodeFactory } from '@smartweave'; import { Contract, LoggerFactory, SmartWeave, SmartWeaveNodeFactory } from '@smartweave';
import path from 'path'; import path from 'path';
import { TsLogFactory } from '../../logging/node/TsLogFactory'; import { TsLogFactory } from '../../../logging/node/TsLogFactory';
import { addFunds, mineBlock } from './_helpers'; import { addFunds, mineBlock } from '../_helpers';
import knex from 'knex'; import knex from 'knex';
interface ExampleContractState { interface ExampleContractState {
@@ -60,8 +60,8 @@ describe('Testing the SmartWeave client', () => {
wallet = await arweave.wallets.generate(); wallet = await arweave.wallets.generate();
await addFunds(arweave, wallet); await addFunds(arweave, wallet);
contractSrc = fs.readFileSync(path.join(__dirname, 'data/example-contract.js'), 'utf8'); contractSrc = fs.readFileSync(path.join(__dirname, '../data/example-contract.js'), 'utf8');
initialState = fs.readFileSync(path.join(__dirname, 'data/example-contract-state.json'), 'utf8'); initialState = fs.readFileSync(path.join(__dirname, '../data/example-contract-state.json'), 'utf8');
// deploying contract using the new SDK. // deploying contract using the new SDK.
const contractTxId1 = await smartweave.createContract.deploy({ const contractTxId1 = await smartweave.createContract.deploy({

View File

@@ -12,7 +12,7 @@ import {
SmartWeaveNodeFactory SmartWeaveNodeFactory
} from '@smartweave'; } from '@smartweave';
import path from 'path'; import path from 'path';
import { addFunds, mineBlock } from './_helpers'; import { addFunds, mineBlock } from '../_helpers';
describe('Testing the Profit Sharing Token', () => { describe('Testing the Profit Sharing Token', () => {
let contractSrc: string; let contractSrc: string;
@@ -52,8 +52,8 @@ describe('Testing the Profit Sharing Token', () => {
await addFunds(arweave, wallet); await addFunds(arweave, wallet);
walletAddress = await arweave.wallets.jwkToAddress(wallet); walletAddress = await arweave.wallets.jwkToAddress(wallet);
contractSrc = fs.readFileSync(path.join(__dirname, 'data/token-pst.js'), 'utf8'); contractSrc = fs.readFileSync(path.join(__dirname, '../data/token-pst.js'), 'utf8');
const stateFromFile: PstState = JSON.parse(fs.readFileSync(path.join(__dirname, 'data/token-pst.json'), 'utf8')); const stateFromFile: PstState = JSON.parse(fs.readFileSync(path.join(__dirname, '../data/token-pst.json'), 'utf8'));
initialState = { initialState = {
...stateFromFile, ...stateFromFile,
@@ -117,7 +117,7 @@ describe('Testing the Profit Sharing Token', () => {
it("should properly evolve contract's source code", async () => { it("should properly evolve contract's source code", async () => {
expect((await pst.currentState()).balances[walletAddress]).toEqual(555114); expect((await pst.currentState()).balances[walletAddress]).toEqual(555114);
const newSource = fs.readFileSync(path.join(__dirname, 'data/token-evolve.js'), 'utf8'); const newSource = fs.readFileSync(path.join(__dirname, '../data/token-evolve.js'), 'utf8');
const newSrcTxId = await pst.saveNewSource(newSource); const newSrcTxId = await pst.saveNewSource(newSource);
await mineBlock(arweave); await mineBlock(arweave);

View File

@@ -12,7 +12,7 @@ import {
SmartWeaveNodeFactory SmartWeaveNodeFactory
} from '@smartweave'; } from '@smartweave';
import path from 'path'; import path from 'path';
import { addFunds, mineBlock } from './_helpers'; import { addFunds, mineBlock } from '../_helpers';
describe('Testing the Profit Sharing Token', () => { describe('Testing the Profit Sharing Token', () => {
let contractSrc: string; let contractSrc: string;
@@ -47,8 +47,8 @@ describe('Testing the Profit Sharing Token', () => {
await addFunds(arweave, wallet); await addFunds(arweave, wallet);
walletAddress = await arweave.wallets.jwkToAddress(wallet); walletAddress = await arweave.wallets.jwkToAddress(wallet);
contractSrc = fs.readFileSync(path.join(__dirname, 'data/token-pst.js'), 'utf8'); contractSrc = fs.readFileSync(path.join(__dirname, '../data/token-pst.js'), 'utf8');
const stateFromFile: PstState = JSON.parse(fs.readFileSync(path.join(__dirname, 'data/token-pst.json'), 'utf8')); const stateFromFile: PstState = JSON.parse(fs.readFileSync(path.join(__dirname, '../data/token-pst.json'), 'utf8'));
initialState = { initialState = {
...stateFromFile, ...stateFromFile,
@@ -111,7 +111,7 @@ describe('Testing the Profit Sharing Token', () => {
it("should properly evolve contract's source code", async () => { it("should properly evolve contract's source code", async () => {
expect((await pst.currentState()).balances[walletAddress]).toEqual(555114); expect((await pst.currentState()).balances[walletAddress]).toEqual(555114);
const newSource = fs.readFileSync(path.join(__dirname, 'data/token-evolve.js'), 'utf8'); const newSource = fs.readFileSync(path.join(__dirname, '../data/token-evolve.js'), 'utf8');
const newSrcTxId = await pst.saveNewSource(newSource); const newSrcTxId = await pst.saveNewSource(newSource);
await mineBlock(arweave); await mineBlock(arweave);

View File

@@ -60,7 +60,7 @@ describe('Testing the SmartWeave client for AssemblyScript WASM contract', () =>
contract.connect(wallet); contract.connect(wallet);
await mineBlock(arweave); await mineBlock(arweave);
}); }, 50000);
afterAll(async () => { afterAll(async () => {
await arlocal.stop(); await arlocal.stop();
@@ -110,7 +110,7 @@ describe('Testing the SmartWeave client for AssemblyScript WASM contract', () =>
function: 'increment' function: 'increment'
}); });
expect(result.gasUsed).toEqual(12284823); expect(result.gasUsed).toEqual(12316793);
}); });
it('should return stable gas results', async () => { it('should return stable gas results', async () => {
@@ -125,7 +125,7 @@ describe('Testing the SmartWeave client for AssemblyScript WASM contract', () =>
} }
results.forEach((result) => { results.forEach((result) => {
expect(result.gasUsed).toEqual(12284823); expect(result.gasUsed).toEqual(12316793);
}); });
}); });