mirror of
https://github.com/Permissionless-Software-Foundation/ipfs-bch-wallet-consumer.git
synced 2026-09-21 16:52:03 -07:00
Finished implementation
This commit is contained in:
@@ -15,6 +15,7 @@ process.env.SVC_ENV = 'test'
|
||||
// Local libraries
|
||||
const config = require('../../../config')
|
||||
const AuthRPC = require('../../../src/rpc/auth')
|
||||
const RateLimit = require('../../../src/rpc/rate-limit')
|
||||
const UserLib = require('../../../src/lib/users')
|
||||
const userLib = new UserLib()
|
||||
|
||||
@@ -48,6 +49,7 @@ describe('#AuthRPC', () => {
|
||||
sandbox = sinon.createSandbox()
|
||||
|
||||
uut = new AuthRPC()
|
||||
uut.rateLimit = new RateLimit({ max: 100 })
|
||||
})
|
||||
|
||||
afterEach(() => sandbox.restore())
|
||||
@@ -71,6 +73,7 @@ describe('#AuthRPC', () => {
|
||||
const authCall = jsonrpc.request(id, 'auth', { endpoint: 'authUser' })
|
||||
const jsonStr = JSON.stringify(authCall, null, 2)
|
||||
const rpcData = jsonrpc.parse(jsonStr)
|
||||
rpcData.from = 'Origin request'
|
||||
|
||||
const result = await uut.authRouter(rpcData)
|
||||
|
||||
@@ -87,6 +90,7 @@ describe('#AuthRPC', () => {
|
||||
const authCall = jsonrpc.request(id, 'auth', { endpoint: 'authUser' })
|
||||
const jsonStr = JSON.stringify(authCall, null, 2)
|
||||
const rpcData = jsonrpc.parse(jsonStr)
|
||||
rpcData.from = 'Origin request'
|
||||
|
||||
const result = await uut.authRouter(rpcData)
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ process.env.SVC_ENV = 'test'
|
||||
// Local libraries
|
||||
const config = require('../../../config')
|
||||
const UserRPC = require('../../../src/rpc/users')
|
||||
const RateLimit = require('../../../src/rpc/rate-limit')
|
||||
const UserModel = require('../../../src/models/users')
|
||||
|
||||
describe('#UserRPC', () => {
|
||||
@@ -40,6 +41,7 @@ describe('#UserRPC', () => {
|
||||
sandbox = sinon.createSandbox()
|
||||
|
||||
uut = new UserRPC()
|
||||
uut.rateLimit = new RateLimit({ max: 100 })
|
||||
})
|
||||
|
||||
afterEach(() => sandbox.restore())
|
||||
@@ -120,6 +122,7 @@ describe('#UserRPC', () => {
|
||||
const userCall = jsonrpc.request(id, 'users', { endpoint: 'createUser' })
|
||||
const jsonStr = JSON.stringify(userCall, null, 2)
|
||||
const rpcData = jsonrpc.parse(jsonStr)
|
||||
rpcData.from = 'Origin request'
|
||||
|
||||
const result = await uut.userRouter(rpcData)
|
||||
|
||||
@@ -139,9 +142,10 @@ describe('#UserRPC', () => {
|
||||
})
|
||||
const jsonStr = JSON.stringify(userCall, null, 2)
|
||||
const rpcData = jsonrpc.parse(jsonStr)
|
||||
rpcData.from = 'Origin request'
|
||||
|
||||
const result = await uut.userRouter(rpcData)
|
||||
|
||||
console.log('result', result)
|
||||
assert.equal(result, true)
|
||||
})
|
||||
|
||||
@@ -159,6 +163,7 @@ describe('#UserRPC', () => {
|
||||
})
|
||||
const jsonStr = JSON.stringify(userCall, null, 2)
|
||||
const rpcData = jsonrpc.parse(jsonStr)
|
||||
rpcData.from = 'Origin request'
|
||||
|
||||
const result = await uut.userRouter(rpcData)
|
||||
// console.log('result: ', result)
|
||||
@@ -179,7 +184,7 @@ describe('#UserRPC', () => {
|
||||
})
|
||||
const jsonStr = JSON.stringify(userCall, null, 2)
|
||||
const rpcData = jsonrpc.parse(jsonStr)
|
||||
|
||||
rpcData.from = 'Origin request'
|
||||
const result = await uut.userRouter(rpcData)
|
||||
|
||||
assert.equal(result, true)
|
||||
@@ -199,6 +204,7 @@ describe('#UserRPC', () => {
|
||||
})
|
||||
const jsonStr = JSON.stringify(userCall, null, 2)
|
||||
const rpcData = jsonrpc.parse(jsonStr)
|
||||
rpcData.from = 'Origin request'
|
||||
|
||||
const result = await uut.userRouter(rpcData)
|
||||
// console.log('result: ', result)
|
||||
@@ -216,6 +222,7 @@ describe('#UserRPC', () => {
|
||||
const userCall = jsonrpc.request(id, 'users', { endpoint: 'createUser' })
|
||||
const jsonStr = JSON.stringify(userCall, null, 2)
|
||||
const rpcData = jsonrpc.parse(jsonStr)
|
||||
rpcData.from = 'Origin request'
|
||||
|
||||
const result = await uut.userRouter(rpcData)
|
||||
// console.log('result: ', result)
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
Unit tests for the JSON RPC validator middleware.
|
||||
|
||||
TODO: ensureTargetUserOrAdmin: it should exit quietly if user is an admin.
|
||||
*/
|
||||
|
||||
// Public npm libraries
|
||||
const sinon = require('sinon')
|
||||
const assert = require('chai').assert
|
||||
|
||||
// Set the environment variable to signal this is a test.
|
||||
process.env.SVC_ENV = 'test'
|
||||
|
||||
// Local libraries
|
||||
const RateLimit = require('../../../src/rpc/rate-limit')
|
||||
|
||||
describe('#rate-limit', () => {
|
||||
let uut
|
||||
let sandbox
|
||||
|
||||
beforeEach(() => {
|
||||
sandbox = sinon.createSandbox()
|
||||
|
||||
uut = new RateLimit()
|
||||
})
|
||||
|
||||
afterEach(() => sandbox.restore())
|
||||
|
||||
describe('#onLimitReached', () => {
|
||||
it('should throw error', async () => {
|
||||
try {
|
||||
uut.onLimitReached()
|
||||
assert.fail('unexpected error')
|
||||
} catch (error) {
|
||||
assert.equal(error.status, 429)
|
||||
assert.include(error.message, 'Too many requests, please try again later.')
|
||||
}
|
||||
})
|
||||
})
|
||||
describe('#limiter', () => {
|
||||
it('should throw error if "from" input is not provider', async () => {
|
||||
try {
|
||||
await uut.limiter()
|
||||
assert.fail('unexpected error')
|
||||
} catch (error) {
|
||||
assert.include(error.message, 'from must be a string')
|
||||
}
|
||||
})
|
||||
it('should throw error 429', async () => {
|
||||
try {
|
||||
const _uut = new RateLimit({ max: 1 })
|
||||
const from = 'Origin request'
|
||||
|
||||
const firtsRequest = await _uut.limiter(from)
|
||||
assert.isTrue(firtsRequest)
|
||||
|
||||
await _uut.limiter(from)
|
||||
assert.fail('unexpected error')
|
||||
} catch (error) {
|
||||
assert.include(error.message, 'Too many requests, please try again later.')
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user