Skip to content

Commit a7fa61a

Browse files
authored
fix: Resolve duplicate error message and no trailing newline
* fix: Resolves duplicate error message * test: Add trailing newline on error test
1 parent 99464d9 commit a7fa61a

2 files changed

Lines changed: 18 additions & 1 deletion

File tree

src/ldp/http/BasicResponseWriter.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ export class BasicResponseWriter extends ResponseWriter {
2727
}
2828
input.response.setHeader('content-type', 'text/plain');
2929
input.response.writeHead(code);
30-
input.response.end(`${input.result.name}: ${input.result.message}\n${input.result.stack}`);
30+
input.response.end(typeof input.result.stack === 'string' ?
31+
`${input.result.stack}\n` :
32+
`${input.result.name}: ${input.result.message}\n`);
3133
} else {
3234
input.response.setHeader('location', input.result.identifier.path);
3335
if (input.result.body) {

test/unit/ldp/http/BasicResponseWriter.test.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,4 +81,19 @@ describe('A BasicResponseWriter', (): void => {
8181
expect(response._getStatusCode()).toBe(error.statusCode);
8282
expect(response._getData()).toMatch('UnsupportedHttpError: error');
8383
});
84+
85+
it('responds with the error name and message when no stack trace is lazily generated.', async(): Promise<void> => {
86+
const error = new Error('error');
87+
error.stack = undefined;
88+
await writer.handle({ response, result: error });
89+
expect(response._isEndCalled()).toBeTruthy();
90+
expect(response._getStatusCode()).toBe(500);
91+
expect(response._getData()).toMatch('Error: error');
92+
});
93+
94+
it('ends its response with a newline if there is an error.', async(): Promise<void> => {
95+
await writer.handle({ response, result: new Error('error') });
96+
expect(response._isEndCalled()).toBeTruthy();
97+
expect(response._getData().endsWith('\n')).toBeTruthy();
98+
});
8499
});

0 commit comments

Comments
 (0)