Add a regression test for #1550
This commit is contained in:
		@@ -37,15 +37,15 @@ export class DependentOrderHashesTracker {
 | 
			
		||||
        this._zrxTokenAddress = zrxTokenAddress;
 | 
			
		||||
    }
 | 
			
		||||
    public getDependentOrderHashesByERC721ByMaker(makerAddress: string, tokenAddress: string): string[] {
 | 
			
		||||
        let orderHashSets: Array<Set<string>> = [];
 | 
			
		||||
        if (
 | 
			
		||||
            this._orderHashesByERC721AddressByTokenIdByMakerAddress[makerAddress] &&
 | 
			
		||||
            this._orderHashesByERC721AddressByTokenIdByMakerAddress[makerAddress][tokenAddress]
 | 
			
		||||
            _.isUndefined(this._orderHashesByERC721AddressByTokenIdByMakerAddress[makerAddress]) ||
 | 
			
		||||
            _.isUndefined(this._orderHashesByERC721AddressByTokenIdByMakerAddress[makerAddress][tokenAddress])
 | 
			
		||||
        ) {
 | 
			
		||||
            orderHashSets = _.values(
 | 
			
		||||
                this._orderHashesByERC721AddressByTokenIdByMakerAddress[makerAddress][tokenAddress],
 | 
			
		||||
            );
 | 
			
		||||
            return [];
 | 
			
		||||
        }
 | 
			
		||||
        const orderHashSets = _.values(
 | 
			
		||||
            this._orderHashesByERC721AddressByTokenIdByMakerAddress[makerAddress][tokenAddress],
 | 
			
		||||
        );
 | 
			
		||||
        const orderHashList = _.reduce(
 | 
			
		||||
            orderHashSets,
 | 
			
		||||
            (accumulator, orderHashSet) => [...accumulator, ...orderHashSet],
 | 
			
		||||
 
 | 
			
		||||
@@ -90,6 +90,19 @@ describe('OrderWatcher', () => {
 | 
			
		||||
    afterEach(async () => {
 | 
			
		||||
        await blockchainLifecycle.revertAsync();
 | 
			
		||||
    });
 | 
			
		||||
    describe('DependentOrderHashesTracker', async () => {
 | 
			
		||||
        let makerErc721TokenAddress: string;
 | 
			
		||||
        [makerErc721TokenAddress] = tokenUtils.getDummyERC721TokenAddresses();
 | 
			
		||||
        it('should handle lookups on unknown addresses', async () => {
 | 
			
		||||
            // Regression test
 | 
			
		||||
            // ApprovalForAll events on a token from an untracked address could cause
 | 
			
		||||
            // nested lookups on undefined object
 | 
			
		||||
            // #1550
 | 
			
		||||
            const dependentOrderHashesTracker = (orderWatcher as any)
 | 
			
		||||
                ._dependentOrderHashesTracker as DependentOrderHashesTracker;
 | 
			
		||||
            dependentOrderHashesTracker.getDependentOrderHashesByERC721ByMaker(takerAddress, makerErc721TokenAddress);
 | 
			
		||||
        });
 | 
			
		||||
    });
 | 
			
		||||
    describe('#removeOrder', async () => {
 | 
			
		||||
        it('should successfully remove existing order', async () => {
 | 
			
		||||
            signedOrder = await fillScenarios.createFillableSignedOrderAsync(
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user