Skip to content

Commit ea9cc34

Browse files
committed
fixed tests and improved coverage
1 parent aa76a42 commit ea9cc34

File tree

2 files changed

+68
-25
lines changed

2 files changed

+68
-25
lines changed

packages/event-handler/tests/unit/rest/helpers.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,14 @@ export const createNoNextMiddleware = (
6666
// Intentionally doesn't call next()
6767
};
6868
};
69+
70+
export const createSettingHeadersMiddleware = (headers: {
71+
[key: string]: string;
72+
}): Middleware => {
73+
return async (_params, _options, next) => {
74+
await next();
75+
Object.entries(headers).map(([key, value]) =>
76+
_options.res.headers.set(key, value)
77+
);
78+
};
79+
};

packages/event-handler/tests/unit/rest/middleware/compress.test.ts

Lines changed: 57 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,27 @@
11
import context from '@aws-lambda-powertools/testing-utils/context';
22
import { Router } from 'src/rest/Router.js';
33
import type { Middleware } from 'src/types/index.js';
4-
import { describe, expect, it } from 'vitest';
4+
import { beforeEach, describe, expect, it } from 'vitest';
55
import { compress } from '../../../../src/rest/middleware/index.js';
6-
import { createTestEvent } from '../helpers.js';
6+
import { createSettingHeadersMiddleware, createTestEvent } from '../helpers.js';
77

88
describe('Compress Middleware', () => {
99
it('compresses response when conditions are met', async () => {
1010
// Prepare
1111
const event = createTestEvent('/test', 'GET');
1212
const app = new Router();
13-
app.get('/test', [compress()], async () => {
14-
return { test: 'x'.repeat(2000) };
15-
});
13+
app.get(
14+
'/test',
15+
[
16+
compress(),
17+
createSettingHeadersMiddleware({
18+
'content-length': '2000',
19+
}),
20+
],
21+
async () => {
22+
return { test: 'x'.repeat(2000) };
23+
}
24+
);
1625

1726
// Act
1827
const result = await app.resolve(event, context);
@@ -30,10 +39,9 @@ describe('Compress Middleware', () => {
3039
'/test',
3140
[
3241
compress({ threshold: 1024 }),
33-
(): Middleware => async (_, reqCtx, next) => {
34-
await next();
35-
reqCtx.res.headers.set('content-length', '1');
36-
},
42+
createSettingHeadersMiddleware({
43+
'content-length': '1',
44+
}),
3745
],
3846
async () => {
3947
return { test: 'x' };
@@ -51,9 +59,18 @@ describe('Compress Middleware', () => {
5159
// Prepare
5260
const event = createTestEvent('/test', 'HEAD');
5361
const app = new Router();
54-
app.head('/test', [compress()], async () => {
55-
return { test: 'x'.repeat(2000) };
56-
});
62+
app.head(
63+
'/test',
64+
[
65+
compress(),
66+
createSettingHeadersMiddleware({
67+
'content-length': '2000',
68+
}),
69+
],
70+
async () => {
71+
return { test: 'x'.repeat(2000) };
72+
}
73+
);
5774

5875
// Act
5976
const result = await app.resolve(event, context);
@@ -75,6 +92,9 @@ describe('Compress Middleware', () => {
7592
compress({
7693
encoding: 'gzip',
7794
}),
95+
createSettingHeadersMiddleware({
96+
'content-length': '2000',
97+
}),
7898
],
7999
async () => {
80100
return { test: 'x'.repeat(2000) };
@@ -96,13 +116,13 @@ describe('Compress Middleware', () => {
96116
'/test',
97117
[
98118
compress(),
99-
(): Middleware => async (_, reqCtx, next) => {
100-
await next();
101-
reqCtx.res.headers.set('content-type', 'image/jpeg');
102-
},
119+
createSettingHeadersMiddleware({
120+
'content-length': '2000',
121+
'content-type': 'image/jpeg',
122+
}),
103123
],
104124
async () => {
105-
return {};
125+
return { test: 'x'.repeat(2000) };
106126
}
107127
);
108128

@@ -121,13 +141,13 @@ describe('Compress Middleware', () => {
121141
'/test',
122142
[
123143
compress(),
124-
(): Middleware => async (_, reqCtx, next) => {
125-
await next();
126-
reqCtx.res.headers.set('cache-control', 'no-transform');
127-
},
144+
createSettingHeadersMiddleware({
145+
'content-length': '2000',
146+
'cache-control': 'no-transform',
147+
}),
128148
],
129149
async () => {
130-
return {};
150+
return { test: 'x'.repeat(2000) };
131151
}
132152
);
133153

@@ -148,6 +168,9 @@ describe('Compress Middleware', () => {
148168
compress({
149169
encoding: 'deflate',
150170
}),
171+
createSettingHeadersMiddleware({
172+
'content-length': '2000',
173+
}),
151174
],
152175
async () => {
153176
return { test: 'x'.repeat(2000) };
@@ -167,9 +190,18 @@ describe('Compress Middleware', () => {
167190
'Accept-Encoding': 'deflate',
168191
});
169192
const app = new Router();
170-
app.get('/test', [compress()], async () => {
171-
return { test: 'x'.repeat(2000) };
172-
});
193+
app.get(
194+
'/test',
195+
[
196+
compress(),
197+
createSettingHeadersMiddleware({
198+
'content-length': '2000',
199+
}),
200+
],
201+
async () => {
202+
return { test: 'x'.repeat(2000) };
203+
}
204+
);
173205

174206
// Act
175207
const result = await app.resolve(event, context);

0 commit comments

Comments
 (0)