From 85fd32bdfcbab9df25ee9cddd769930c5a308566 Mon Sep 17 00:00:00 2001 From: suxiaoxin Date: Fri, 20 Oct 2017 13:30:05 +0800 Subject: [PATCH] test: add mockServer matchApi test --- package.json | 7 +++++-- server/middleware/mockServer.js | 6 +++++- test/server/mockServer.test.js | 23 +++++++++++++++++++++++ 3 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 test/server/mockServer.test.js diff --git a/package.json b/package.json index 636f4332..1d915072 100755 --- a/package.json +++ b/package.json @@ -103,6 +103,7 @@ "redux-devtools-log-monitor": "^1.3.0", "redux-promise": "^0.5.3", "redux-thunk": "^2.2.0", + "rewire": "^2.5.2", "string-replace-webpack-plugin": "^0.1.3", "style-loader": "^0.18.2", "table-resolver": "^3.2.0", @@ -139,7 +140,9 @@ "node": ">= 7.6.0", "npm": ">= 4.1.2" }, - "ava":{ - "files": ["test/**/*.js"] + "ava": { + "files": [ + "test/**/*.js" + ] } } diff --git a/server/middleware/mockServer.js b/server/middleware/mockServer.js index cadcc828..533fe91a 100755 --- a/server/middleware/mockServer.js +++ b/server/middleware/mockServer.js @@ -5,7 +5,11 @@ const mockExtra = require('../../common/mock-extra.js'); const _ = require('underscore'); const Mock = require('mockjs'); - +/** + * + * @param {*} apiPath /user/tom + * @param {*} apiRule /user/:username + */ function matchApi(apiPath, apiRule) { let apiRules = apiRule.split("/"); let apiPaths = apiPath.split("/"); diff --git a/test/server/mockServer.test.js b/test/server/mockServer.test.js new file mode 100644 index 00000000..28b04c54 --- /dev/null +++ b/test/server/mockServer.test.js @@ -0,0 +1,23 @@ +import test from 'ava'; +const rewire = require("rewire"); +const mockServer = rewire('../../server/middleware/mockServer.js'); +const matchApi = mockServer.__get__('matchApi'); + +test('matchApi', t => { + const apiRule = '/user/:username'; + t.true(matchApi('/user/tom', apiRule)); + t.true(matchApi('/user/111$$%#$##$#2222222222!!!!!!!', apiRule)) + t.false(matchApi('/user/a/', apiRule)) + t.false(matchApi('/use/a', apiRule)) + + const apiRule_2 = '/user/:username/kk'; + t.true(matchApi('/user/aa/kk', apiRule_2)); + t.true(matchApi('/user/!!!###kksdjfks***/kk', apiRule_2)); + t.false(matchApi('/user/aa/aa', apiRule_2)); + + const apiRule_3 = '/user/:sdfsdfj/ttt/:sdkfjkj'; + t.true(matchApi('/user/a/ttt/b', apiRule_3)); + t.false(matchApi('/user/a/ttt2/b', apiRule_3)) + + +}); \ No newline at end of file