Skip to content

Commit ce54968

Browse files
committed
disAccount
1 parent 055cb4d commit ce54968

File tree

8 files changed

+173
-71
lines changed

8 files changed

+173
-71
lines changed

Diff for: package-lock.json

+68-9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: package.json

+2
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@
5454
"@types/express": "^4.17.16",
5555
"@types/jest": "^29.4.0",
5656
"@types/jsonwebtoken": "^9.0.1",
57+
"@types/supertest": "^2.0.12",
58+
"@types/swagger-jsdoc": "^6.0.1",
5759
"@types/swagger-ui-express": "^4.1.3",
5860
"@typescript-eslint/eslint-plugin": "^5.50.0",
5961
"@typescript-eslint/parser": "^5.50.0",

Diff for: src/controllers/__tests__/authController.test.ts

+39-16
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,47 @@
11
// TODO replace the test below with your tests
2-
import {request} from 'express'
2+
import request from 'supertest'
33
import app from '../../app'
4+
import users from '../../db/models/users'
45
import router from '../../routes/authroutes'
56
import {add, multiply} from '../../totest'
67

7-
describe('Math functions', () => {
8-
it('should multiply 5 by 3', () => {
9-
const result = multiply(5, 3)
10-
expect(result).toEqual(15)
11-
})
8+
describe('disabling account', () => {
9+
jest.setTimeout(20000)
10+
11+
test('200 status for disabling account', async () => {
12+
const signUp = await request(app).post('/signup').send({
13+
firstName: 'Festo',
14+
lastName: 'kabab',
15+
16+
password: 'admin1',
17+
})
18+
console.log(signUp.body.token)
19+
20+
const login = await request(app).post('/login').send({
21+
22+
password: 'admin1',
23+
})
24+
const users = await request(app).get('/users')
25+
console.log(users)
26+
const user = users.body.users[0]
1227

13-
it('should add 5 by 3', () => {
14-
const result = add(5, 3)
15-
expect(result).toEqual(8)
28+
const disable = await request(app)
29+
.post(`/users/${user.id}/disable-account`)
30+
.set('Authorization', `Bearer ${login.body.token}`)
31+
.send()
32+
expect(disable.statusCode).toBe(200)
33+
})
34+
test('404 status for unexisting user', async () => {
35+
const login = await request(app).post('/login').send({
36+
37+
password: 'admin1',
38+
})
39+
console.log(login.body)
40+
const unExist = await request(app)
41+
.post(`/users/234567/disable-account`)
42+
.set('Authorization', `Bearer ${login.body.token}`)
43+
.send()
44+
console.log(unExist.body)
45+
expect(unExist.statusCode).toBe(404)
1646
})
1747
})
18-
// test("200 status for disabling account", async () => {
19-
// const signup =await Request(app).post('/signup').send({
20-
// email: "[email protected]",
21-
// password: "admin321"
22-
// });
23-
24-
// })

Diff for: src/controllers/authController.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ class auth {
245245
} else {
246246
res.status(404).json({
247247
statusCode: 404,
248-
message: 'Product with provided id is not exist',
248+
message: 'User with provided id is not exist',
249249
})
250250
}
251251
} catch (error: any) {

Diff for: src/db/models/users.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
'use strict';
21
const {
32
Model
43
} = require('sequelize');

Diff for: src/docs/swagger.ts

+28-28
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,35 @@
1-
import { Application } from 'express'
1+
import {Application} from 'express'
22
import swaggerJsdoc from 'swagger-jsdoc'
33
import swaggerUi from 'swagger-ui-express'
44

5-
const options= {
6-
definition: {
7-
openapi: '3.0.0',
8-
info: {
9-
title: 'E-commerce API',
10-
description: 'e-commerce API',
11-
version: '1.0.0',
12-
},
13-
components: {
14-
securitySchemes: {
15-
authsecurity: {
16-
type: 'http',
17-
scheme: 'bearer',
18-
in: 'header',
19-
bearerFormat: 'JWT'
20-
}
21-
}
5+
const options = {
6+
definition: {
7+
openapi: '3.0.0',
8+
info: {
9+
title: 'E-commerce API',
10+
description: 'e-commerce API',
11+
version: '1.0.0',
12+
},
13+
components: {
14+
securitySchemes: {
15+
authsecurity: {
16+
type: 'http',
17+
scheme: 'bearer',
18+
in: 'header',
19+
bearerFormat: 'JWT',
20+
},
2221
},
23-
security: [
24-
{
25-
authsecurity: []
26-
}
27-
],
2822
},
29-
// looks for configuration in specified directories
30-
apis: ['./src/routes/*.ts'],
31-
}
32-
const swaggerSpec = swaggerJsdoc(options)
23+
security: [
24+
{
25+
authsecurity: [],
26+
},
27+
],
28+
},
29+
// looks for configuration in specified directories
30+
apis: ['./src/routes/*.ts'],
31+
}
32+
const swaggerSpec = swaggerJsdoc(options)
3333
function swaggerDocs(app: Application) {
3434
// Swagger Page
3535
app.use('/docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec))
@@ -39,4 +39,4 @@ function swaggerDocs(app: Application) {
3939
res.send(swaggerSpec)
4040
})
4141
}
42-
export default swaggerDocs
42+
export default swaggerDocs

Diff for: src/routes/authroutes.ts

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import {Router} from 'express'
22
import auth from '../controllers/authController'
3-
import signupValidation from '../middelwares/signupValidation'
3+
import signupValidation from '../middlewares/signupValidation'
44
import loginValidation from '../middlewares/loginValidation'
5-
import verifyToken from '../middelwares/verifyToken'
6-
import isAdmin from '../middelwares/checkAdmin'
5+
import verifyToken from '../middlewares/verifyToken'
6+
import isAdmin from '../middlewares/checkAdmin'
77

88
const router = Router()
99

@@ -46,10 +46,9 @@ router.get('/users', auth.getAlluser)
4646
router.delete('/delete/:id', auth.deleteUser)
4747
router.get('/sendcode/:phone', auth.sendCode)
4848
router.get('/verify/:phone/:code', auth.verify2FA)
49-
// router.post('/logout', auth.logout)
5049
router.post('/logout', auth.logout)
5150
router.post('/authorize', auth.authorize)
52-
router.get(
51+
router.post(
5352
'/users/:id/disable-account',
5453
verifyToken,
5554
isAdmin,

Diff for: src/routes/docs.ts

+31-11
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import auth from "../controllers/authController";
2-
import signupValidation from "../middlewares/signupValidation";
3-
import router from "./authroutes";
1+
import auth from '../controllers/authController'
2+
import signupValidation from '../middlewares/signupValidation'
3+
import router from './authroutes'
44

55
/**
66
* @swagger
@@ -16,29 +16,27 @@ import router from "./authroutes";
1616
* application/json:
1717
* schema:
1818
* type: object
19-
* required:
19+
* required:
2020
* - email
2121
* - firstName
2222
* - lastName
23-
* - password
24-
* properties:
23+
* - password
24+
* properties:
2525
* email:
2626
* type: string
2727
* firstname:
2828
* type: string
2929
* lastName:
3030
* type: string
31-
* password:
32-
* type : string
31+
* password:
32+
* type : string
3333
* responses:
3434
* 201:
3535
* description: successfully logged in;
36-
*
36+
*
3737
* */
3838
router.post('/signup', signupValidation, auth.signup)
3939

40-
41-
4240
/**
4341
* @swagger
4442
* /users:
@@ -75,3 +73,25 @@ router.post('/signup', signupValidation, auth.signup)
7573
* 400:
7674
* description: Bad request.
7775
* */
76+
77+
/**
78+
* @swagger
79+
* /users/{id}/disable-account:
80+
* post:
81+
* tags:
82+
* - users
83+
* summary:
84+
* security: []
85+
* consumes:
86+
* - application/json
87+
* parameters:
88+
* - name: id
89+
*
90+
* in: path
91+
* required: true
92+
* responses:
93+
* 200:
94+
* description: Successfully Deleted.
95+
* 400:
96+
* description: Bad request.
97+
* */

0 commit comments

Comments
 (0)