Skip to content

Commit 18b3408

Browse files
Hage Yaapahacksparrow
authored andcommitted
feat(rest): add url property
Add `url` property to Rest server.
1 parent 57b968a commit 18b3408

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

packages/rest/src/rest.server.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,10 @@ export class RestServer extends Context implements Server, HttpServerLike {
136136
return this._httpServer ? this._httpServer.listening : false;
137137
}
138138

139+
get url(): string | undefined {
140+
return this._httpServer && this._httpServer.url;
141+
}
142+
139143
/**
140144
* @memberof RestServer
141145
* Creates an instance of RestServer.

packages/rest/test/integration/rest.server.integration.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,30 @@
44
// License text available at https://opensource.org/licenses/MIT
55

66
import {Application, ApplicationConfig} from '@loopback/core';
7-
import {expect, createClientForHandler} from '@loopback/testlab';
7+
import {supertest, expect, createClientForHandler} from '@loopback/testlab';
88
import {Route, RestBindings, RestServer, RestComponent} from '../..';
99
import * as yaml from 'js-yaml';
1010

1111
describe('RestServer (integration)', () => {
12+
it('exports url property', async () => {
13+
const server = await givenAServer({rest: {port: 0}});
14+
server.handler(({response}, sequence) => {
15+
response.write('ok');
16+
response.end();
17+
});
18+
expect(server.url).to.be.undefined();
19+
await server.start();
20+
expect(server)
21+
.to.have.property('url')
22+
.which.is.a.String()
23+
.match(/http|https\:\/\//);
24+
await supertest(server.url)
25+
.get('/')
26+
.expect(200, 'ok');
27+
await server.stop();
28+
expect(server.url).to.be.undefined();
29+
});
30+
1231
it('updates rest.port binding when listening on ephemeral port', async () => {
1332
const server = await givenAServer({rest: {port: 0}});
1433
await server.start();

0 commit comments

Comments
 (0)