|
| 1 | +import { conditionalTest } from '../../../../utils'; |
1 | 2 | import { cleanupChildProcesses, createRunner } from '../../../../utils/runner';
|
2 | 3 |
|
3 | 4 | afterAll(() => {
|
4 | 5 | cleanupChildProcesses();
|
5 | 6 | });
|
6 | 7 |
|
7 |
| -test('should construct correct url with multiple parameterized routers, when param is also contain in middle layer route and express used multiple middlewares with route', done => { |
8 |
| - // parse node.js major version |
9 |
| - const [major] = process.versions.node.split('.').map(Number); |
10 |
| - // Split test result base on major node version because regex d flag is support from node 16+ |
| 8 | +// Before Node 16, parametrization is not working properly here |
| 9 | +conditionalTest({ min: 16 })('complex-router', () => { |
| 10 | + test('should construct correct url with multiple parameterized routers, when param is also contain in middle layer route and express used multiple middlewares with route', done => { |
| 11 | + // parse node.js major version |
| 12 | + const [major] = process.versions.node.split('.').map(Number); |
| 13 | + // Split test result base on major node version because regex d flag is support from node 16+ |
11 | 14 |
|
12 |
| - const EXPECTED_TRANSACTION = |
13 |
| - major >= 16 |
14 |
| - ? { |
15 |
| - transaction: 'GET /api/api/v1/sub-router/users/:userId/posts/:postId', |
16 |
| - transaction_info: { |
17 |
| - source: 'route', |
18 |
| - }, |
19 |
| - } |
20 |
| - : { |
21 |
| - transaction: 'GET /api/api/v1/sub-router/users/123/posts/:postId', |
22 |
| - transaction_info: { |
23 |
| - source: 'route', |
24 |
| - }, |
25 |
| - }; |
| 15 | + const EXPECTED_TRANSACTION = |
| 16 | + major >= 16 |
| 17 | + ? { |
| 18 | + transaction: 'GET /api/api/v1/sub-router/users/:userId/posts/:postId', |
| 19 | + transaction_info: { |
| 20 | + source: 'route', |
| 21 | + }, |
| 22 | + } |
| 23 | + : { |
| 24 | + transaction: 'GET /api/api/v1/sub-router/users/123/posts/:postId', |
| 25 | + transaction_info: { |
| 26 | + source: 'route', |
| 27 | + }, |
| 28 | + }; |
26 | 29 |
|
27 |
| - createRunner(__dirname, 'server.ts') |
28 |
| - .ignore('event', 'session', 'sessions') |
29 |
| - .expect({ transaction: EXPECTED_TRANSACTION as any }) |
30 |
| - .start(done) |
31 |
| - .makeRequest('get', '/api/api/v1/sub-router/users/123/posts/456'); |
32 |
| -}); |
| 30 | + createRunner(__dirname, 'server.ts') |
| 31 | + .ignore('event', 'session', 'sessions') |
| 32 | + .expect({ transaction: EXPECTED_TRANSACTION as any }) |
| 33 | + .start(done) |
| 34 | + .makeRequest('get', '/api/api/v1/sub-router/users/123/posts/456'); |
| 35 | + }); |
33 | 36 |
|
34 |
| -test('should construct correct url with multiple parameterized routers, when param is also contain in middle layer route and express used multiple middlewares with route and original url has query params', done => { |
35 |
| - // parse node.js major version |
36 |
| - const [major] = process.versions.node.split('.').map(Number); |
37 |
| - // Split test result base on major node version because regex d flag is support from node 16+ |
38 |
| - const EXPECTED_TRANSACTION = |
39 |
| - major >= 16 |
40 |
| - ? { |
41 |
| - transaction: 'GET /api/api/v1/sub-router/users/:userId/posts/:postId', |
42 |
| - transaction_info: { |
43 |
| - source: 'route', |
44 |
| - }, |
45 |
| - } |
46 |
| - : { |
47 |
| - transaction: 'GET /api/api/v1/sub-router/users/123/posts/:postId', |
48 |
| - transaction_info: { |
49 |
| - source: 'route', |
50 |
| - }, |
51 |
| - }; |
| 37 | + test('should construct correct url with multiple parameterized routers, when param is also contain in middle layer route and express used multiple middlewares with route and original url has query params', done => { |
| 38 | + // parse node.js major version |
| 39 | + const [major] = process.versions.node.split('.').map(Number); |
| 40 | + // Split test result base on major node version because regex d flag is support from node 16+ |
| 41 | + const EXPECTED_TRANSACTION = |
| 42 | + major >= 16 |
| 43 | + ? { |
| 44 | + transaction: 'GET /api/api/v1/sub-router/users/:userId/posts/:postId', |
| 45 | + transaction_info: { |
| 46 | + source: 'route', |
| 47 | + }, |
| 48 | + } |
| 49 | + : { |
| 50 | + transaction: 'GET /api/api/v1/sub-router/users/123/posts/:postId', |
| 51 | + transaction_info: { |
| 52 | + source: 'route', |
| 53 | + }, |
| 54 | + }; |
52 | 55 |
|
53 |
| - createRunner(__dirname, 'server.ts') |
54 |
| - .ignore('event', 'session', 'sessions') |
55 |
| - .expect({ transaction: EXPECTED_TRANSACTION as any }) |
56 |
| - .start(done) |
57 |
| - .makeRequest('get', '/api/api/v1/sub-router/users/123/posts/456?param=1'); |
58 |
| -}); |
| 56 | + createRunner(__dirname, 'server.ts') |
| 57 | + .ignore('event', 'session', 'sessions') |
| 58 | + .expect({ transaction: EXPECTED_TRANSACTION as any }) |
| 59 | + .start(done) |
| 60 | + .makeRequest('get', '/api/api/v1/sub-router/users/123/posts/456?param=1'); |
| 61 | + }); |
59 | 62 |
|
60 |
| -test('should construct correct url with multiple parameterized routers, when param is also contain in middle layer route and express used multiple middlewares with route and original url ends with trailing slash and has query params', done => { |
61 |
| - // parse node.js major version |
62 |
| - const [major] = process.versions.node.split('.').map(Number); |
63 |
| - // Split test result base on major node version because regex d flag is support from node 16+ |
64 |
| - const EXPECTED_TRANSACTION = |
65 |
| - major >= 16 |
66 |
| - ? { |
67 |
| - transaction: 'GET /api/api/v1/sub-router/users/:userId/posts/:postId', |
68 |
| - transaction_info: { |
69 |
| - source: 'route', |
70 |
| - }, |
71 |
| - } |
72 |
| - : { |
73 |
| - transaction: 'GET /api/api/v1/sub-router/users/123/posts/:postId', |
74 |
| - transaction_info: { |
75 |
| - source: 'route', |
76 |
| - }, |
77 |
| - }; |
| 63 | + test('should construct correct url with multiple parameterized routers, when param is also contain in middle layer route and express used multiple middlewares with route and original url ends with trailing slash and has query params', done => { |
| 64 | + // parse node.js major version |
| 65 | + const [major] = process.versions.node.split('.').map(Number); |
| 66 | + // Split test result base on major node version because regex d flag is support from node 16+ |
| 67 | + const EXPECTED_TRANSACTION = |
| 68 | + major >= 16 |
| 69 | + ? { |
| 70 | + transaction: 'GET /api/api/v1/sub-router/users/:userId/posts/:postId', |
| 71 | + transaction_info: { |
| 72 | + source: 'route', |
| 73 | + }, |
| 74 | + } |
| 75 | + : { |
| 76 | + transaction: 'GET /api/api/v1/sub-router/users/123/posts/:postId', |
| 77 | + transaction_info: { |
| 78 | + source: 'route', |
| 79 | + }, |
| 80 | + }; |
78 | 81 |
|
79 |
| - createRunner(__dirname, 'server.ts') |
80 |
| - .ignore('event', 'session', 'sessions') |
81 |
| - .expect({ transaction: EXPECTED_TRANSACTION as any }) |
82 |
| - .start(done) |
83 |
| - .makeRequest('get', '/api/api/v1/sub-router/users/123/posts/456/?param=1'); |
| 82 | + createRunner(__dirname, 'server.ts') |
| 83 | + .ignore('event', 'session', 'sessions') |
| 84 | + .expect({ transaction: EXPECTED_TRANSACTION as any }) |
| 85 | + .start(done) |
| 86 | + .makeRequest('get', '/api/api/v1/sub-router/users/123/posts/456/?param=1'); |
| 87 | + }); |
84 | 88 | });
|
0 commit comments