From 15a9ea16465783c88a9c736324ca33e2c46d93b4 Mon Sep 17 00:00:00 2001 From: Manu Nelamane Siddalingegowda Date: Thu, 28 May 2020 13:28:21 +0200 Subject: [PATCH] :recycle: Remove unwanted test code --- .../src/12_multisignature_transaction.ts | 13 +- .../test/10_delegate_transaction.spec.ts | 44 ------- .../test/8_transfer_transaction.spec.ts | 116 ------------------ .../test/base_transaction.spec.ts | 10 -- .../test/helpers/test_transaction_class.ts | 5 - .../test/utils/index.spec.ts | 5 - .../test/utils/signatures_validation.spec.ts | 71 ----------- .../test/utils/state_store_mock.ts | 24 ++-- 8 files changed, 16 insertions(+), 272 deletions(-) delete mode 100644 elements/lisk-transactions/test/utils/signatures_validation.spec.ts diff --git a/elements/lisk-transactions/src/12_multisignature_transaction.ts b/elements/lisk-transactions/src/12_multisignature_transaction.ts index 98a4e6113f1..844ff865e8a 100644 --- a/elements/lisk-transactions/src/12_multisignature_transaction.ts +++ b/elements/lisk-transactions/src/12_multisignature_transaction.ts @@ -220,18 +220,7 @@ export class MultisignatureTransaction extends BaseTransaction { } protected validateAsset(): ReadonlyArray { - const schemaErrors = validator.validate( - multisigRegAssetSchema, - this.asset, - ); - const errors = convertToAssetError( - this.id, - schemaErrors, - ) as TransactionError[]; - - if (errors.length > 0) { - return errors; - } + const errors = []; const { mandatoryKeys, optionalKeys, numberOfSignatures } = this.asset; diff --git a/elements/lisk-transactions/test/10_delegate_transaction.spec.ts b/elements/lisk-transactions/test/10_delegate_transaction.spec.ts index 269b42a8b4a..d7acc8d6f3b 100644 --- a/elements/lisk-transactions/test/10_delegate_transaction.spec.ts +++ b/elements/lisk-transactions/test/10_delegate_transaction.spec.ts @@ -105,50 +105,6 @@ describe('Delegate registration transaction class', () => { }); }); - describe('#validateAsset', () => { - it('should no errors', () => { - const errors = (validTestTransaction as any).validateAsset(); - expect(errors).toHaveLength(0); - }); - - it('should return error when asset includes invalid characters', () => { - const invalidTransaction = { - ...validDelegateTransaction, - asset: { - username: '%invalid%username*', - }, - }; - const transaction = new DelegateTransaction(invalidTransaction); - const errors = (transaction as any).validateAsset(); - expect(errors).toHaveLength(1); - }); - - it('should return error when asset includes uppercase', () => { - const invalidTransaction = { - ...validDelegateTransaction, - asset: { - username: 'InValIdUsErNAmE', - }, - }; - const transaction = new DelegateTransaction(invalidTransaction); - const errors = (transaction as any).validateAsset(); - expect(errors).toHaveLength(1); - }); - - it('should error when asset is potential address', () => { - const invalidTransaction = { - ...validDelegateTransaction, - asset: { - username: '1L', - }, - }; - const transaction = new DelegateTransaction(invalidTransaction); - - const errors = (transaction as any).validateAsset(); - expect(errors).toHaveLength(1); - }); - }); - // TODO: Update after updating protocol-specs describe.skip('#applyAsset', () => { it('should call state store', async () => { diff --git a/elements/lisk-transactions/test/8_transfer_transaction.spec.ts b/elements/lisk-transactions/test/8_transfer_transaction.spec.ts index f7455ea79d5..be6b5d9c079 100644 --- a/elements/lisk-transactions/test/8_transfer_transaction.spec.ts +++ b/elements/lisk-transactions/test/8_transfer_transaction.spec.ts @@ -79,122 +79,6 @@ describe('Transfer transaction class', () => { }); }); - // TODO: Update after updating protocol-specs - describe.skip('#validateAsset', () => { - it('should return no errors with a valid transfer transaction', () => { - const errors = (validTransferTestTransaction as any).validateAsset(); - expect(Object.keys(errors)).toHaveLength(0); - }); - - it('should return error with invalid recipientId', () => { - const transferTransactionWithInvalidRecipientId = new TransferTransaction( - { - ...validTransferTransaction, - asset: { - ...validTransferTransaction.asset, - recipientId: '123456', - }, - }, - ); - const errors = (transferTransactionWithInvalidRecipientId as any).validateAsset(); - - expect(errors[0]).toBeInstanceOf(TransactionError); - expect(errors[0].message).toContain( - '\'.recipientId\' should match format "address"', - ); - }); - - it('should return error if recipientId exceed uint64 limit', () => { - const transferTransactionWithInvalidRecipientId = new TransferTransaction( - { - ...validTransferTransaction, - asset: { - ...validTransferTransaction.asset, - recipientId: '19961131544040416558L', - }, - }, - ); - const errors = (transferTransactionWithInvalidRecipientId as any).validateAsset(); - - expect(errors).toHaveLength(1); - expect(errors[0]).toBeInstanceOf(TransactionError); - }); - - it('should return error if recipientId contains leading zeros', () => { - const transferTransactionWithInvalidRecipientId = new TransferTransaction( - { - ...validTransferTransaction, - asset: { - ...validTransferTransaction.asset, - recipientId: '000123L', - }, - }, - ); - const errors = (transferTransactionWithInvalidRecipientId as any).validateAsset(); - - expect(errors).toHaveLength(1); - expect(errors[0]).toBeInstanceOf(TransactionError); - }); - - it('should return error with invalid amount', () => { - const transferTransactionWithInvalidAmount = new TransferTransaction({ - ...validTransferTransaction, - asset: { - ...validTransferTransaction.asset, - amount: '92233720368547758087823474829847337', - }, - }); - const errors = (transferTransactionWithInvalidAmount as any).validateAsset(); - - expect(errors[0]).toBeInstanceOf(TransactionError); - expect(errors[0].message).toEqual( - 'Amount must be a valid number in string format.', - ); - expect(errors[0].dataPath).toEqual('.asset.amount'); - }); - - it('should return error with invalid asset', () => { - const transferTransactionWithInvalidAsset = new TransferTransaction({ - ...validTransferTransaction, - asset: { - ...validTransferTransaction.asset, - data: - 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.', - }, - }); - const errors = (transferTransactionWithInvalidAsset as any).validateAsset(); - - expect(errors[0]).toBeInstanceOf(TransactionError); - }); - - it('should return error if asset data containing null string', () => { - const transferTransactionWithValiddAsset = new TransferTransaction({ - ...validTransferTransaction, - asset: { - ...validTransferTransaction.asset, - data: '\u0000hey:)', - }, - }); - const errors = (transferTransactionWithValiddAsset as any).validateAsset(); - - expect(errors).toHaveLength(1); - expect(errors[0]).toBeInstanceOf(TransactionError); - }); - - it('should return error with asset data containing overflowed string', () => { - const transferTransactionWithInvalidAsset = new TransferTransaction({ - ...validTransferTransaction, - asset: { - data: - 'o2ljg313lzzopdcilxcuy840qzdnmj21hfehd8u63k9jkifpsgxptegi56t8xos现', - }, - }); - const errors = (transferTransactionWithInvalidAsset as any).validateAsset(); - - expect(errors[0]).toBeInstanceOf(TransactionError); - }); - }); - describe('#applyAsset', () => { it('should return no errors', () => { const errors = (validTransferTestTransaction as any).applyAsset(store); diff --git a/elements/lisk-transactions/test/base_transaction.spec.ts b/elements/lisk-transactions/test/base_transaction.spec.ts index 83133a6bc43..752971d2ecb 100644 --- a/elements/lisk-transactions/test/base_transaction.spec.ts +++ b/elements/lisk-transactions/test/base_transaction.spec.ts @@ -29,7 +29,6 @@ import { import * as transferFixture from '../fixtures/transaction_network_id_and_change_order/transfer_transaction_validate.json'; import * as secondSignatureReg from '../fixtures/transaction_multisignature_registration/multisignature_registration_2nd_sig_equivalent_transaction.json'; import { defaultAccount, StateStoreMock } from './utils/state_store_mock'; -import { serializeSignatures } from '../src/utils'; const getAccount = (account: object): any => { const object = { @@ -261,15 +260,6 @@ describe.skip('Base transaction class', () => { ...validTestTransaction.signatures, ); }); - - it('should return a buffer with signatures bytes', () => { - const expectedBuffer = Buffer.concat([ - (validTestTransaction as any).getBasicBytes(), - serializeSignatures((validTestTransaction as any).signatures), - ]); - - expect(validTestTransaction.getBytes()).toEqual(expectedBuffer); - }); }); describe('_validateSchema', () => { diff --git a/elements/lisk-transactions/test/helpers/test_transaction_class.ts b/elements/lisk-transactions/test/helpers/test_transaction_class.ts index d2544fae683..f7edc9df3ef 100644 --- a/elements/lisk-transactions/test/helpers/test_transaction_class.ts +++ b/elements/lisk-transactions/test/helpers/test_transaction_class.ts @@ -14,7 +14,6 @@ */ /* eslint-disable class-methods-use-this,max-classes-per-file,@typescript-eslint/require-await */ import { BaseTransaction } from '../../src/base_transaction'; -import { TransactionJSON } from '../../src/types'; import { TransactionError } from '../../src/errors'; export class TestTransaction extends BaseTransaction { @@ -39,10 +38,6 @@ export class TestTransaction extends BaseTransaction { export class TestTransactionBasicImpl extends BaseTransaction { public static TYPE = 1; - public validateAsset(): TransactionError[] { - return []; - } - public async applyAsset(): Promise { return []; } diff --git a/elements/lisk-transactions/test/utils/index.spec.ts b/elements/lisk-transactions/test/utils/index.spec.ts index 90c5f5c790f..95d81b65c46 100644 --- a/elements/lisk-transactions/test/utils/index.spec.ts +++ b/elements/lisk-transactions/test/utils/index.spec.ts @@ -16,7 +16,6 @@ import { convertBeddowsToLSK, convertLSKToBeddows, getId, - serializeSignatures, prependMinusToPublicKeys, prependPlusToPublicKeys, validateSignature, @@ -47,9 +46,5 @@ describe('transaction utils', () => { it('should have verifySignature', () => { return expect(validateSignature).toBeFunction(); }); - - it('should have serializeSignatures', () => { - return expect(serializeSignatures).toBeFunction(); - }); }); }); diff --git a/elements/lisk-transactions/test/utils/signatures_validation.spec.ts b/elements/lisk-transactions/test/utils/signatures_validation.spec.ts deleted file mode 100644 index 1cf352a4c6f..00000000000 --- a/elements/lisk-transactions/test/utils/signatures_validation.spec.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright © 2020 Lisk Foundation - * - * See the LICENSE file at the top-level directory of this distribution - * for licensing information. - * - * Unless otherwise agreed in a custom licensing agreement with the Lisk Foundation, - * no part of this software, including this file, may be copied, modified, - * propagated, or distributed except according to the terms contained in the - * LICENSE file. - * - * Removal or modification of this copyright notice is prohibited. - * - */ -import * as cryptography from '@liskhq/lisk-cryptography'; -import { - serializeSignatures, - SIGNATURE_NOT_PRESENT, - SIGNATURE_PRESENT, -} from '../../src/utils'; -import * as multisigFixture from '../../fixtures/transaction_multisignature_registration/multisignature_registration_transaction.json'; - -describe('serializeSignatures', () => { - const { signatures } = multisigFixture.testCases.output; - - describe('serializeSignatures', () => { - let cryptoHashSpy: jest.SpyInstance; - - beforeEach(() => { - cryptoHashSpy = jest.spyOn(cryptography, 'hexToBuffer'); - }); - - it('should return empty buffer when signatures is empty array', () => { - expect(serializeSignatures([])).toEqual(Buffer.alloc(0)); - expect(cryptoHashSpy).toHaveBeenCalledTimes(0); - }); - - it('should append 0x01 to non empty signatures', () => { - const expectedOutput = signatures.map(signature => { - return Buffer.concat([ - SIGNATURE_PRESENT, - cryptography.hexToBuffer(signature), - ]); - }); - - expect(serializeSignatures(signatures)).toEqual( - Buffer.concat(expectedOutput), - ); - expect(cryptoHashSpy).toHaveBeenCalledTimes(10); - }); - - it('should append 0x00 to empty signatures', () => { - const mixedSignatures = [signatures[0], '', signatures[1]]; - const expectedOutput = mixedSignatures.map(signature => { - if (signature.length === 0) { - return SIGNATURE_NOT_PRESENT; - } - - return Buffer.concat([ - SIGNATURE_PRESENT, - cryptography.hexToBuffer(signature), - ]); - }); - - expect(serializeSignatures(mixedSignatures)).toEqual( - Buffer.concat(expectedOutput), - ); - expect(cryptoHashSpy).toHaveBeenCalledTimes(4); - }); - }); -}); diff --git a/elements/lisk-transactions/test/utils/state_store_mock.ts b/elements/lisk-transactions/test/utils/state_store_mock.ts index 892a920d976..160bbb5ad2f 100644 --- a/elements/lisk-transactions/test/utils/state_store_mock.ts +++ b/elements/lisk-transactions/test/utils/state_store_mock.ts @@ -12,11 +12,12 @@ * Removal or modification of this copyright notice is prohibited. */ /* eslint-disable @typescript-eslint/explicit-member-accessibility */ +import { hexToBuffer } from '@liskhq/lisk-cryptography'; import { Account, TransactionJSON, BlockHeader } from '../../src/types'; import { AccountState, ChainState } from '../../src/base_transaction'; export const defaultAccount = { - publicKey: undefined, + publicKey: Buffer.from(''), username: null, isDelegate: 0, balance: BigInt('0'), @@ -71,16 +72,20 @@ export class StateStoreMock { this.account = { // eslint-disable-next-line @typescript-eslint/require-await - get: async (address: string): Promise => { - const account = this.accountData.find(acc => acc.address === address); + get: async (address: Buffer): Promise => { + const account = this.accountData.find(acc => + acc.address.equals(address), + ); if (!account) { throw new Error('Account not defined'); } return { ...account }; }, // eslint-disable-next-line @typescript-eslint/require-await - getOrDefault: async (address: string): Promise => { - const account = this.accountData.find(acc => acc.address === address); + getOrDefault: async (address: Buffer): Promise => { + const account = this.accountData.find(acc => + acc.address.equals(address), + ); if (!account) { return { ...defaultAccount, address }; } @@ -93,9 +98,9 @@ export class StateStoreMock { } return account; }, - set: (address: string, account: Account): void => { - const index = this.accountData.findIndex( - acc => acc.address === address, + set: (address: Buffer, account: Account): void => { + const index = this.accountData.findIndex(acc => + acc.address.equals(address), ); if (index > -1) { this.accountData[index] = account; @@ -106,8 +111,9 @@ export class StateStoreMock { }; this.chain = { - networkIdentifier: + networkIdentifier: hexToBuffer( additionalInfo?.networkIdentifier ?? defaultNetworkIdentifier, + ), lastBlockHeader: additionalInfo?.lastBlockHeader ?? ({} as BlockHeader), lastBlockReward: additionalInfo?.lastBlockReward ?? BigInt(0), get: async (key: string): Promise =>