diff --git a/src/faucet/faucet.controller.ts b/src/faucet/faucet.controller.ts index 8d72081..f0d7c82 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 reset() { + console.log('Purging faucet drop registry') + this.faucetService.reset() + } + private async transferTokens(address: string): Promise { try { console.log(`Transfer tokens from faucet to ${address}`) 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) )