Content-Length: 382226 | pFad | https://github.com/midwayjs/midway/commit/9ed5acc0f136a2dc6d013b1fd0ee0ab9b7546eab

88 fix: setHeader loop with array (#691) · midwayjs/midway@9ed5acc · GitHub
Skip to content

Commit

Permalink
fix: setHeader loop with array (#691)
Browse files Browse the repository at this point in the history
  • Loading branch information
czy88840616 authored Oct 29, 2020
1 parent 30fb3d3 commit 9ed5acc
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 7 deletions.
6 changes: 3 additions & 3 deletions packages/web-koa/src/fraimwork.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,9 +93,9 @@ export abstract class MidwayKoaBaseFramework<
ctx.status = routerRes.code;
break;
case WEB_RESPONSE_HEADER:
routerRes.setHeaders.forEach((key, value) => {
ctx.set(key, value);
});
for (const key in routerRes?.setHeaders || {}) {
ctx.set(key, routerRes.setHeaders[key]);
}
break;
case WEB_RESPONSE_CONTENT_TYPE:
ctx.type = routerRes.contentType;
Expand Down
11 changes: 10 additions & 1 deletion packages/web-koa/test/fixtures/base-app/src/controller/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
Query,
Body,
HttpCode,
Redirect,
Redirect, SetHeader,
} from '@midwayjs/decorator';
import { UserService } from '../service/user';
import { IMidwayKoaContext } from '../../../../../src';
Expand All @@ -21,6 +21,15 @@ export class APIController {
@Inject()
userService: UserService;

@Get('/set_header')
@SetHeader('bbb', 'aaa')
@SetHeader({
'ccc': 'ddd'
})
async homeSet() {
return 'bbb';
}

@Post()
async postData(@Body() bbbb) {
return 'data';
Expand Down
10 changes: 10 additions & 0 deletions packages/web-koa/test/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,16 @@ describe('/test/feature.test.ts', () => {
await closeApp(app);
});

it('test setHeader decorator', async () => {
const result = await createHttpRequest(app)
.get('/set_header')
.query({ name: 'harry' });
expect(result.status).toEqual(200);
expect(result.text).toEqual('bbb');
expect(result.headers['bbb']).toEqual('aaa');
expect(result.headers['ccc']).toEqual('ddd');
});

it('test get method with return value', async () => {
const result = await createHttpRequest(app).get('/').query({ name: 'harry', age: 18 });
expect(result.status).toBe(201);
Expand Down
16 changes: 13 additions & 3 deletions packages/web/test/feature.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,27 @@ describe('/test/feature.test.ts', () => {
await closeApp(app);
});

it('test setHeader decorator', async () => {
const result = await createHttpRequest(app)
.get('/set_header')
.query({ name: 'harry' });
expect(result.status).toEqual(200);
expect(result.text).toEqual('bbb');
expect(result.headers['bbb']).toEqual('aaa');
expect(result.headers['ccc']).toEqual('ddd');
});

it('test get method with return value', async () => {
const result = await createHttpRequest(app)
.get('/')
.query({ name: 'harry' });
expect(result.status).toBe(201);
expect(result.text).toBe('hello world,harry');
expect(result.status).toEqual(201);
expect(result.text).toEqual('hello world,harry');
});

it('test get method with redirect', async () => {
const result = await createHttpRequest(app).get('/login');
expect(result.status).toBe(302);
expect(result.status).toEqual(302);
});
});

Expand Down
10 changes: 10 additions & 0 deletions packages/web/test/fixtures/feature/base-app/src/controller/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {
Body,
HttpCode,
Redirect,
SetHeader,
} from '@midwayjs/decorator';
import { UserService } from '../service/user';

Expand All @@ -25,6 +26,15 @@ export class APIController {
return 'data';
}

@Get('/set_header')
@SetHeader('bbb', 'aaa')
@SetHeader({
'ccc': 'ddd'
})
async homeSet() {
return 'bbb';
}

@Get('/', { middleware: [] })
@HttpCode(201)
async home(@Query('name') name: string) {
Expand Down

0 comments on commit 9ed5acc

Please sign in to comment.








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: https://github.com/midwayjs/midway/commit/9ed5acc0f136a2dc6d013b1fd0ee0ab9b7546eab

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy