@modern-js/server 1.4.3 → 1.4.4-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/dist/js/modern/dev-tools/mock/index.js +1 -1
  2. package/dist/js/modern/dev-tools/socket-server.js +2 -2
  3. package/dist/js/modern/index.js +1 -1
  4. package/dist/js/modern/server/{dev-server/dev-server-split.js → dev-server-split.js} +0 -0
  5. package/dist/js/modern/server/{dev-server/dev-server.js → dev-server.js} +15 -14
  6. package/dist/js/modern/server/index.js +15 -138
  7. package/dist/js/modern/{libs/render/cache/type.js → types.js} +0 -0
  8. package/dist/js/node/dev-tools/mock/index.js +2 -2
  9. package/dist/js/node/dev-tools/socket-server.js +2 -3
  10. package/dist/js/node/index.js +2 -2
  11. package/dist/js/node/server/{dev-server/dev-server-split.js → dev-server-split.js} +0 -0
  12. package/dist/js/node/server/{dev-server/dev-server.js → dev-server.js} +18 -24
  13. package/dist/js/node/server/index.js +17 -152
  14. package/dist/js/node/{libs/render/cache/type.js → types.js} +0 -0
  15. package/dist/types/dev-tools/babel/register.d.ts +1 -2
  16. package/dist/types/dev-tools/dev-server-plugin.d.ts +1 -1
  17. package/dist/types/dev-tools/launch-editor/index.d.ts +1 -2
  18. package/dist/types/dev-tools/mock/getMockData.d.ts +1 -2
  19. package/dist/types/dev-tools/mock/index.d.ts +1 -2
  20. package/dist/types/dev-tools/socket-server.d.ts +1 -1
  21. package/dist/types/index.d.ts +4 -5
  22. package/dist/types/server/{dev-server/dev-server-split.d.ts → dev-server-split.d.ts} +6 -5
  23. package/dist/types/server/{dev-server/dev-server.d.ts → dev-server.d.ts} +4 -3
  24. package/dist/types/server/index.d.ts +4 -19
  25. package/dist/types/types.d.ts +28 -0
  26. package/modern.config.js +5 -1
  27. package/package.json +11 -41
  28. package/tests/server.test.ts +10 -3
  29. package/dist/js/modern/constants.js +0 -26
  30. package/dist/js/modern/libs/context/context.js +0 -180
  31. package/dist/js/modern/libs/context/index.js +0 -3
  32. package/dist/js/modern/libs/hook-api/route.js +0 -39
  33. package/dist/js/modern/libs/hook-api/template.js +0 -61
  34. package/dist/js/modern/libs/metrics.js +0 -12
  35. package/dist/js/modern/libs/proxy.js +0 -33
  36. package/dist/js/modern/libs/render/cache/__tests__/cache.fun.test.js +0 -70
  37. package/dist/js/modern/libs/render/cache/__tests__/cache.test.js +0 -233
  38. package/dist/js/modern/libs/render/cache/__tests__/cacheable.js +0 -53
  39. package/dist/js/modern/libs/render/cache/__tests__/error-configuration.js +0 -35
  40. package/dist/js/modern/libs/render/cache/__tests__/matched-cache.js +0 -121
  41. package/dist/js/modern/libs/render/cache/index.js +0 -74
  42. package/dist/js/modern/libs/render/cache/page-caches/index.js +0 -9
  43. package/dist/js/modern/libs/render/cache/page-caches/lru.js +0 -35
  44. package/dist/js/modern/libs/render/cache/spr.js +0 -280
  45. package/dist/js/modern/libs/render/cache/util.js +0 -79
  46. package/dist/js/modern/libs/render/index.js +0 -65
  47. package/dist/js/modern/libs/render/modern/browser-list.js +0 -7
  48. package/dist/js/modern/libs/render/modern/index.js +0 -42
  49. package/dist/js/modern/libs/render/reader.js +0 -112
  50. package/dist/js/modern/libs/render/ssr.js +0 -58
  51. package/dist/js/modern/libs/render/static.js +0 -46
  52. package/dist/js/modern/libs/render/type.js +0 -7
  53. package/dist/js/modern/libs/route/index.js +0 -68
  54. package/dist/js/modern/libs/route/matcher.js +0 -94
  55. package/dist/js/modern/libs/route/route.js +0 -24
  56. package/dist/js/modern/libs/serve-file.js +0 -28
  57. package/dist/js/modern/server/dev-server/index.js +0 -2
  58. package/dist/js/modern/server/modern-server-split.js +0 -81
  59. package/dist/js/modern/server/modern-server.js +0 -584
  60. package/dist/js/modern/type.js +0 -1
  61. package/dist/js/modern/utils.js +0 -112
  62. package/dist/js/node/constants.js +0 -36
  63. package/dist/js/node/libs/context/context.js +0 -194
  64. package/dist/js/node/libs/context/index.js +0 -18
  65. package/dist/js/node/libs/hook-api/route.js +0 -48
  66. package/dist/js/node/libs/hook-api/template.js +0 -69
  67. package/dist/js/node/libs/metrics.js +0 -18
  68. package/dist/js/node/libs/proxy.js +0 -44
  69. package/dist/js/node/libs/render/cache/__tests__/cache.fun.test.js +0 -77
  70. package/dist/js/node/libs/render/cache/__tests__/cache.test.js +0 -238
  71. package/dist/js/node/libs/render/cache/__tests__/cacheable.js +0 -60
  72. package/dist/js/node/libs/render/cache/__tests__/error-configuration.js +0 -42
  73. package/dist/js/node/libs/render/cache/__tests__/matched-cache.js +0 -128
  74. package/dist/js/node/libs/render/cache/index.js +0 -86
  75. package/dist/js/node/libs/render/cache/page-caches/index.js +0 -17
  76. package/dist/js/node/libs/render/cache/page-caches/lru.js +0 -47
  77. package/dist/js/node/libs/render/cache/spr.js +0 -298
  78. package/dist/js/node/libs/render/cache/util.js +0 -105
  79. package/dist/js/node/libs/render/index.js +0 -91
  80. package/dist/js/node/libs/render/modern/browser-list.js +0 -14
  81. package/dist/js/node/libs/render/modern/index.js +0 -58
  82. package/dist/js/node/libs/render/reader.js +0 -139
  83. package/dist/js/node/libs/render/ssr.js +0 -76
  84. package/dist/js/node/libs/render/static.js +0 -62
  85. package/dist/js/node/libs/render/type.js +0 -14
  86. package/dist/js/node/libs/route/index.js +0 -83
  87. package/dist/js/node/libs/route/matcher.js +0 -108
  88. package/dist/js/node/libs/route/route.js +0 -33
  89. package/dist/js/node/libs/serve-file.js +0 -41
  90. package/dist/js/node/server/dev-server/index.js +0 -27
  91. package/dist/js/node/server/modern-server-split.js +0 -97
  92. package/dist/js/node/server/modern-server.js +0 -622
  93. package/dist/js/node/type.js +0 -5
  94. package/dist/js/node/utils.js +0 -143
  95. package/dist/types/constants.d.ts +0 -20
  96. package/dist/types/libs/context/context.d.ts +0 -61
  97. package/dist/types/libs/context/index.d.ts +0 -4
  98. package/dist/types/libs/hook-api/route.d.ts +0 -14
  99. package/dist/types/libs/hook-api/template.d.ts +0 -14
  100. package/dist/types/libs/metrics.d.ts +0 -3
  101. package/dist/types/libs/proxy.d.ts +0 -4
  102. package/dist/types/libs/render/cache/__tests__/cache.fun.test.d.ts +0 -1
  103. package/dist/types/libs/render/cache/__tests__/cache.test.d.ts +0 -1
  104. package/dist/types/libs/render/cache/__tests__/cacheable.d.ts +0 -62
  105. package/dist/types/libs/render/cache/__tests__/error-configuration.d.ts +0 -28
  106. package/dist/types/libs/render/cache/__tests__/matched-cache.d.ts +0 -124
  107. package/dist/types/libs/render/cache/index.d.ts +0 -6
  108. package/dist/types/libs/render/cache/page-caches/index.d.ts +0 -2
  109. package/dist/types/libs/render/cache/page-caches/lru.d.ts +0 -15
  110. package/dist/types/libs/render/cache/spr.d.ts +0 -24
  111. package/dist/types/libs/render/cache/type.d.ts +0 -48
  112. package/dist/types/libs/render/cache/util.d.ts +0 -17
  113. package/dist/types/libs/render/index.d.ts +0 -18
  114. package/dist/types/libs/render/modern/browser-list.d.ts +0 -1
  115. package/dist/types/libs/render/modern/index.d.ts +0 -3
  116. package/dist/types/libs/render/reader.d.ts +0 -18
  117. package/dist/types/libs/render/ssr.d.ts +0 -10
  118. package/dist/types/libs/render/static.d.ts +0 -3
  119. package/dist/types/libs/render/type.d.ts +0 -34
  120. package/dist/types/libs/route/index.d.ts +0 -15
  121. package/dist/types/libs/route/matcher.d.ts +0 -15
  122. package/dist/types/libs/route/route.d.ts +0 -14
  123. package/dist/types/libs/serve-file.d.ts +0 -8
  124. package/dist/types/server/dev-server/index.d.ts +0 -2
  125. package/dist/types/server/modern-server-split.d.ts +0 -26
  126. package/dist/types/server/modern-server.d.ts +0 -72
  127. package/dist/types/type.d.ts +0 -80
  128. package/dist/types/utils.d.ts +0 -19
  129. package/tests/context.test.ts +0 -52
  130. package/tests/fixtures/hosting-files/static/index.js +0 -1
  131. package/tests/fixtures/reader/index.ts +0 -3
  132. package/tests/fixtures/route-spec/dynamic.json +0 -13
  133. package/tests/fixtures/route-spec/index.json +0 -29
  134. package/tests/fixtures/ssr/bundle.js +0 -5
  135. package/tests/fixtures/static-dir/bar.html +0 -11
  136. package/tests/fixtures/static-dir/baz/index.html +0 -11
  137. package/tests/fixtures/static-dir/foo/index.html +0 -11
  138. package/tests/helper.ts +0 -8
  139. package/tests/hook.test.ts +0 -44
  140. package/tests/middleware.test.ts +0 -179
  141. package/tests/render.test.ts +0 -102
  142. package/tests/route.test.ts +0 -77
  143. package/tests/utils.test.ts +0 -106
@@ -1,179 +0,0 @@
1
- import path from 'path';
2
- import EventEmitter from 'events';
3
- import { Readable } from 'stream';
4
- import { createServer, Server } from 'http';
5
- import httpMocks from 'node-mocks-http';
6
- import portfinder from 'portfinder';
7
- import axios from 'axios';
8
- import { createContext } from '../src/libs/context';
9
- import { createStaticFileHandler } from '../src/libs/serve-file';
10
- import { createProxyHandler } from '../src/libs/proxy';
11
-
12
- describe('test middleware create factory', () => {
13
- describe('should create static-file handler correctly', () => {
14
- const middleware = createStaticFileHandler([
15
- {
16
- path: /static\/|upload\//,
17
- target: path.join(__dirname, './fixtures/hosting-files'),
18
- },
19
- ]);
20
-
21
- test('should get static file correctly', resolve => {
22
- const req = httpMocks.createRequest({
23
- path: '/static/index.js',
24
- eventEmitter: Readable,
25
- });
26
- const res = httpMocks.createResponse({ eventEmitter: EventEmitter });
27
- const mockContext = createContext(req, res);
28
- res.on('finish', () => {
29
- expect(res._getBuffer().toString().trim()).toBe(
30
- "console.info('index.js');",
31
- );
32
- resolve();
33
- });
34
-
35
- middleware(mockContext, () => {
36
- throw new Error('should not happened');
37
- });
38
- });
39
-
40
- test('should miss static file correctly', resolve => {
41
- const req = httpMocks.createRequest({
42
- path: '/static/index.css',
43
- eventEmitter: Readable,
44
- });
45
- const res = httpMocks.createResponse({ eventEmitter: EventEmitter });
46
- const mockContext = createContext(req, res);
47
- res.on('finish', () => {
48
- throw new Error('should not happened');
49
- });
50
-
51
- middleware(mockContext, () => {
52
- req.destroy();
53
- expect(true).toBeTruthy();
54
- resolve();
55
- });
56
- });
57
- });
58
-
59
- jest.setTimeout(1000 * 10);
60
- describe('should create proxy handler correctly', () => {
61
- test('should return null if no options', () => {
62
- expect(createProxyHandler(null as any)).toBeNull();
63
- });
64
-
65
- let sourceServerPort = 8080;
66
- let sourceServer: Server | null = null;
67
- beforeAll(async () => {
68
- let done: any;
69
- const promise = new Promise(resolve => (done = resolve));
70
- sourceServerPort = await portfinder.getPortPromise();
71
- sourceServer = createServer((req, res) => {
72
- res.setHeader('Access-Control-Allow-Origin', '*');
73
- res.write(req.url?.slice(1));
74
- res.end();
75
- }).listen(sourceServerPort, done);
76
- return promise;
77
- });
78
-
79
- afterAll(() => {
80
- if (sourceServer) {
81
- sourceServer.close();
82
- }
83
- });
84
-
85
- test('should proxy correctly use simply options', async () => {
86
- const port = await portfinder.getPortPromise();
87
- const middlewares = createProxyHandler({
88
- '/simple': `http://localhost:${sourceServerPort}`,
89
- });
90
- const proxyHandler = middlewares![0];
91
-
92
- const server = createServer((req, res) => {
93
- const context = createContext(req, res);
94
- proxyHandler(context, () => {
95
- throw new Error('should not happened');
96
- });
97
- }).listen(port);
98
-
99
- try {
100
- const { data } = await axios.get(`http://localhost:${port}/simple`);
101
- expect(data).toBe('simple');
102
- } finally {
103
- server.close();
104
- }
105
- });
106
-
107
- test('should proxy correctly use simply obj options', async () => {
108
- const port = await portfinder.getPortPromise();
109
- const middlewares = createProxyHandler({
110
- '/simple-obj': {
111
- target: `http://localhost:${sourceServerPort}`,
112
- },
113
- });
114
- const proxyHandler = middlewares![0];
115
-
116
- const server = createServer((req, res) => {
117
- const context = createContext(req, res);
118
- proxyHandler(context, () => {
119
- throw new Error('should not happened');
120
- });
121
- }).listen(port);
122
-
123
- try {
124
- const { data } = await axios.get(`http://localhost:${port}/simple-obj`);
125
- expect(data).toBe('simple-obj');
126
- } finally {
127
- server.close();
128
- }
129
- });
130
-
131
- test('should proxy correctly use context options', async () => {
132
- const port = await portfinder.getPortPromise();
133
- const middlewares = createProxyHandler({
134
- context: '/context',
135
- target: `http://localhost:${sourceServerPort}`,
136
- });
137
- const proxyHandler = middlewares![0];
138
-
139
- const server = createServer((req, res) => {
140
- const context = createContext(req, res);
141
- proxyHandler(context, () => {
142
- throw new Error('should not happened');
143
- });
144
- }).listen(port);
145
-
146
- try {
147
- const { data } = await axios.get(`http://localhost:${port}/context`);
148
- expect(data).toBe('context');
149
- } finally {
150
- server.close();
151
- }
152
- });
153
-
154
- test('should proxy correctly use array options', async () => {
155
- const port = await portfinder.getPortPromise();
156
- const middlewares = createProxyHandler([
157
- {
158
- context: '/array',
159
- target: `http://localhost:${sourceServerPort}`,
160
- },
161
- ]);
162
- const proxyHandler = middlewares![0];
163
-
164
- const server = createServer((req, res) => {
165
- const context = createContext(req, res);
166
- proxyHandler(context, () => {
167
- throw new Error('should not happened');
168
- });
169
- }).listen(port);
170
-
171
- try {
172
- const { data } = await axios.get(`http://localhost:${port}/array`);
173
- expect(data).toBe('array');
174
- } finally {
175
- server.close();
176
- }
177
- });
178
- });
179
- });
@@ -1,102 +0,0 @@
1
- import path from 'path';
2
- import { render } from '../src/libs/render/ssr';
3
- import { handleDirectory } from '../src/libs/render/static';
4
- import { LruReader } from '../src/libs/render/reader';
5
-
6
- describe('test render function', () => {
7
- test('should return content correctly ', async () => {
8
- const renderResult = await render(
9
- {
10
- params: {},
11
- pathname: '/foo',
12
- host: 'localhost:8080',
13
- query: {},
14
- url: 'localhost:8080/foo',
15
- cookieMap: {},
16
- headers: {},
17
- } as any,
18
- {
19
- urlPath: '/foo',
20
- bundle: 'bundle.js',
21
- distDir: path.join(__dirname, 'fixtures', 'ssr'),
22
- template: 'tpl.html',
23
- entryName: 'foo',
24
- staticGenerate: false,
25
- } as any,
26
- {
27
- extendSSRContext: () => {
28
- // empty
29
- },
30
- } as any,
31
- );
32
-
33
- expect(renderResult.content).toMatch('Modern.js');
34
- expect(renderResult.contentType).toMatch('text/html; charset=utf-8');
35
- });
36
-
37
- test('should handle directory for .html correctly', async () => {
38
- const entryPath = path.join(__dirname, 'fixtures', 'static-dir');
39
-
40
- const res1 = await handleDirectory(
41
- {
42
- path: '/modern/bar',
43
- } as any,
44
- entryPath,
45
- '/modern',
46
- );
47
-
48
- expect(res1?.content.toString()).toMatch('bar');
49
- });
50
-
51
- test('should handle directory for index.html correctly', async () => {
52
- const entryPath = path.join(__dirname, 'fixtures', 'static-dir');
53
-
54
- const res1 = await handleDirectory(
55
- {
56
- path: '/modern/foo',
57
- } as any,
58
- entryPath,
59
- '/modern',
60
- );
61
-
62
- expect(res1?.content.toString()).toMatch('foo');
63
- });
64
-
65
- test('should handle directory for /index.html correctly', async () => {
66
- const entryPath = path.join(__dirname, 'fixtures', 'static-dir');
67
-
68
- const res1 = await handleDirectory(
69
- {
70
- path: '/modern/baz/',
71
- } as any,
72
- entryPath,
73
- '/modern',
74
- );
75
-
76
- expect(res1?.content.toString()).toMatch('baz');
77
- });
78
-
79
- test('should reader work correctly', async () => {
80
- const reader = new LruReader();
81
- const dir = path.join(__dirname, 'fixtures', 'reader');
82
-
83
- const nullRes = await reader.read(path.join(dir, 'foo.ts'));
84
- expect(nullRes).toBeNull();
85
-
86
- const dirRes = await reader.read(path.join(dir, 'test-dir'));
87
- expect(dirRes).toBeNull();
88
-
89
- const res = await reader.read(path.join(dir, 'index.ts'));
90
- expect(res).not.toBeNull();
91
- expect(res?.content.toString()).toMatch('modern');
92
-
93
- const res1 = await reader.read(path.join(dir, 'index.ts'));
94
- expect(res1).not.toBeNull();
95
- expect(res1?.content.toString()).toMatch('modern');
96
-
97
- reader.update();
98
- const res2 = await reader.read(path.join(dir, 'index.ts'));
99
- expect(res2).not.toBeNull();
100
- expect(res2?.content.toString()).toMatch('modern');
101
- });
102
- });
@@ -1,77 +0,0 @@
1
- import { RouteMatchManager, RouteMatcher } from '../src/libs/route';
2
- import spec from './fixtures/route-spec/index.json';
3
- import dynamic from './fixtures/route-spec/dynamic.json';
4
-
5
- describe('test route', () => {
6
- describe('test route matcher', () => {
7
- test('should matcher work correctyl with simple spec', () => {
8
- const routeSpec = spec.routes[0];
9
- const matcher = new RouteMatcher(routeSpec);
10
- expect(matcher.spec).toBe(routeSpec);
11
- expect(matcher.urlPath).toBe(routeSpec.urlPath);
12
- expect(matcher.urlReg).toBeUndefined();
13
- expect(matcher.urlMatcher).toBeUndefined();
14
-
15
- const { isSSR, isApi, isSPA, urlPath, entryName, entryPath } =
16
- matcher.generate('');
17
-
18
- expect(isSSR).toBeTruthy();
19
- expect(isApi).toBeFalsy();
20
- expect(isSPA).toBeTruthy();
21
- expect(urlPath).toBe(routeSpec.urlPath);
22
- expect(entryName).toBe(routeSpec.entryName);
23
- expect(entryPath).toBe(routeSpec.entryPath);
24
-
25
- expect(matcher.matchEntry('entry')).toBeTruthy();
26
- expect(matcher.matchEntry('home')).toBeFalsy();
27
- expect(matcher.matchLength('/entry')).toBe(6);
28
- expect(matcher.matchUrlPath('/entry')).toBeTruthy();
29
- expect(matcher.matchUrlPath('/home')).toBeFalsy();
30
- });
31
- });
32
-
33
- describe('test route manager', () => {
34
- test('should manager work correctly with simple spec', async () => {
35
- const manager = new RouteMatchManager();
36
- expect(manager.matchers.length).toBe(0);
37
- manager.reset(spec.routes);
38
- expect(manager.matchers.length).toBe(3);
39
-
40
- const matchedByEntry = manager.matchEntry('home');
41
- expect(matchedByEntry).toBeDefined();
42
- expect(matchedByEntry?.generate('').entryName).toBe('home');
43
-
44
- const matchedByUrl = manager.match('/entry');
45
- expect(matchedByUrl).toBeDefined();
46
- expect(matchedByUrl?.generate('').entryName).toBe('entry');
47
-
48
- const SSRUrlBundles = manager.getBundles();
49
- expect(SSRUrlBundles).toEqual(['bundles/entry.js', 'bundles/home.js']);
50
-
51
- manager.reset([]);
52
- expect(manager.matchers.length).toBe(0);
53
- });
54
-
55
- test('should manager work correctly with dynamic spec', async () => {
56
- const manager = new RouteMatchManager();
57
- expect(manager.matchers.length).toBe(0);
58
- manager.reset(dynamic.routes);
59
- expect(manager.matchers.length).toBe(1);
60
-
61
- const matched = manager.match('/entry/001');
62
- expect(matched).toBeDefined();
63
- const route = matched?.generate('/entry/001');
64
- expect(route?.entryName).toBe('entry');
65
- expect(route?.params).toEqual({ id: '001' });
66
-
67
- const matchedWithTrail = manager.match('/entry/001/a');
68
- expect(matchedWithTrail).toBeDefined();
69
- const routeWithTrail = matchedWithTrail?.generate('/entry/001/a');
70
- expect(routeWithTrail?.entryName).toBe('entry');
71
- expect(routeWithTrail?.params).toEqual({ id: '001' });
72
-
73
- const miss = manager.match('/entry');
74
- expect(miss).toBeUndefined();
75
- });
76
- });
77
- });
@@ -1,106 +0,0 @@
1
- import { compile } from 'path-to-regexp';
2
- import {
3
- noop,
4
- mergeExtension,
5
- toMessage,
6
- createErrorDocument,
7
- createMiddlewareCollecter,
8
- getStaticReg,
9
- } from '../src/utils';
10
-
11
- describe('test server utils', () => {
12
- test('should get nothing from noop', async () => {
13
- const rtn = noop();
14
- expect(rtn).toBeUndefined();
15
- });
16
-
17
- test('should merge extension', () => {
18
- const middleware = ['foo', 'baz'];
19
- const extension = mergeExtension(middleware);
20
- expect(extension.middleware).toEqual(middleware);
21
- });
22
-
23
- describe('test some case by toMessage func', () => {
24
- test('should get message from error like object', () => {
25
- const error = new Error('some error happened');
26
- const message = toMessage('error info', error);
27
- expect(message).toBe('error info: some error happened');
28
- });
29
-
30
- test('should get message from error message', () => {
31
- const errorMsg = 'some error happened';
32
- const message = toMessage('error info', errorMsg);
33
- expect(message).toBe('error info: some error happened');
34
- });
35
- });
36
-
37
- test('should return document text', () => {
38
- const doc = createErrorDocument(302, 'redirect');
39
- expect(doc).toMatch('302');
40
- expect(doc).toMatch('redirect');
41
- expect(doc).toMatch('302: redirect');
42
- });
43
-
44
- describe('test middleware collector', () => {
45
- test('shoule return web middleware correctly', () => {
46
- const { addWebMiddleware, getMiddlewares } = createMiddlewareCollecter();
47
-
48
- const before = getMiddlewares();
49
- expect(before.web).toEqual([]);
50
-
51
- const middleware = async () => {
52
- // empty
53
- };
54
- addWebMiddleware(middleware);
55
- const after = getMiddlewares();
56
- expect(after.web).toEqual([middleware]);
57
- });
58
-
59
- test('shoule return api middleware correctly', () => {
60
- const { addAPIMiddleware, getMiddlewares } = createMiddlewareCollecter();
61
-
62
- const before = getMiddlewares();
63
- expect(before.web).toEqual([]);
64
-
65
- const middleware = async () => {
66
- // empty
67
- };
68
- addAPIMiddleware(middleware);
69
- const after = getMiddlewares();
70
- expect(after.api).toEqual([middleware]);
71
- });
72
- });
73
-
74
- test('should return full path', () => {
75
- const fn = compile('/home/:id', { encode: encodeURIComponent });
76
- expect(fn({ id: 2 })).toBe('/home/2');
77
- });
78
-
79
- describe('test create static reg', () => {
80
- test('should test static path correctly', () => {
81
- const reg = getStaticReg();
82
- expect(reg.test('/static')).toBeTruthy();
83
- expect(reg.test('/upload')).toBeTruthy();
84
- });
85
-
86
- test('should test custom static path correctly', () => {
87
- const reg = getStaticReg({
88
- cssPath: 'static-css',
89
- });
90
- expect(reg.test('/static-css')).toBeTruthy();
91
- });
92
-
93
- test('should test favicon path correctly', () => {
94
- const reg = getStaticReg({
95
- favicon: 'index.icon',
96
- faviconByEntries: {
97
- foo: 'foo.icon',
98
- baz: 'baz.icon',
99
- },
100
- });
101
- expect(reg.test('/index.icon')).toBeTruthy();
102
- expect(reg.test('/foo.icon')).toBeTruthy();
103
- expect(reg.test('/baz.icon')).toBeTruthy();
104
- });
105
- });
106
- });