Skip to content
This repository was archived by the owner on Jan 5, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions src/faucet/faucet.controller.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Balance, Identity, SubmittableResult } from '@kiltprotocol/sdk-js'
import { Balance, Blockchain, Identity } from '@kiltprotocol/sdk-js'
import {
Controller,
Inject,
Expand Down Expand Up @@ -69,12 +69,13 @@ export class FaucetController {
const faucetAccount: Identity = await Identity.buildFromSeed(
hexToU8a(process.env.FAUCET_ACCOUNT)
)
const status: SubmittableResult = await Balance.makeTransfer(
const tx = await Balance.makeTransfer(
faucetAccount,
address,
new BN(DEFAULT_TOKEN_AMOUNT),
0
)
const status = await Blockchain.submitSignedTx(tx)
return Promise.resolve(status.isFinalized)
} catch (e) {
console.error(e)
Expand Down
44 changes: 29 additions & 15 deletions src/faucet/faucet.module.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,11 @@ import {
FaucetDropDB,
FaucetDrop,
} from './interfaces/faucet.interfaces'
import { Identity, SubmittableResult } from '@kiltprotocol/sdk-js'
import {
Identity,
SubmittableExtrinsic,
SubmittableResult,
} from '@kiltprotocol/sdk-js'
import { Test } from '@nestjs/testing'
import { FaucetController } from './faucet.controller'
import {
Expand All @@ -22,15 +26,26 @@ import { AuthGuard } from '../auth/auth.guard'
jest.mock('@kiltprotocol/sdk-js/build/balance/Balance.chain', () => {
return {
makeTransfer: jest.fn(
async (): Promise<SubmittableResult> => {
return {
isFinalized: true,
} as SubmittableResult
async (): Promise<SubmittableExtrinsic> => {
return {} as SubmittableExtrinsic
}
),
}
})

jest.mock('@kiltprotocol/sdk-js/build/blockchain/Blockchain', () => {
return {
__esModule: true,
default: {
submitSignedTx: jest.fn(
async (): Promise<SubmittableResult> => {
return { isFinalized: true } as SubmittableResult
}
),
},
}
})

describe('Faucet Module', () => {
const claimerAddress = '5Ded9KnRSDY9zc3QafT7dyueTqgZdqYK43cc5TcSwqACM1dL'
const invalidAddress = claimerAddress.replace('5', '7')
Expand Down Expand Up @@ -58,6 +73,9 @@ describe('Faucet Module', () => {
const mockedMakeTransfer = require('@kiltprotocol/sdk-js/build/balance/Balance.chain')
.makeTransfer

const mockedsubmitSignedTx = require('@kiltprotocol/sdk-js/build/blockchain/Blockchain')
.default.submitSignedTx

const fakeFaucetService: FaucetService = {
drop: jest.fn(async (): Promise<FaucetDrop> => testFaucetDrop),
updateOnTransactionFailure: jest.fn(
Expand Down Expand Up @@ -118,7 +136,7 @@ describe('Faucet Module', () => {
const buildSpy = jest
.spyOn(Identity, 'buildFromSeed')
.mockResolvedValue(faucetIdentity)
mockedMakeTransfer.mockResolvedValue({
mockedsubmitSignedTx.mockResolvedValue({
isFinalized: false,
} as SubmittableResult)
const updateSpy = jest.spyOn(
Expand Down Expand Up @@ -184,11 +202,9 @@ describe('Faucet Module', () => {
const buildSpy = jest
.spyOn(Identity, 'buildFromSeed')
.mockResolvedValue(faucetIdentity)
mockedMakeTransfer.mockImplementation(async () => {
return {
mockedsubmitSignedTx.mockResolvedValue({
isFinalized: true,
} as SubmittableResult
})
} as SubmittableResult)
expect(
await faucetController['transferTokens'](claimerAddress)
).toEqual(true)
Expand Down Expand Up @@ -232,11 +248,9 @@ describe('Faucet Module', () => {
new BN(DEFAULT_TOKEN_AMOUNT),
0
)
mockedMakeTransfer.mockImplementation(async () => {
return {
isFinalized: false,
} as SubmittableResult
})
mockedsubmitSignedTx.mockResolvedValue({
isFinalized: false,
} as SubmittableResult)
expect(
await faucetController['transferTokens'](claimerAddress)
).toEqual(false)
Expand Down
16 changes: 14 additions & 2 deletions test/faucet.e2e-spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,16 @@ import { FaucetModule } from '../src/faucet/faucet.module'

jest.mock('@kiltprotocol/sdk-js/build/balance/Balance.chain', () => {
return {
makeTransfer: jest.fn(() => Promise.resolve({ isFinalized: true })),
makeTransfer: jest.fn(() => Promise.resolve({})),
}
})

jest.mock('@kiltprotocol/sdk-js/build/blockchain/Blockchain', () => {
return {
__esModules: true,
default: {
submitSignedTx: jest.fn(() => Promise.resolve({ isFinalized: true })),
}
}
})

Expand Down Expand Up @@ -37,9 +46,12 @@ describe('faucet endpoint (e2e)', () => {

beforeEach(async () => {
await faucetService.reset()
require('@kiltprotocol/sdk-js/build/balance/Balance.chain').makeTransfer.mockResolvedValue(
require('@kiltprotocol/sdk-js/build/blockchain/Blockchain').default.submitSignedTx.mockResolvedValue(
{ isFinalized: true }
)
require('@kiltprotocol/sdk-js/build/balance/Balance.chain').makeTransfer.mockResolvedValue(
{ }
)
})

it('rejects malformed requests', async () => {
Expand Down