File tree Expand file tree Collapse file tree 7 files changed +1025
-18
lines changed Expand file tree Collapse file tree 7 files changed +1025
-18
lines changed Original file line number Diff line number Diff line change @@ -133,11 +133,12 @@ example_integration_test(
133
133
example_integration_test (
134
134
name = "examples_nestjs" ,
135
135
bazel_commands = [
136
- "build ..." ,
136
+ "test ..." ,
137
137
# Test cross-platform build
138
138
"build --platforms=@build_bazel_rules_nodejs//toolchains/node:linux_amd64 //src:docker" ,
139
139
],
140
140
npm_packages = {
141
+ "//packages/jasmine:npm_package" : "@bazel/jasmine" ,
141
142
"//packages/typescript:npm_package" : "@bazel/typescript" ,
142
143
},
143
144
owners = [
Original file line number Diff line number Diff line change 1
1
{
2
2
"private" : true ,
3
3
"dependencies" : {
4
+ "@bazel/bazel" : " ^2.0.0" ,
5
+ "@bazel/ibazel" : " ^0.11.0" ,
6
+ "@bazel/jasmine" : " ^1.0.0" ,
4
7
"@nestjs/common" : " 6.5.2" ,
5
8
"@nestjs/core" : " 6.5.2" ,
6
9
"@nestjs/platform-express" : " 6.5.2" ,
10
+ "@types/jasmine" : " ^3.5.0" ,
11
+ "@types/supertest" : " ^2.0.8" ,
7
12
"minimist" : " 1.2.0" ,
8
13
"reflect-metadata" : " 0.1.13" ,
9
- "rxjs" : " 6.5.2"
14
+ "rxjs" : " 6.5.2" ,
15
+ "supertest" : " ^4.0.2"
10
16
},
11
17
"devDependencies" : {
12
18
"@bazel/typescript" : " ^1.0.1" ,
13
19
"@types/node" : " 12.6.3" ,
14
20
"typescript" : " 3.5.3"
15
21
},
16
22
"scripts" : {
17
- "test" : " bazel build ... && bazel build --platforms=@build_bazel_rules_nodejs//toolchains/node:linux_amd64 //src:docker"
23
+ "test" : " bazel test ... && bazel build --platforms=@build_bazel_rules_nodejs//toolchains/node:linux_amd64 //src:docker"
18
24
}
19
25
}
Original file line number Diff line number Diff line change 14
14
15
15
package (default_visibility = ["//visibility:public" ])
16
16
17
+ load ("@build_bazel_rules_nodejs//:index.bzl" , "nodejs_binary" )
18
+ load ("@npm_bazel_jasmine//:index.bzl" , "jasmine_node_test" )
17
19
load ("@npm_bazel_typescript//:index.bzl" , "ts_library" )
18
20
19
21
ts_library (
20
22
name = "app" ,
21
- srcs = glob (["*.ts" ]),
23
+ srcs = glob (
24
+ ["*.ts" ],
25
+ exclude = ["*.spec.ts" ],
26
+ ),
22
27
deps = [
23
28
"@npm//@nestjs/common" ,
24
29
"@npm//@nestjs/core" ,
30
+ "@npm//@nestjs/platform-express" ,
25
31
"@npm//@types/node" ,
26
32
"@npm//tslib" ,
27
33
],
28
34
)
29
35
30
- load ("@build_bazel_rules_nodejs//:index.bzl" , "nodejs_binary" )
36
+ ts_library (
37
+ name = "test_lib" ,
38
+ srcs = glob (["*.spec.ts" ]),
39
+ deps = [
40
+ ":app" ,
41
+ "@npm//@nestjs/common" ,
42
+ "@npm//@types/jasmine" ,
43
+ "@npm//@types/supertest" ,
44
+ "@npm//jasmine" ,
45
+ "@npm//supertest" ,
46
+ ],
47
+ )
31
48
32
49
# bazel run //src:server -- --port=4000
33
50
# TODO(gregmagolan): add test for nest server with protractor rule once it is brought in
@@ -37,12 +54,18 @@ nodejs_binary(
37
54
":app" ,
38
55
"@npm//@nestjs/common" ,
39
56
"@npm//@nestjs/core" ,
40
- "@npm//@nestjs/platform-express" ,
41
57
"@npm//minimist" ,
42
58
],
43
59
entry_point = ":main.ts" ,
44
60
)
45
61
62
+ jasmine_node_test (
63
+ name = "test" ,
64
+ deps = [
65
+ ":test_lib" ,
66
+ ],
67
+ )
68
+
46
69
load ("@io_bazel_rules_docker//nodejs:image.bzl" , "nodejs_image" )
47
70
48
71
# bazel build --platforms=@build_bazel_rules_nodejs//toolchains/node:linux_amd64 //src:docker
Original file line number Diff line number Diff line change @@ -2,8 +2,8 @@ import {Controller, Get} from '@nestjs/common';
2
2
3
3
@Controller ( )
4
4
export class AppController {
5
- @Get ( )
6
- getGreeting ( ) : string {
7
- return 'Hello world!' ;
5
+ @Get ( 'hello' )
6
+ getGreeting ( ) : { message : string } {
7
+ return { message : 'Hello world!' } ;
8
8
}
9
9
}
Original file line number Diff line number Diff line change
1
+ import { INestApplication } from '@nestjs/common' ;
2
+ import * as request from 'supertest' ;
3
+
4
+ import { bootstrap } from './main' ;
5
+
6
+ describe ( 'App' , ( ) => {
7
+ let server : INestApplication ;
8
+
9
+ beforeAll ( async ( ) => {
10
+ server = await bootstrap ( 3000 ) ;
11
+ } ) ;
12
+ afterAll ( async ( ) => {
13
+ await server . close ( ) ;
14
+ } )
15
+
16
+ it ( `GET /` , ( ) => {
17
+ return request ( server . getHttpServer ( ) ) . get ( '/hello' ) . expect ( 200 ) . expect ( {
18
+ message : 'Hello world!'
19
+ } ) ;
20
+ } ) ;
21
+ } ) ;
Original file line number Diff line number Diff line change 1
- import { Logger } from '@nestjs/common' ;
1
+ import { INestApplication , Logger } from '@nestjs/common' ;
2
2
import { NestFactory } from '@nestjs/core' ;
3
+ import { ExpressAdapter } from '@nestjs/platform-express' ;
3
4
4
5
import { AppModule } from './app.module' ;
5
6
6
- async function bootstrap ( port : number ) {
7
- const app = await NestFactory . create ( AppModule ) ;
7
+ export async function bootstrap ( port : number ) : Promise < INestApplication > {
8
+ const app = await NestFactory . create ( AppModule , new ExpressAdapter ( ) ) ;
8
9
await app . listen ( port ) ;
9
10
Logger . log ( `Application served at http://localhost:${ port } ` ) ;
11
+ return app ;
10
12
}
11
13
12
14
if ( require . main === module ) {
You can’t perform that action at this time.
0 commit comments