From 4c2ccf0fc6511d8780d558482376877df700b831 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Sun, 11 Jul 2021 07:55:52 -0700 Subject: [PATCH] Moved json-rpc tests to controllers dir --- .../json-files.adapter.unit.js} | 0 .../logapi.adapter.unit.js} | 0 .../passport.adapter.unit.js} | 0 test/unit/biz-logic/README.md | 3 - .../json-rpc}/a10-rpc.unit.js | 6 +- .../json-rpc/a11-auth.unit.js | 10 +- .../json-rpc/a12-validators.unit.js | 4 +- .../json-rpc/a13-users.unit.js | 10 +- .../json-rpc/a14-rate-limits.js | 2 +- test/unit/json-rpc/a10-rpc.unit.js | 110 ------------------ 10 files changed, 16 insertions(+), 129 deletions(-) rename test/unit/{biz-logic/a07-json-files.lib-unit.js => adapters/json-files.adapter.unit.js} (100%) rename test/unit/{biz-logic/a06-logapi.lib-unit.js => adapters/logapi.adapter.unit.js} (100%) rename test/unit/{biz-logic/a05-passport.lib-unit.js => adapters/passport.adapter.unit.js} (100%) delete mode 100644 test/unit/biz-logic/README.md rename test/unit/{biz-logic => controllers/json-rpc}/a10-rpc.unit.js (95%) rename test/unit/{ => controllers}/json-rpc/a11-auth.unit.js (95%) rename test/unit/{ => controllers}/json-rpc/a12-validators.unit.js (98%) rename test/unit/{ => controllers}/json-rpc/a13-users.unit.js (97%) rename test/unit/{ => controllers}/json-rpc/a14-rate-limits.js (97%) delete mode 100644 test/unit/json-rpc/a10-rpc.unit.js diff --git a/test/unit/biz-logic/a07-json-files.lib-unit.js b/test/unit/adapters/json-files.adapter.unit.js similarity index 100% rename from test/unit/biz-logic/a07-json-files.lib-unit.js rename to test/unit/adapters/json-files.adapter.unit.js diff --git a/test/unit/biz-logic/a06-logapi.lib-unit.js b/test/unit/adapters/logapi.adapter.unit.js similarity index 100% rename from test/unit/biz-logic/a06-logapi.lib-unit.js rename to test/unit/adapters/logapi.adapter.unit.js diff --git a/test/unit/biz-logic/a05-passport.lib-unit.js b/test/unit/adapters/passport.adapter.unit.js similarity index 100% rename from test/unit/biz-logic/a05-passport.lib-unit.js rename to test/unit/adapters/passport.adapter.unit.js diff --git a/test/unit/biz-logic/README.md b/test/unit/biz-logic/README.md deleted file mode 100644 index 8c5cdff..0000000 --- a/test/unit/biz-logic/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Business Logic Unit Tests - -The unit tests in this directly are concerned with business logic libraries in the /src/lib folder. These are the methods that should be triggered by REST API endpoints. These tests are not concerned with the handling of the REST API request/response, but by the code that is triggered by those endpoints. It also tests any business logic that is not directly associated with a REST API endpoint. diff --git a/test/unit/biz-logic/a10-rpc.unit.js b/test/unit/controllers/json-rpc/a10-rpc.unit.js similarity index 95% rename from test/unit/biz-logic/a10-rpc.unit.js rename to test/unit/controllers/json-rpc/a10-rpc.unit.js index a5838d4..1d6f218 100644 --- a/test/unit/biz-logic/a10-rpc.unit.js +++ b/test/unit/controllers/json-rpc/a10-rpc.unit.js @@ -12,9 +12,9 @@ const { v4: uid } = require('uuid') process.env.SVC_ENV = 'test' // Local libraries. -const JSONRPC = require('../../../src/controllers/json-rpc') -const adapters = require('../mocks/adapters') -const UseCasesMock = require('../mocks/use-cases') +const JSONRPC = require('../../../../src/controllers/json-rpc') +const adapters = require('../../mocks/adapters') +const UseCasesMock = require('../../mocks/use-cases') describe('#JSON RPC', () => { let uut diff --git a/test/unit/json-rpc/a11-auth.unit.js b/test/unit/controllers/json-rpc/a11-auth.unit.js similarity index 95% rename from test/unit/json-rpc/a11-auth.unit.js rename to test/unit/controllers/json-rpc/a11-auth.unit.js index ea4677e..fcfc8a0 100644 --- a/test/unit/json-rpc/a11-auth.unit.js +++ b/test/unit/controllers/json-rpc/a11-auth.unit.js @@ -13,11 +13,11 @@ const { v4: uid } = require('uuid') process.env.SVC_ENV = 'test' // Local libraries -const config = require('../../../config') -const AuthRPC = require('../../../src/controllers/json-rpc/auth') -const RateLimit = require('../../../src/controllers/json-rpc/rate-limit') -const adapters = require('../mocks/adapters') -const UseCasesMock = require('../mocks/use-cases') +const config = require('../../../../config') +const AuthRPC = require('../../../../src/controllers/json-rpc/auth') +const RateLimit = require('../../../../src/controllers/json-rpc/rate-limit') +const adapters = require('../../mocks/adapters') +const UseCasesMock = require('../../mocks/use-cases') describe('#AuthRPC', () => { let uut diff --git a/test/unit/json-rpc/a12-validators.unit.js b/test/unit/controllers/json-rpc/a12-validators.unit.js similarity index 98% rename from test/unit/json-rpc/a12-validators.unit.js rename to test/unit/controllers/json-rpc/a12-validators.unit.js index bce6c39..8aefb7f 100644 --- a/test/unit/json-rpc/a12-validators.unit.js +++ b/test/unit/controllers/json-rpc/a12-validators.unit.js @@ -14,8 +14,8 @@ const { v4: uid } = require('uuid') process.env.SVC_ENV = 'test' // Local libraries -const Validators = require('../../../src/controllers/json-rpc/validators') -const adapters = require('../mocks/adapters') +const Validators = require('../../../../src/controllers/json-rpc/validators') +const adapters = require('../../mocks/adapters') describe('#validators', () => { let uut diff --git a/test/unit/json-rpc/a13-users.unit.js b/test/unit/controllers/json-rpc/a13-users.unit.js similarity index 97% rename from test/unit/json-rpc/a13-users.unit.js rename to test/unit/controllers/json-rpc/a13-users.unit.js index 2877993..2c7d7f2 100644 --- a/test/unit/json-rpc/a13-users.unit.js +++ b/test/unit/controllers/json-rpc/a13-users.unit.js @@ -13,12 +13,12 @@ const { v4: uid } = require('uuid') process.env.SVC_ENV = 'test' // Local libraries -const config = require('../../../config') -const UserRPC = require('../../../src/controllers/json-rpc/users') -const RateLimit = require('../../../src/controllers/json-rpc/rate-limit') +const config = require('../../../../config') +const UserRPC = require('../../../../src/controllers/json-rpc/users') +const RateLimit = require('../../../../src/controllers/json-rpc/rate-limit') // const UserModel = require('../../../src/adapters/localdb/models/users') -const adapters = require('../mocks/adapters') -const UseCasesMock = require('../mocks/use-cases') +const adapters = require('../../mocks/adapters') +const UseCasesMock = require('../../mocks/use-cases') describe('#UserRPC', () => { let uut diff --git a/test/unit/json-rpc/a14-rate-limits.js b/test/unit/controllers/json-rpc/a14-rate-limits.js similarity index 97% rename from test/unit/json-rpc/a14-rate-limits.js rename to test/unit/controllers/json-rpc/a14-rate-limits.js index f1bf28b..13f4f31 100644 --- a/test/unit/json-rpc/a14-rate-limits.js +++ b/test/unit/controllers/json-rpc/a14-rate-limits.js @@ -12,7 +12,7 @@ const assert = require('chai').assert process.env.SVC_ENV = 'test' // Local libraries -const RateLimit = require('../../../src/controllers/json-rpc/rate-limit') +const RateLimit = require('../../../../src/controllers/json-rpc/rate-limit') describe('#rate-limit', () => { let uut diff --git a/test/unit/json-rpc/a10-rpc.unit.js b/test/unit/json-rpc/a10-rpc.unit.js deleted file mode 100644 index a5838d4..0000000 --- a/test/unit/json-rpc/a10-rpc.unit.js +++ /dev/null @@ -1,110 +0,0 @@ -/* - Unit tests for the rpc/index.js library. -*/ - -// Public npm libraries -const assert = require('chai').assert -const jsonrpc = require('jsonrpc-lite') -const sinon = require('sinon') -const { v4: uid } = require('uuid') - -// Set the environment variable to signal this is a test. -process.env.SVC_ENV = 'test' - -// Local libraries. -const JSONRPC = require('../../../src/controllers/json-rpc') -const adapters = require('../mocks/adapters') -const UseCasesMock = require('../mocks/use-cases') - -describe('#JSON RPC', () => { - let uut - let sandbox - - beforeEach(() => { - sandbox = sinon.createSandbox() - - const useCases = new UseCasesMock() - uut = new JSONRPC({ adapters, useCases }) - }) - - afterEach(() => sandbox.restore()) - - describe('#router', () => { - it('should exit quietly if given a random string', async () => { - const str = 'random string message' - await uut.router(str) - - assert.isOk('Not throwing an error is a pass.') - }) - - it('should exit quietly if invalid JSON RPC message received', async () => { - const malformedRpc = '{"jsonrpc":"2.0"}' - - await uut.router(malformedRpc, 'peerA') - - assert.isOk('Not throwing an error is a pass.') - }) - - it('should return default response if routing is not possible', async () => { - const id = uid() - const json = jsonrpc.request(id, 'unknownMethod', {}) - - const str = JSON.stringify(json) - - const result = await uut.router(str, 'peerA') - // console.log('result: ', result) - - const jsonObj = jsonrpc.parse(result.retStr) - // console.log(`jsonObj: ${JSON.stringify(jsonObj, null, 2)}`) - - // Assert the expected properties exist on the returned object. - assert.property(jsonObj, 'payload') - assert.property(jsonObj, 'type') - assert.property(jsonObj.payload, 'jsonrpc') - assert.property(jsonObj.payload, 'id') - assert.property(jsonObj.payload, 'result') - assert.property(jsonObj.payload.result, 'reciever') - assert.property(jsonObj.payload.result.value, 'success') - assert.property(jsonObj.payload.result.value, 'message') - - // Assert the expected values exist. - assert.equal(jsonObj.payload.id, id) - assert.equal(jsonObj.payload.result.value.success, false) - assert.equal(jsonObj.payload.result.value.status, 422) - assert.equal( - jsonObj.payload.result.value.message, - 'Input does not match routing rules.' - ) - }) - - it('should catch and handle errors', async () => { - // Force an error - sandbox.stub(uut.jsonrpc, 'parse').throws(new Error('test error')) - - const malformedRpc = '{"jsonrpc":"2.0"}' - - await uut.router(malformedRpc, 'peerA') - - assert.isOk('Not throwing an error is a pass.') - }) - - it('should route to users handler', async () => { - const id = uid() - const userCall = jsonrpc.request(id, 'users', { endpoint: 'getAll' }) - const jsonStr = JSON.stringify(userCall, null, 2) - - // Mock the users controller. - sandbox.stub(uut.userController, 'userRouter').resolves('true') - - const result = await uut.router(jsonStr, 'peerA') - // console.log(result) - - const obj = JSON.parse(result.retStr) - // console.log('obj: ', obj) - - assert.equal(obj.result.value, 'true') - assert.equal(obj.result.method, 'users') - assert.equal(obj.id, id) - }) - }) -})