Skip to content

Commit e1563de

Browse files
committed
working on auth
1 parent 033199a commit e1563de

3 files changed

Lines changed: 54 additions & 20 deletions

File tree

js_npm/graphql/ecommerce-server/em/app-driver.js

Lines changed: 51 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,29 @@
11
const em = require("evomaster-client-js");
22
const dbHandler = require("./db-handler");
33

4-
const { NestFactory } = require('@nestjs/core');
4+
const {NestFactory} = require('@nestjs/core');
5+
const superagent = require("superagent");
56

7+
class AppController extends em.SutController {
68

7-
class AppController extends em.SutController {
8-
9-
setupForGeneratedTest(){
9+
setupForGeneratedTest() {
1010
}
1111

12-
getInfoForAuthentication(){
13-
return [];
12+
getInfoForAuthentication() {
13+
let jwtLogin = new em.dto.JsonTokenPostLoginDto();
14+
jwtLogin.endpoint = "/api/graphql";
15+
jwtLogin.userId = "foo";
16+
jwtLogin.extractTokenField = "/data/login/token";
17+
jwtLogin.jsonPayload = `{
18+
"mutation": "login(data:{email:\\"foo@foo.com\\",password:\\"bar123\\"}){token}"
19+
}`;
20+
jwtLogin.headerPrefix = "Bearer ";
21+
22+
23+
let auth = new em.dto.AuthenticationDto();
24+
auth.name = "foo-auth";
25+
auth.jsonTokenPostLogin = jwtLogin;
26+
return [auth];
1427
}
1528

1629
getPreferredOutputFormat() {
@@ -23,47 +36,67 @@ class AppController extends em.SutController {
2336
return dto;
2437
}
2538

26-
isSutRunning(){
39+
isSutRunning() {
2740
if (!this.server) {
2841
return false;
2942
}
3043
return this.server.listening;
3144
}
3245

33-
resetStateOfSUT(){
34-
return dbHandler.cleanDb();
46+
resetStateOfSUT() {
47+
return new Promise((resolve) => {
48+
dbHandler.cleanDb().then(async () => {
49+
await superagent
50+
.post(this.baseUrlOfSut + "/graphql")
51+
.set('Content-Type', 'application/json')
52+
.send(`{
53+
"mutation" : "createUser(data:{
54+
name:\\"foo\\",
55+
username:\\"foo\\",
56+
email:\\"foo@foo.com\\",
57+
password:\\"bar123\\",
58+
confirmPassword:\\"bar123\\"}
59+
){username}"
60+
}`)
61+
.ok(res => res.status);
62+
resolve();
63+
});
64+
});
3565
}
3666

37-
startSut(){
67+
startSut() {
3868

39-
return new Promise( async (resolve) => {
69+
return new Promise(async (resolve) => {
4070

4171
await dbHandler.startDb();
4272

4373
process.env.SECRET = "a secret";
4474
process.env.DATABASE_USER = "foo"
4575
process.env.DATABASE_PASSWORD = "bar"
46-
process.env.DATABASE_HOST="localhost"
47-
process.env.DATABASE_NAME="db";
48-
process.env.DATABASE_PORT=process.env.DB_PORT
76+
process.env.DATABASE_HOST = "localhost"
77+
process.env.DATABASE_NAME = "db";
78+
process.env.DATABASE_PORT = process.env.DB_PORT
4979

50-
const { AppModule } = require('./../src/app.module');
80+
const {AppModule} = require('./../src/app.module');
5181

5282
const app = await NestFactory.create(AppModule);
5383
app.setGlobalPrefix('api')
5484

5585
app.listen(0, "localhost", () => {
5686
this.server = app.getHttpServer();
5787
this.port = this.server.address().port;
58-
resolve("http://localhost:" + this.port);
88+
const url = "http://localhost:" + this.port;
89+
this.baseUrlOfSut = url;
90+
console.log("Started API at: " + url)
91+
resolve(url);
5992
});
6093
});
6194
}
6295

6396
stopSut() {
64-
return new Promise( async (resolve) => {
97+
return new Promise(async (resolve) => {
6598
await dbHandler.stopDb();
66-
this.server.close( () => resolve())
99+
this.server.close(() => resolve())
67100
});
68101
}
69102

js_npm/graphql/ecommerce-server/em/db-handler.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ module.exports ={
7676
// )
7777
// })
7878

79-
79+
return Promise.resolve();
8080
},
8181

8282
stopDb : async () =>{

js_npm/graphql/ecommerce-server/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@
7373
"postgres": "3.0.0",
7474
"testcontainers": "7.20.0",
7575
"@babel/cli": "7.8.4",
76-
"@babel/core": "7.8.4"
76+
"@babel/core": "7.8.4",
77+
"superagent": "5.2.2"
7778
},
7879
"babel": {
7980
"only": [

0 commit comments

Comments
 (0)