Skip to content

Commit 5d999a0

Browse files
authored
fix(transport-commons): Fix HTTP status precedence (#3511)
1 parent 49b9f70 commit 5d999a0

2 files changed

Lines changed: 17 additions & 4 deletions

File tree

packages/transport-commons/src/http.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,6 @@ export function getStatusCode(context: HookContext, body: any, location: string
6262
return http.status
6363
}
6464

65-
if (context.method === 'create') {
66-
return statusCodes.created
67-
}
68-
6965
if (location !== undefined) {
7066
return statusCodes.seeOther
7167
}
@@ -74,6 +70,10 @@ export function getStatusCode(context: HookContext, body: any, location: string
7470
return statusCodes.noContent
7571
}
7672

73+
if (context.method === 'create') {
74+
return statusCodes.created
75+
}
76+
7777
return statusCodes.success
7878
}
7979

packages/transport-commons/test/http.test.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,29 @@ describe('@feathersjs/transport-commons HTTP helpers', () => {
2222
http: { status: 202 }
2323
}
2424
const createContext = {
25+
method: 'create',
26+
result: {}
27+
}
28+
const createEmptyContext = {
2529
method: 'create'
2630
}
2731
const redirectContext = {
2832
http: { location: '/' }
2933
}
34+
const redirectCreateContext = {
35+
method: 'create',
36+
http: { location: '/' }
37+
}
3038

3139
assert.strictEqual(http.getResponse(statusContext as HookContext).status, 202)
3240
assert.strictEqual(http.getResponse(createContext as HookContext).status, http.statusCodes.created)
3341
assert.strictEqual(http.getResponse(redirectContext as HookContext).status, http.statusCodes.seeOther)
42+
assert.strictEqual(
43+
http.getResponse(redirectCreateContext as HookContext).status,
44+
http.statusCodes.seeOther
45+
)
3446
assert.strictEqual(http.getResponse({} as HookContext).status, http.statusCodes.noContent)
47+
assert.strictEqual(http.getResponse(createEmptyContext as HookContext).status, http.statusCodes.noContent)
3548
assert.strictEqual(http.getResponse({ result: true } as HookContext).status, http.statusCodes.success)
3649
})
3750

0 commit comments

Comments
 (0)