Skip to content

Commit 6a6f99b

Browse files
committed
refactor: simplify before for tests
Signed-off-by: virkt25 <[email protected]>
1 parent f2a4319 commit 6a6f99b

File tree

3 files changed

+20
-37
lines changed

3 files changed

+20
-37
lines changed

src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export {ShoppingApplication};
1010

1111
export async function main(options?: ApplicationConfig) {
1212
const app = new ShoppingApplication(options);
13+
1314
await app.boot();
1415
await app.start();
1516

test/acceptance/shopping-cart.controller.acceptance.ts

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,8 @@ describe('ShoppingCartController', () => {
1616
let client: supertest.SuperTest<supertest.Test>;
1717
const cartRepo = new ShoppingCartRepository(new RedisDataSource());
1818

19-
before(givenAnApplication);
20-
21-
before(givenARestServer);
22-
23-
before(async () => {
24-
await app.boot();
25-
await app.start();
26-
});
27-
28-
before(() => {
29-
client = createClientForHandler(server.requestHandler);
30-
});
31-
19+
before(setupApplication);
3220
beforeEach(clearDatabase);
33-
3421
after(async () => {
3522
await app.stop();
3623
});
@@ -101,16 +88,19 @@ describe('ShoppingCartController', () => {
10188
expect(newCart.items).to.containEql(newItem.toJSON());
10289
});
10390

104-
function givenAnApplication() {
91+
async function setupApplication() {
10592
app = new ShoppingApplication({
10693
rest: {
10794
port: 0,
10895
},
10996
});
110-
}
11197

112-
async function givenARestServer() {
11398
server = await app.getServer(RestServer);
99+
100+
await app.boot();
101+
await app.start();
102+
103+
client = createClientForHandler(server.requestHandler);
114104
}
115105

116106
async function clearDatabase() {

test/acceptance/user.controller.acceptance.ts

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@
66
import {createClientForHandler, supertest, expect} from '@loopback/testlab';
77
import {RestServer} from '@loopback/rest';
88
import {ShoppingApplication} from '../..';
9-
import {UserRepository} from '../../src/repositories';
10-
import {UserDataSource} from '../../src/datasources';
9+
import {UserRepository, OrderRepository} from '../../src/repositories';
10+
import {MongoDataSource} from '../../src/datasources';
1111

1212
describe('UserController', () => {
1313
let app: ShoppingApplication;
1414
let server: RestServer;
1515
let client: supertest.SuperTest<supertest.Test>;
16-
const userRepo = new UserRepository(new UserDataSource());
16+
const orderRepo = new OrderRepository(new MongoDataSource());
17+
const userRepo = new UserRepository(new MongoDataSource(), orderRepo);
1718

1819
const user = {
1920
@@ -22,21 +23,8 @@ describe('UserController', () => {
2223
surname: 'User',
2324
};
2425

25-
before(givenAnApplication);
26-
27-
before(givenARestServer);
28-
29-
before(async () => {
30-
await app.boot();
31-
await app.start();
32-
});
33-
34-
before(() => {
35-
client = createClientForHandler(server.requestHandler);
36-
});
37-
26+
before(setupApplication);
3827
beforeEach(clearDatabase);
39-
4028
after(async () => {
4129
await app.stop();
4230
});
@@ -109,23 +97,27 @@ describe('UserController', () => {
10997
it('returns a user with given id when GET /user/{id} is invoked', async () => {
11098
const newUser = await userRepo.create(user);
11199
delete newUser.password;
100+
delete newUser.orders;
112101
// MongoDB returns an id object we need to convert to string
113102
// since the REST API returns a string for the id property.
114103
newUser.id = newUser.id.toString();
115104

116105
await client.get(`/users/${newUser.id}`).expect(200, newUser.toJSON());
117106
});
118107

119-
function givenAnApplication() {
108+
async function setupApplication() {
120109
app = new ShoppingApplication({
121110
rest: {
122111
port: 0,
123112
},
124113
});
125-
}
126114

127-
async function givenARestServer() {
128115
server = await app.getServer(RestServer);
116+
117+
await app.boot();
118+
await app.start();
119+
120+
client = createClientForHandler(server.requestHandler);
129121
}
130122

131123
async function clearDatabase() {

0 commit comments

Comments
 (0)