From 80aec0d7e3b2a6bf47010016e80a458edf9a5acd Mon Sep 17 00:00:00 2001 From: joelchu Date: Thu, 7 Nov 2019 22:58:50 +0800 Subject: [PATCH 1/3] fixing most of the problem but some of the fixtures are wrong now --- packages/koa/package.json | 7 ++++--- packages/koa/src/contracts/get-contract.js | 7 +++++-- packages/koa/src/middlewares/init-middleware.js | 4 ++-- packages/koa/src/options/options.js | 6 ++++-- packages/koa/tests/helpers/server.js | 16 ++-------------- packages/koa/tests/jwt-auth.test.js | 12 +++++++----- 6 files changed, 24 insertions(+), 28 deletions(-) diff --git a/packages/koa/package.json b/packages/koa/package.json index 307c6fa6..e45357d3 100644 --- a/packages/koa/package.json +++ b/packages/koa/package.json @@ -56,7 +56,8 @@ "files": [ "tests/*.test.js", "!tests/helpers/*.*", - "!tests/fixtures/*.*" + "!tests/fixtures/*.*", + "!tests/node-client.test.js" ], "require": [ "esm" @@ -73,7 +74,7 @@ "esm": "^3.2.25", "fs-extra": "^8.1.0", "jsonql-constants": "^1.8.9", - "jsonql-contract": "^1.8.3", + "jsonql-contract": "^1.8.4", "jsonql-errors": "^1.1.5", "jsonql-jwt": "^1.3.3", "jsonql-node-client": "^1.2.0", @@ -90,7 +91,7 @@ "jsonql-ws-server": "^1.3.5", "jwt-decode": "^2.2.0", "koa-bodyparser": "^4.2.1", - "nb-split-tasks": "^0.5.3", + "nb-split-tasks": "^0.6.0", "nyc": "^14.1.1", "request": "^2.88.0", "server-io-core": "^1.2.0", diff --git a/packages/koa/src/contracts/get-contract.js b/packages/koa/src/contracts/get-contract.js index f77235d4..1552f714 100644 --- a/packages/koa/src/contracts/get-contract.js +++ b/packages/koa/src/contracts/get-contract.js @@ -1,6 +1,6 @@ // move all the code into it's folder // we are going to fork the process to lighten the load when it start -import { splitContractGenerator } from 'jsonql-contract/extra' +import { splitContractGenerator, contractGenerator } from 'jsonql-contract/extra' /** * getContract main - all the contract related methods move back to contract-cli @@ -9,5 +9,8 @@ import { splitContractGenerator } from 'jsonql-contract/extra' * @return {object} Promise to resolve the contract json */ export function getContract(config, pub = false) { - return splitContractGenerator(config, pub) + // if (config.enableSplitTask) { + return splitContractGenerator(config, pub) + // } + // return contractGenerator(config, pub) } diff --git a/packages/koa/src/middlewares/init-middleware.js b/packages/koa/src/middlewares/init-middleware.js index 214c900c..feda87a9 100644 --- a/packages/koa/src/middlewares/init-middleware.js +++ b/packages/koa/src/middlewares/init-middleware.js @@ -126,7 +126,7 @@ export default function initMiddleware(opts) { throw new JsonqlError(`[init-middleware] ${type} is unknown!`) } if (type !== CONTRACT_NAME) { - let name = params[RESOLVER_PARAM_NAME]; + let name = params[RESOLVER_PARAM_NAME] ctx.state.jsonql.resolverName = name; ctx.state.jsonql.payload = params; ctx.state.jsonql.resolverType = isAuthType(type, name, opts) @@ -136,7 +136,7 @@ export default function initMiddleware(opts) { message: 'Payload is not the expected object type', payload } - ); + ) } } await next() diff --git a/packages/koa/src/options/options.js b/packages/koa/src/options/options.js index 3c6a75d0..11d5fc07 100644 --- a/packages/koa/src/options/options.js +++ b/packages/koa/src/options/options.js @@ -107,8 +107,10 @@ const appProps = { // @1.4.0 switch on the file upload useFileUpload: createConfig(false, [BOOLEAN_TYPE]), fileUploadName: createConfig('file', [STRING_TYPE]), - fileUploadDist: createConfig(false, [STRING_TYPE]) -}; + fileUploadDist: createConfig(false, [STRING_TYPE]), + // same as the contract-cli + enableSplitTask: createConfig(false, [BOOLEAN_TYPE]) +} const jwtProcessKey = 'INIT_JWT_KEYS' // just for id the promise call export { constProps, diff --git a/packages/koa/tests/helpers/server.js b/packages/koa/tests/helpers/server.js index c5b00497..fafbc546 100644 --- a/packages/koa/tests/helpers/server.js +++ b/packages/koa/tests/helpers/server.js @@ -13,9 +13,10 @@ const baseResolverDir = join(dir, 'resolvers') const msResolverDir = join(dir, 'sub') // add a dir to seperate the contract files -function createServer(config={}, dir = '') { +module.exports = function createServer(config={}, dir = '') { const opts = Object.assign({},{ + resolverDir: baseResolverDir, contractDir: join(contractDir, dir) }, config) @@ -25,16 +26,3 @@ function createServer(config={}, dir = '') { return app; } - -function createBaseServer() { - -} - -function createMsServer() { - -} - -module.exports = { - createBaseServer, - createMsServer -} diff --git a/packages/koa/tests/jwt-auth.test.js b/packages/koa/tests/jwt-auth.test.js index e3eacc10..82919bd1 100644 --- a/packages/koa/tests/jwt-auth.test.js +++ b/packages/koa/tests/jwt-auth.test.js @@ -24,20 +24,22 @@ const name = 'Joel'; test.before( t => { t.context.app = createServer({ enableAuth: true, - useJwt: true, loginHandlerName: 'customLogin', - validatorHandlerName: false, //'customValidator', + validatorHandlerName: false, privateMethodDir: 'private', keysDir }, dir) const privateKey = fsx.readFileSync(join(keysDir, 'privateKey.pem')) - const options = { exp: 60*60 }; - + const options = { exp: 60*60 } t.context.encoder = loginResultToJwt(privateKey, options, RSA_ALGO) - t.context.token = t.context.encoder({ name }) +}) + +test.after(t => { + fsx.removeSync(join(__dirname, 'fixtures', 'tmp', 'jwt')) + // fsx.removeSync(join(__dirname, 'fixtures', 'tmp', '')) }) -- Gitee From ef087223ccca01746bd50880d98e49b5c423e0fc Mon Sep 17 00:00:00 2001 From: joelchu Date: Thu, 7 Nov 2019 23:25:00 +0800 Subject: [PATCH 2/3] Fix the problem with the paths --- packages/koa/tests/helpers/server.js | 4 ++++ packages/koa/tests/jwt.test.js | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/koa/tests/helpers/server.js b/packages/koa/tests/helpers/server.js index fafbc546..f4f89f5d 100644 --- a/packages/koa/tests/helpers/server.js +++ b/packages/koa/tests/helpers/server.js @@ -12,6 +12,8 @@ const contractDir = join(dir, 'tmp') const baseResolverDir = join(dir, 'resolvers') const msResolverDir = join(dir, 'sub') +const debug = require('debug')('jsonql-koa:helpers:server') + // add a dir to seperate the contract files module.exports = function createServer(config={}, dir = '') { @@ -20,6 +22,8 @@ module.exports = function createServer(config={}, dir = '') { contractDir: join(contractDir, dir) }, config) + debug('createServer raw config', config) + const app = new Koa() app.use(bodyparser()) app.use(jsonqlKoa(opts)) diff --git a/packages/koa/tests/jwt.test.js b/packages/koa/tests/jwt.test.js index 2a928ecb..603837e5 100644 --- a/packages/koa/tests/jwt.test.js +++ b/packages/koa/tests/jwt.test.js @@ -14,7 +14,7 @@ const debug = require('debug')('jsonql-koa:test:jwt'); const { type, headers, dirs } = require('./fixtures/options'); const createServer = require('./helpers/server') const dir = 'jwt'; -const keysDir = join(__dirname, 'fixtures', 'tmp', 'keys') +const keysDir = join(__dirname, 'fixtures', 'keys') const { createTokenValidator, loginResultToJwt } = require('jsonql-jwt') @@ -29,7 +29,7 @@ test.before( t => { }, dir) const publicKey = fsx.readFileSync(join(keysDir, 'publicKey.pem')) - + t.context.validator = createTokenValidator({ publicKey, useJwt: true -- Gitee From 620f46fb279c6835d0c55fcd3ef6a8629636c1d2 Mon Sep 17 00:00:00 2001 From: joelchu Date: Fri, 8 Nov 2019 11:36:40 +0800 Subject: [PATCH 3/3] mark the disable options --- packages/koa/src/contracts/get-contract.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/koa/src/contracts/get-contract.js b/packages/koa/src/contracts/get-contract.js index 1552f714..72afbecb 100644 --- a/packages/koa/src/contracts/get-contract.js +++ b/packages/koa/src/contracts/get-contract.js @@ -9,8 +9,12 @@ import { splitContractGenerator, contractGenerator } from 'jsonql-contract/extra * @return {object} Promise to resolve the contract json */ export function getContract(config, pub = false) { - // if (config.enableSplitTask) { + return splitContractGenerator(config, pub) + /* + @TODO not using this for now + if (config.enableSplitTask) { return splitContractGenerator(config, pub) - // } - // return contractGenerator(config, pub) + } + return contractGenerator(config, pub) + */ } -- Gitee