Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Regroup and rename test groups in e2e #808

Merged
merged 2 commits into from
Sep 23, 2024

Merge remote-tracking branch 'origin/eth-rollup-develop' into feature…

6eacb1e
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Merged

Regroup and rename test groups in e2e #808

Merge remote-tracking branch 'origin/eth-rollup-develop' into feature…
6eacb1e
Select commit
Loading
Failed to load commit list.
GitHub Actions / E2E report yarn test-parallel --max-workers=10 succeeded Sep 23, 2024 in 0s

E2E report yarn test-parallel --max-workers=10 ✅

Tests passed successfully

✅ e2eTests/reports/junit.xml-cada2fd0-7986-11ef-a967-814b51d883fe.xml

223 tests were completed in 835s with 217 passed, 0 failed and 6 skipped.

Test suite Passed Failed Skipped Time
test/fees/api.tx.fees.test.ts 3✅ 35s
test/parallel/assetRegistry.getTradeable.rpc.test.ts 7✅ 29s
test/parallel/feeLock.API.feePayment.parallel.test.ts 5✅ 299s
test/parallel/feeLock.API.rpcValueThresholds.test.ts 2✅ 71s
test/parallel/feeLock.API.swapValueThresholds.test.ts 3✅ 179s
test/parallel/feeLock.API.unlocking.test.ts 5✅ 382s
test/parallel/feelock.autounlock.test.ts 1✅ 120s
test/parallel/identity-pallet.API.mainUseCases.test.ts 3✅ 83s
test/parallel/metamask.transfer.test.ts 6✅ 155s
test/parallel/rolldown.withdraw.error.test.ts 1✅ 35s
test/parallel/sdk.API.rpc.test.ts 3✅ 35s
test/parallel/tips.swapOperations.test.ts 6✅ 23s
test/parallel/xyk-pallet.API.accuracy.no.connected.MGA.fees.test.ts 1✅ 59s
test/parallel/xyk-pallet.API.accuracy.tx.fees.test.ts 2✅ 94s
test/parallel/xyk-pallet.API.burnLiquidity.error.test.ts 3✅ 203s
test/parallel/xyk-pallet.API.burnLiquidity.test.ts 3✅ 227s
test/parallel/xyk-pallet.API.buyAsset.test.ts 6✅ 329s
test/parallel/xyk-pallet.API.fees.tripleTokens.test.ts 9✅ 461s
test/parallel/xyk-pallet.API.mintLiquidity.error.test.ts 5✅ 316s
test/parallel/xyk-pallet.API.mintLiquidity.test.ts 2✅ 107s
test/parallel/xyk-pallet.API.overflow.test.ts 4✅ 6⚪ 136s
test/parallel/xyk-pallet.API.payment-info.test.ts 6✅ 35s
test/parallel/xyk-pallet.API.pool.test.ts 9✅ 305s
test/parallel/xyk-pallet.API.poolVestedToken.test.ts 4✅ 400s
test/parallel/xyk-pallet.API.provideLiquidity.test.ts 4✅ 179s
test/parallel/xyk-pallet.API.sellAsset.test.ts 5✅ 292s
test/parallel/xyk-pallet.API.testMGArequired.test.ts 4✅ 179s
test/parallel/xyk-pallet.API.treasury.no.connected.mangata.test.ts 4✅ 203s
test/parallel/xyk-pallet.asset.buy.test.ts 2✅ 119s
test/parallel/xyk-pallet.asset.register.test.ts 10✅ 347s
test/parallel/xyk-pallet.asset.sell.test.ts 2✅ 119s
test/parallel/xyk-pallet.asset.transfer.test.ts 2✅ 83s
test/parallel/xyk-pallet.L1asset.register.update.test.ts 10✅ 340s
test/parallel/xyk-pallet.liquidity.test.ts 3✅ 161s
test/parallel/xyk-pallet.MPL.test.ts 4✅ 328s
test/parallel/xyk-pallet.MPL.vesting.native.test.ts 3✅ 83s
test/parallel/xyk-pallet.MPL.vesting.test.ts 2✅ 143s
test/parallel/xyk-pallet.pool.test.ts 2✅ 83s
test/parallel/xyk-pallet.sudo.security.test.ts 4✅ 71s
test/parallel/xyk-pallet.sudo.test.ts 2✅ 47s
test/parallel/xyk-rpc.calculate.burnAmount.test.ts 7✅ 83s
test/parallel/xyk-rpc.calculate.by.id.test.ts 15✅ 71s
test/parallel/xyk-rpc.calculate.test.ts 4✅ 71s
test/parallel/xyk-rpc.errors.test.ts 19✅ 23s
test/staking/candidates.staking.test.ts 4✅ 155s
test/staking/candidates2.staking.test.ts 1✅ 82s
test/staking/sudo.staking.test.ts 4✅ 65s
test/story/story.LP.test.ts 1✅ 148s

✅ test/fees/api.tx.fees.test.ts

✅ Fees : Transfers are about 4~ MGX
✅ Fees : UPD You can no longer pay fees to KSM
✅ Fees : UPD You can no longer pay fees to TUR

✅ test/parallel/assetRegistry.getTradeable.rpc.test.ts

AssetRegistry RPC -
  ✅ GIVEN a token that does not exist on the asset registry THEN it won't be returned in RPC
  ✅ GIVEN a token that does exist on the asset registry AND name is empty and symbol is empty and operation disabled is not set THEN it won't be returned in RPC
  ✅ GIVEN a token that does exist on the asset registry AND name is not empty and symbol is empty and operation disabled is not set THEN it won't be returned in RPC
  ✅ GIVEN a token that does exist on the asset registry AND name is not empty and symbol is not empty and operation disabled is not set THEN its returned in RPC
  ✅ GIVEN a token that does exist on the asset registry AND name is not empty and symbol is not empty and operation disabled is false THEN its returned in RPC
  ✅ GIVEN a token that does exist on the asset registry AND name is not empty and symbol is not empty and operation disabled is true THEN its not returned in RPC
  ✅ GIVEN a token that belongs to a pool WHEN pool is not disabled THEN the token is not filtered

✅ test/parallel/feeLock.API.feePayment.parallel.test.ts

✅ gasless- GIVEN a feeLock configured WHEN a swap happens THEN fees are not charged but locked instead
✅ gasless- GIVEN a correct config for gasless swaps WHEN the user runs unlock-fee THEN fees are not charged for token unlockFee
✅ gasless- High-value swaps are rejected from the txn pool if they would fail before the percentage fee is charged
✅ gasless- For low-value swaps, token reservation status and pallet storage are altered in accordance with the timeout mechanism
✅ gasless- High-value swaps when successful are not charged txn fee or token locked, but the percentage fee is charged

✅ test/parallel/feeLock.API.rpcValueThresholds.test.ts

✅ gasless- isFree depends on the token and the sell valuation
✅ gasless- isFree works same as multiswap of two

✅ test/parallel/feeLock.API.swapValueThresholds.test.ts

✅ gasless- Given a feeLock correctly configured WHEN the user swaps two tokens defined in the thresholds AND swapValue > threshold THEN the extrinsic is correctly submitted AND No locks AND no fees
✅ gasless- Given a feeLock correctly configured WHEN the user swaps two tokens defined in the thresholds AND the user has enough MGAs AND swapValue < threshold THEN some MGAs will be locked
✅ gasless- Given a feeLock correctly configured WHEN the user swaps two tokens that are not defined in the thresholds AND the user has not enough MGAs AND swapValue > threshold THEN the extrinsic can not be submited

✅ test/parallel/feeLock.API.unlocking.test.ts

✅ gasless- GIVEN some locked tokens and no more free MGX WHEN another tx is submitted AND lock period did not finished THEN the operation can not be submitted
✅ gasless- GIVEN some locked tokens and no more free MGX WHEN another tx is submitted AND lock period finished THEN the operation can be submitted ( unlock before locking )
✅ gasless- GIVEN some locked tokens WHEN querying accountFeeLockData THEN the amount matches with locked tokens AND lastFeeLockBlock matches with the block when tokens were locked
✅ gasless- GIVEN some locked tokens and lastFeeLockBlock is lower than current block WHEN release feeLock is requested THEN the tokens are unlocked
✅ gasless- GIVEN a lock WHEN the period is N THEN the tokens can not be unlocked before that period

✅ test/parallel/feelock.autounlock.test.ts

✅ [gasless] Happy path: automatic-unlock

✅ test/parallel/identity-pallet.API.mainUseCases.test.ts

Identity pallet tests: Main use cases
  ✅ Check setter & getters for identity pallet and reserves 5k mgas
  ✅ Check that a user can unset the name with identity pallet and tokens are unreserved
  ✅ Check that a user can sub one address

✅ test/parallel/metamask.transfer.test.ts

Tests with Metamask signing: Test that with current data, txs can be signed
  ✅ GIVEN sign extrinsic by using privateKey of another ethUser THEN receive error
  ✅ Transfer tokens with an incorrect chainId - must fail
  ✅ Transfer tokens
  ✅ Mint liquidity
  ✅ Burn liquidity
  ✅ Create batch function

✅ test/parallel/rolldown.withdraw.error.test.ts

Rolldown withdraw error
  ✅ withdrawing token which does not exist should return correct error

✅ test/parallel/sdk.API.rpc.test.ts

SDK tests for rpc functions
  ✅ Calculate Sell / buy / id
  ✅ Get Burn amount , maxInstant burn amount
  ✅ Calculate balanced sell amount

✅ test/parallel/tips.swapOperations.test.ts

Tips - Tips are not allowed for swaps
  ✅ multiswapSellAsset tips operations are forbidden
  ✅ multiswapBuyAsset tips operations are forbidden
  ✅ sellAsset tips operations are forbidden
  ✅ buyAsset tips operations are forbidden
  ✅ transfer tips operations are allowed
  ✅ mint tips operations are allowed

✅ test/parallel/xyk-pallet.API.accuracy.no.connected.MGA.fees.test.ts

✅ xyk-pallet - Assets substracted are incremented by 1 - SellAsset

✅ test/parallel/xyk-pallet.API.accuracy.tx.fees.test.ts

✅ xyk-pallet - Calculate required MGA fee - CreatePool
✅ xyk-pallet - Calculate required MGA fee - BuyAsset

✅ test/parallel/xyk-pallet.API.burnLiquidity.error.test.ts

xyk-pallet - Burn liquidity tests: BurnLiquidity Errors:
  ✅ Burn liquidity assets that does not belong to any pool
  ✅ Burn liquidity  for more assets than the liquidity pool has issued
  ✅ Burn someone else liquidities

✅ test/parallel/xyk-pallet.API.burnLiquidity.test.ts

xyk-pallet - Burn liquidity tests: when burning liquidity you can
  ✅ Get affected after a transaction that devaluates X wallet & pool states with [0,0]
  ✅ Burning liquidities provides Burn and settle
  ✅ Burning liquidities generates a Liquidity burned event

✅ test/parallel/xyk-pallet.API.buyAsset.test.ts

xyk-pallet - Buy assets tests: BuyAssets Errors:
  ✅ Buy assets that does not belong to any pool
  ✅ Buy more assets than exists in the pool
  ✅ Buy all assets from the the pool
  ✅ Buy assets with a high expectation: maxInput -1
xyk-pallet - Buy assets tests: Buying assets you can
  ✅ Leave only one asset in the pool
  ✅ Buy from a wallet I own into a wallet I do not own

✅ test/parallel/xyk-pallet.API.fees.tripleTokens.test.ts

xyk-pallet -
  ✅ User can pay a Tx with only MGA
  ✅ User can pay a Tx with only ETH
✅ User can't pay a Tx with only Arbitrum-Eth
✅ GIVEN User has enough GASP & enough ETH THEN Fees are charged in GASP
✅ GIVEN User has a very limited amount of GASP & enough ETH THEN Fees are charged in ETH
✅ GIVEN User has a very limited GASP & a very limited ETH AND we have GASP-tok1 pool WHEN the Tx is a swap tok1 to tok2 above the “threshold” THEN operation succeed
✅ GIVEN User has a very limited GASP & a very limited ETH AND we have GASP-tok1 pool WHEN the Tx is a swap tok2 to tok1 above the “threshold” THEN operation succeed
✅ GIVEN User has a very limited amount of GASP & a minimal amount of Eth AND the Tx is a swap below the “threshold” THEN we receive client error
✅ User, when paying with eth, have to pay 1/30000 eth per GASP spent.

✅ test/parallel/xyk-pallet.API.mintLiquidity.error.test.ts

xyk-pallet - Mint liquidity tests: MintLiquidity Errors:
  ✅ Mint liquidity when not enough assetY for minting Xamount
  ✅ Mint liquidity when not enough assetX for minting Yamount
  ✅ Mint liquidity assets that does not belong to any pool
  ✅ Mint liquidity more assets than I own
  ✅ Min liquidity, SecondAssetAmount parameter expectation not met

✅ test/parallel/xyk-pallet.API.mintLiquidity.test.ts

xyk-pallet - Mint liquidity tests: with minting you can
  ✅ Add all the wallet assets to the pool
  ✅ Expect an event when liquidity is minted

✅ test/parallel/xyk-pallet.API.overflow.test.ts

xyk-pallet - Check operations are not executed because of overflow in asset token
  ✅ Create pool of [MAX,MAX]: OverFlow [a+b] - liquidityAsset calculation
  ✅ Minting Max+1 tokens operation fails
  ⚪ Transfer [MAX] assets to other user when that user has 1 asset. Max+1 => overflow.
xyk-pallet - Operate with a pool close to overflow
  ✅ Sell [MAX -2] assets to a wallet with Max-1000,1000 => overflow.
  ✅ Buy [100] assets to a wallet with Max-1000,1000 => overflow.
  ⚪ Mint liquidities [1000] assets to a wallet with Max-1000,1000 => overflow.
  ⚪ [BUG] Burn liquidities [MAX -1] assets to a wallet wich is full => overflow. NOT  a bug https://trello.com/c/J3fzuwH5
xyk-pallet - Operate with a user account close to overflow
  ⚪ Sell a few assets to a wallet that is full => overflow. NOT A BUG: https://trello.com/c/J3fzuwH5
  ⚪ Buy a few assets to a wallet that is full  => overflow. NOT A BUG: https://trello.com/c/J3fzuwH5
xyk-pallet - Operate with a highly unbalanced pool [mg - newAsset]
  ⚪ [BUG] Buy a few assets to a wallet linked to MGA  => overflow.

✅ test/parallel/xyk-pallet.API.payment-info.test.ts

✅ GIVEN a paymentInfo request, WHEN extrinsic is sellAsset  THEN zero is returned.
✅ GIVEN a paymentInfo request, WHEN extrinsic is multiswapBuyAsset THEN  zero is returned
✅ GIVEN a paymentInfo request, WHEN extrinsic is mintLiquidityEvent THEN non-zero is returned
✅ GIVEN a paymentInfo request, WHEN extrinsic is compoundRewards THEN non-zero is returned
✅ GIVEN a paymentInfo request, WHEN extrinsic is provideLiquidityWithId THEN non-zero is returned
✅ GIVEN a paymentInfo request, WHEN extrinsic is a batch with a sell/buy operation THEN non-zero is returned AND the extrinsic will fail because sell/buy are forbidden in batches tx

✅ test/parallel/xyk-pallet.API.pool.test.ts

xyk-pallet - Poll creation: Errors:
  ✅ Create x-y and y-x pool
  ✅ Create pool with zero
  ✅ Not enough assets
xyk-pallet - Pool tests: a pool can:
  ✅ be minted
  ✅ be burn
xyk-pallet - Pool opeations: Simmetry
  ✅ GetBalance x-y and y-x pool
  ✅ Minting x-y and y-x pool
  ✅ Burning x-y and y-x pool
  ✅ GetLiquidityAssetID x-y and y-x pool

✅ test/parallel/xyk-pallet.API.poolVestedToken.test.ts

xyk-pallet - Vested token tests: which action you can do with vesting token
  ✅ xyk-pallet- check that vested liqidity tokens can not be used for burning or transfering
  ✅ xyk-pallet- check that unlocking tokens are free to use when the relock time is done
  ✅ xyk-pallet- check that all unlocking vesting tokens can be burned
  ✅ xyk-pallet- check that if pool not promoted then the extrinsic failed

✅ test/parallel/xyk-pallet.API.provideLiquidity.test.ts

✅ Function provideLiquidityWithConversion does not work with non-mga paired token
✅ A user without any liq token, can use provideLiquidityWithConversion to mint some tokens.
✅ A user without any liq token, can use provideLiquidityWithConversion to mint some tokens on a promoted pool.
✅ A user who uses provideLiquidityWithConversion and other who do manually a swap + mint, gets the similar ratio of liquidity tokens.

✅ test/parallel/xyk-pallet.API.sellAsset.test.ts

xyk-pallet - Sell assets tests: SellAsset Errors:
  ✅ Sell assets that does not belong to any pool
  ✅ Try sell more assets than owned
  ✅ Sell assets with a high expectation: limit +1
xyk-pallet - Sell assets tests: Selling Assets you can
  ✅ Sell assets with a high expectation: limit - OK
  ✅ Sell assets from a wallet I own into a wallet I do not own: limit

✅ test/parallel/xyk-pallet.API.testMGArequired.test.ts

Wallets unmodified
  ✅ xyk-pallet - User Balance - Creating a pool requires paying fees
  ✅ xyk-pallet - User Balance - mint liquidity requires paying fees
✅ xyk-pallet - User Balance - Selling an asset does not require paying fees
✅ xyk-pallet - User Balance - Buying an asset does not require paying fees

✅ test/parallel/xyk-pallet.API.treasury.no.connected.mangata.test.ts

xyk-pallet - treasury tests [No Mangata]: on treasury we store
  ✅ assets won when assets are sold - 5 [no connected to MGA]
  ✅ assets won when assets are sold - 1 [rounding] [no connected to MGA]
  ✅ assets won when assets are bought - 2 [no connected to MGA]
  ✅ assets won when assets are bought - 1 [no connected to MGA]

✅ test/parallel/xyk-pallet.asset.buy.test.ts

✅ xyk-pallet - AssetsOperation: buyAsset [maxAmountIn = 1M], buy asset
✅ xyk-pallet - AssetsOperation: buyAsset [maxAmountIn = 1M], sell a bought asset

✅ test/parallel/xyk-pallet.asset.register.test.ts

✅ register new asset from sudo user
✅ try to register a new asset from non-sudo user, expect to fail
✅ register new asset and then update it by sudo user
✅ register new asset and then update it by non sudo user, expect to fail
✅ register new asset and then update it without the location
✅ register new asset and then update it without fee
✅ register asset and then try to register new one with the same assetId, expect to conflict
✅ register asset with xyk disabled and try to create a pool, expect to fail
✅ register asset with xyk undefined and try to create a pool, expect success
✅ register asset with xyk enabled and try to create a pool, expect success

✅ test/parallel/xyk-pallet.asset.sell.test.ts

✅ xyk-pallet - AssetsOperation: sellAsset [minAmountOut = 0] , first to second currency
✅ xyk-pallet - AssetsOperation: sellAsset [minAmountOut = 0], sell an already sold asset

✅ test/parallel/xyk-pallet.asset.transfer.test.ts

✅ xyk-pallet - AssetsOperation: transferAsset
✅ xyk-pallet - AssetsOperation: transferAll

✅ test/parallel/xyk-pallet.L1asset.register.update.test.ts

✅ Asset can be created by a sudo user
✅ Asset can't be created by a regular user
✅ GIVEN Create one asset with the same address but different chains THEN Operations pass
✅ GIVEN Create one asset with the same address and same chain THEN Operation fail
✅ GIVEN 2 assets which have been created by registerAsset and registerL1Asset THEN Their IDs are consistent
update L1AssetData-
  ✅ Asset can be updated by a sudo user
  ✅ Asset can't be updated by a regular user
  ✅ GIVEN Update asset so that addresses match but chains are different from existing ones THEN Operation pass
  ✅ GIVEN Update asset so so that addresses & chain matches with some existing ones THEN Operation fail
  ✅ GIVEN An asset created by registerAsset AND It has been updated by updateL1Asset THEN It is now accessible through IdToL1Asset

✅ test/parallel/xyk-pallet.liquidity.test.ts

✅ xyk-pallet - Liqudity : Burn part of the liquidity
✅ xyk-pallet - Liqudity : Burn all the liquidity
✅ xyk-pallet - LiquidityOperation: mintLiquidity

✅ test/parallel/xyk-pallet.MPL.test.ts

MPL: Delegator
  ✅ join as delegator > verify account balances are reserved +  mpl storage
MPL: Collators
  ✅ join as collator > verify account balances are reserved + mpl checks
  ✅ join as collator + activate  > acount balances are reserved + mpl checks
MPL: Collators - Activated liq
  ✅ join as collator with activated liq. > verify account balances are reserved + mpl checks

✅ test/parallel/xyk-pallet.MPL.vesting.native.test.ts

Vesting-native
  ✅ As a user, I can use MGX vested to move tokens to MPL pallet
  ✅ As a user, I can use MGX vested from MPL to staking
  ✅ As a user, I can revert MGX vested from MPL to vesting pallet

✅ test/parallel/xyk-pallet.MPL.vesting.test.ts

Vesting
  ✅ As a user, I can use vested tokens to mint
  ✅ As a user, I can activate vesting-minted tokens only if reserved

✅ test/parallel/xyk-pallet.pool.test.ts

✅ xyk-pallet - Pool tests: createPool and validate liq token
✅ xyk-pallet - Pool tests: createPool

✅ test/parallel/xyk-pallet.sudo.security.test.ts

✅ xyk-pallet - SecurityTests - Only sudo can perform actions [tokens.create]
✅ xyk-pallet - SecurityTests - Only sudo can perform actions [tokens.create to itself]
✅ xyk-pallet - SecurityTests - Only sudo can perform actions [tokens.mint]
✅ xyk-pallet - SecurityTests - Only sudo can perform actions [tokens.mint to itself]

✅ test/parallel/xyk-pallet.sudo.test.ts

✅ xyk-pallet - Sudo tests: Sudo Issue an asset
✅ xyk-pallet - Sudo tests: Sudo Issue two  different assets to the same account

✅ test/parallel/xyk-rpc.calculate.burnAmount.test.ts

xyk-rpc - calculate get_burn amount: OK
  ✅ validate parameters - burn from pool [firstIdx->0,secondIdx->1,amount->1000,expected->1000]
  ✅ validate parameters - burn from pool [firstIdx->1,secondIdx->0,amount->1000,expected->1000]
  ✅ validate parameters - burn from pool [firstIdx->0,secondIdx->1,amount->10000,expected->10000]
  ✅ validate parameters - burn from pool [firstIdx->0,secondIdx->1,amount->100000,expected->100000]
xyk-rpc - calculate get_burn amount: Missing requirements
  ✅ validate parameters - get_burn from not generated pool [soldTokenId->0,boughtTokenId->1,amount->1000,expected->0]
  ✅ validate parameters - get_burn from not created assets
xyk-rpc - calculate get_burn amount: RPC result matches with burn amount
  ✅ validate get_burn_amount that matches with real burn operation

✅ test/parallel/xyk-rpc.calculate.by.id.test.ts

xyk-rpc - calculate_buy_price_by_id, calculate_sell_price_by_id
  ✅ validate parameters - buy [soldTokenId->0,boughtTokenId->1,amount->0,expected->1]
  ✅ validate parameters - buy [soldTokenId->0,boughtTokenId->1,amount->1,expected->0]
  ✅ validate parameters - buy [soldTokenId->1,boughtTokenId->2,amount->0,expected->1]
  ✅ validate parameters - buy [soldTokenId->1,boughtTokenId->2,amount->1,expected->2]
  ✅ validate parameters - buy [soldTokenId->2,boughtTokenId->1,amount->1,expected->0]
  ✅ validate parameters - buy [soldTokenId->2,boughtTokenId->3,amount->1,expected->3]
  ✅ validate parameters - buy [soldTokenId->3,boughtTokenId->2,amount->1,expected->3]
  ✅ validate parameters - buy [soldTokenId->3,boughtTokenId->2,amount->2,expected->0]
  ✅ validate parameters - sell [soldTokenId->0,boughtTokenId->1,amount->0,expected->0]
  ✅ validate parameters - sell [soldTokenId->0,boughtTokenId->1,amount->1,expected->0]
  ✅ validate parameters - sell [soldTokenId->1,boughtTokenId->2,amount->0,expected->0]
  ✅ validate parameters - sell [soldTokenId->1,boughtTokenId->2,amount->1,expected->0]
  ✅ validate parameters - sell [soldTokenId->2,boughtTokenId->1,amount->1,expected->0]
  ✅ validate parameters - sell [soldTokenId->3,boughtTokenId->2,amount->1,expected->0]
  ✅ validate parameters - sell [soldTokenId->2,boughtTokenId->3,amount->1,expected->0]

✅ test/parallel/xyk-rpc.calculate.test.ts

✅ xyk-rpc - calculate_sell_price and calculate_buy_price matches, 1000,1000
✅ xyk-rpc - calculate_sell_price and calculate_buy_price matches, 2000,1000
✅ xyk-rpc - calculate_sell_price matches with the real sell
✅ xyk-rpc - calculate_buy_price matches with the real buy

✅ test/parallel/xyk-rpc.errors.test.ts

✅ xyk-rpc - calculate_sell_price validates parameters - Negative params
✅ xyk-rpc - calculate_sell_price validates parameters - Negative params
✅ xyk-rpc - calculate_sell_price validates parameters - Negative params
✅ xyk-rpc - calculate_sell_price validates parameters - Zeroes [inputReserve->1,outputReserve->1,amount->0,expected->0]
✅ xyk-rpc - calculate_sell_price validates parameters - Zeroes [inputReserve->0,outputReserve->0,amount->0,expected->0]
✅ xyk-rpc - calculate_sell_price validates parameters - Zeroes [inputReserve->0,outputReserve->1,amount->1,expected->1]
✅ xyk-rpc - calculate_sell_price validates parameters - Zeroes [inputReserve->0,outputReserve->0,amount->1,expected->0]
✅ xyk-rpc - calculate_buy_price validates parameters - Zeroes [inputReserve->1,outputReserve->1,amount->0,expected->1]
✅ xyk-rpc - calculate_buy_price validates parameters - Zeroes [inputReserve->0,outputReserve->0,amount->0,expected->0]
✅ xyk-rpc - calculate_buy_price validates parameters - Zeroes [inputReserve->0,outputReserve->1,amount->1,expected->0]
✅ xyk-rpc - calculate_buy_price validates parameters - Zeroes [inputReserve->0,outputReserve->0,amount->1,expected->0]
✅ xyk-rpc - calculate_buy_price validates parameters - Zeroes [inputReserve->1,outputReserve->0,amount->0,expected->0]
✅ validate parameters: negative asset ids [soldTokenId->-1,boughtTokenId->0,amount->0,expected->createType(TokenId):: u32: Negative number passed to unsigned type]
✅ validate parameters: negative asset ids [soldTokenId->0,boughtTokenId->-1,amount->0,expected->createType(TokenId):: u32: Negative number passed to unsigned type]
✅ RPC big numbers : negative asset ids [amount->100000000]
✅ RPC big numbers : negative asset ids [amount->100000000000000]
✅ RPC big numbers : negative asset ids [amount->10000000000000000000000]
xyk-rpc - calculate_buy_price_by_id:No pool assotiated with the assets
  ✅ validate parameters [soldTokenId->0,boughtTokenId->1,amount->0,expected->0]
  ✅ validate parameters [soldTokenId->1,boughtTokenId->0,amount->1,expected->0]

✅ test/staking/candidates.staking.test.ts

Test candidates actions
  ✅ A user can become a candidate by joining as candidate
  ✅ A user can only join as candidate with one staking token at the same time
  ✅ A user can not join as candidate with a token that is not enabled ( or MGX )
  ✅ A candidate can select an aggregator by update_candidate_aggregator

✅ test/staking/candidates2.staking.test.ts

Test candidates actions: Collision by liq token
  ✅ A candidate can join to the aggregator list when no more candidate joined with the same staking token

✅ test/staking/sudo.staking.test.ts

Test sudo actions
  ✅ Test that noSudo users cannot do specific operations: addStakingLiquidityToken
  ✅ Test that noSudo users cannot do specific operations: removeStakingLiquidityToken
  ✅ Test that noSudo users cannot do specific operations: setCollatorCommission
  ✅ Test that noSudo users cannot do specific operations: setTotalSelected

✅ test/story/story.LP.test.ts

Story tests > LP
  ✅ Pool wins over 0.3% tokens when 10 swaps are done in the pool [Token - MGA]