Skip to content

Commit 342c8c5

Browse files
committed
skip failing tests on Node 14
1 parent 8d68b50 commit 342c8c5

File tree

3 files changed

+104
-94
lines changed
  • dev-packages/node-integration-tests/suites/express/multiple-routers

3 files changed

+104
-94
lines changed

MIGRATION.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ For IE11 support please transpile your code to ES5 using babel or similar and ad
4343

4444
**Next.js**: The Next.js SDK now supports Next.js 13.2.0+
4545

46+
**Express**: Complex router setups are only properly parametrized in Node 16+.
47+
4648
## 2. Package removal
4749

4850
We've removed the following packages:
Lines changed: 75 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -1,84 +1,88 @@
1+
import { conditionalTest } from '../../../../utils';
12
import { cleanupChildProcesses, createRunner } from '../../../../utils/runner';
23

34
afterAll(() => {
45
cleanupChildProcesses();
56
});
67

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+
1114

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+
};
2629

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+
});
3336

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+
};
5255

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+
});
5962

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+
};
7881

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+
});
8488
});
Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,35 @@
1+
import { conditionalTest } from '../../../../utils';
12
import { cleanupChildProcesses, createRunner } from '../../../../utils/runner';
23

34
afterAll(() => {
45
cleanupChildProcesses();
56
});
67

7-
test('should construct correct url with multiple parameterized routers, when param is also contain in middle layer 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+
11-
const EXPECTED_TRANSACTION =
12-
major >= 16
13-
? {
14-
transaction: 'GET /api/v1/users/:userId/posts/:postId',
15-
transaction_info: {
16-
source: 'route',
17-
},
18-
}
19-
: {
20-
transaction: 'GET /api/v1/users/123/posts/:postId',
21-
transaction_info: {
22-
source: 'route',
23-
},
24-
};
8+
// Before Node 16, parametrization is not working properly here
9+
conditionalTest({ min: 16 })('middle-layer-parameterized', () => {
10+
test('should construct correct url with multiple parameterized routers, when param is also contain in middle layer 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+
14+
const EXPECTED_TRANSACTION =
15+
major >= 16
16+
? {
17+
transaction: 'GET /api/v1/users/:userId/posts/:postId',
18+
transaction_info: {
19+
source: 'route',
20+
},
21+
}
22+
: {
23+
transaction: 'GET /api/v1/users/123/posts/:postId',
24+
transaction_info: {
25+
source: 'route',
26+
},
27+
};
2528

26-
createRunner(__dirname, 'server.ts')
27-
.ignore('event', 'session', 'sessions')
28-
.expect({ transaction: EXPECTED_TRANSACTION as any })
29-
.start(done)
30-
.makeRequest('get', '/api/v1/users/123/posts/456');
29+
createRunner(__dirname, 'server.ts')
30+
.ignore('event', 'session', 'sessions')
31+
.expect({ transaction: EXPECTED_TRANSACTION as any })
32+
.start(done)
33+
.makeRequest('get', '/api/v1/users/123/posts/456');
34+
});
3135
});

0 commit comments

Comments
 (0)