From 02c0139626d7085e65e237d13aae7eae21a86a43 Mon Sep 17 00:00:00 2001 From: LeonfLK Date: Wed, 2 Sep 2020 16:50:30 +0200 Subject: [PATCH 1/3] refac: added ath guarded delete for faucet --- src/faucet/faucet.controller.ts | 10 ++++++++++ src/faucet/mongodb-faucet.service.ts | 3 +++ 2 files changed, 13 insertions(+) diff --git a/src/faucet/faucet.controller.ts b/src/faucet/faucet.controller.ts index 8d72081..8b2f685 100644 --- a/src/faucet/faucet.controller.ts +++ b/src/faucet/faucet.controller.ts @@ -6,6 +6,8 @@ import { Req, Body, BadRequestException, + Delete, + UseGuards, } from '@nestjs/common' import { Request } from 'express' import BN from 'bn.js' @@ -18,6 +20,7 @@ import { FaucetDropFailedTransferException, FaucetDropInvalidAddressException, } from './exceptions' +import { AuthGuard } from '../auth/auth.guard' const KILT_FEMTO_COIN = '1000000000000000' const DEFAULT_TOKEN_AMOUNT = 500 @@ -54,6 +57,13 @@ export class FaucetController { } } + @UseGuards(AuthGuard) + @Delete() + public async removeAll() { + console.log('Purging faucet drop registry') + this.faucetService.removeAll() + } + private async transferTokens(address: string): Promise { try { console.log(`Transfer tokens from faucet to ${address}`) diff --git a/src/faucet/mongodb-faucet.service.ts b/src/faucet/mongodb-faucet.service.ts index be8a650..2ae52d4 100644 --- a/src/faucet/mongodb-faucet.service.ts +++ b/src/faucet/mongodb-faucet.service.ts @@ -71,6 +71,9 @@ export class MongoDbFaucetService implements FaucetService { await createdFaucetDrop.save() return createdFaucetDrop as FaucetDrop } + public async removeAll(): Promise { + this.faucetDropDBModel.deleteMany({}).exec() + } public async updateOnTransactionFailure(drop: FaucetDrop): Promise { drop.error = ERROR_TRANSACTION_FAILED From c9b3deee923b07166e243011e536c10e1519e1ec Mon Sep 17 00:00:00 2001 From: LeonfLK Date: Wed, 9 Sep 2020 15:27:09 +0200 Subject: [PATCH 2/3] rebase changes --- src/faucet/faucet.controller.ts | 4 ++-- src/faucet/mongodb-faucet.service.ts | 3 --- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/faucet/faucet.controller.ts b/src/faucet/faucet.controller.ts index 8b2f685..f0d7c82 100644 --- a/src/faucet/faucet.controller.ts +++ b/src/faucet/faucet.controller.ts @@ -59,9 +59,9 @@ export class FaucetController { @UseGuards(AuthGuard) @Delete() - public async removeAll() { + public async reset() { console.log('Purging faucet drop registry') - this.faucetService.removeAll() + this.faucetService.reset() } private async transferTokens(address: string): Promise { diff --git a/src/faucet/mongodb-faucet.service.ts b/src/faucet/mongodb-faucet.service.ts index 2ae52d4..be8a650 100644 --- a/src/faucet/mongodb-faucet.service.ts +++ b/src/faucet/mongodb-faucet.service.ts @@ -71,9 +71,6 @@ export class MongoDbFaucetService implements FaucetService { await createdFaucetDrop.save() return createdFaucetDrop as FaucetDrop } - public async removeAll(): Promise { - this.faucetDropDBModel.deleteMany({}).exec() - } public async updateOnTransactionFailure(drop: FaucetDrop): Promise { drop.error = ERROR_TRANSACTION_FAILED From da76aef5f3215219861943e6cafb6810fdc078b5 Mon Sep 17 00:00:00 2001 From: LeonfLK Date: Wed, 9 Sep 2020 15:33:27 +0200 Subject: [PATCH 3/3] test: updated --- src/faucet/faucet.module.spec.ts | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/faucet/faucet.module.spec.ts b/src/faucet/faucet.module.spec.ts index 1c61787..e48e755 100644 --- a/src/faucet/faucet.module.spec.ts +++ b/src/faucet/faucet.module.spec.ts @@ -17,6 +17,7 @@ import { Request } from 'express' import { BadRequestException } from '@nestjs/common' import { MongoDbFaucetService } from './mongodb-faucet.service' import { getModelToken } from '@nestjs/mongoose' +import { AuthGuard } from '../auth/auth.guard' jest.mock('@kiltprotocol/sdk-js/build/balance/Balance.chain', () => { return { @@ -83,7 +84,10 @@ describe('Faucet Module', () => { useValue: fakeFaucetService, }, ], - }).compile() + }) + .overrideGuard(AuthGuard) + .useValue({ canActivate: () => true }) + .compile() faucetController = moduleRef.get(FaucetController) faucetService = moduleRef.get('FaucetService') @@ -95,9 +99,9 @@ describe('Faucet Module', () => { const buildSpy = jest .spyOn(Identity, 'buildFromSeed') .mockResolvedValue(faucetIdentity) - expect(await faucetController.drop(claimerAddress, faucetRequest)).toEqual( - undefined - ) + expect( + await faucetController.drop(claimerAddress, faucetRequest) + ).toEqual(undefined) expect(dropSpy).toHaveBeenCalledWith( claimerAddress, testFaucetDrop.requestip, @@ -183,7 +187,9 @@ describe('Faucet Module', () => { isFinalized: true, } as SubmittableResult }) - expect(await faucetController['transferTokens'](claimerAddress)).toEqual(true) + expect( + await faucetController['transferTokens'](claimerAddress) + ).toEqual(true) expect(buildSpy).toHaveBeenCalledWith( hexToU8a(process.env.FAUCET_ACCOUNT) ) @@ -200,7 +206,9 @@ describe('Faucet Module', () => { throw new Error('buildFromSeed failed') }) - expect(await faucetController['transferTokens'](claimerAddress)).toEqual(false) + expect( + await faucetController['transferTokens'](claimerAddress) + ).toEqual(false) expect(buildSpy).toHaveBeenCalledWith( hexToU8a(process.env.FAUCET_ACCOUNT) ) @@ -209,7 +217,9 @@ describe('Faucet Module', () => { mockedMakeTransfer.mockImplementation(() => { throw new Error('makeTransfer failed') }) - expect(await faucetController['transferTokens'](claimerAddress)).toEqual(false) + expect( + await faucetController['transferTokens'](claimerAddress) + ).toEqual(false) expect(buildSpy).toHaveBeenCalledWith( hexToU8a(process.env.FAUCET_ACCOUNT) ) @@ -223,7 +233,9 @@ describe('Faucet Module', () => { isFinalized: false, } as SubmittableResult }) - expect(await faucetController['transferTokens'](claimerAddress)).toEqual(false) + expect( + await faucetController['transferTokens'](claimerAddress) + ).toEqual(false) expect(buildSpy).toHaveBeenCalledWith( hexToU8a(process.env.FAUCET_ACCOUNT) )