Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
E
ESDP_froot.kz
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
10
Issues
10
List
Board
Labels
Milestones
Merge Requests
3
Merge Requests
3
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ESDP_froot.kz
ESDP_froot.kz
Commits
6616d4ab
Commit
6616d4ab
authored
May 22, 2021
by
Elena Tsoy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
#84
тестирование api-rooms и изменения в тестах api-payments
parent
4cda52f6
Pipeline
#343
canceled with stages
in 13 minutes and 47 seconds
Changes
14
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
138 additions
and
45 deletions
+138
-45
app.js
api/app.js
+1
-1
payments.test.js
api/app/__tests__/payments.test.js
+70
-28
rooms.test.js
api/app/__tests__/rooms.test.js
+52
-0
config.js
api/app/config.js
+1
-1
auth.js
api/app/middleware/auth.js
+0
-1
permit.js
api/app/middleware/permit.js
+1
-1
payments.js
api/app/payments.js
+4
-3
rooms.js
api/app/rooms.js
+0
-0
users.js
api/app/users.js
+1
-0
index.js
api/index.js
+0
-1
package.json
api/package.json
+1
-1
Header.js
front/src/components/Header/Header.js
+3
-4
config.js
front/src/config.js
+2
-2
Payments.js
front/src/containers/Payments/Payments.js
+2
-2
No files found.
api/app.js
View file @
6616d4ab
...
...
@@ -6,7 +6,7 @@ const news = require('./app/news');
const
calendarEvents
=
require
(
'./app/calendarEvent'
);
const
contentlinks
=
require
(
'./app/contentlinks'
);
const
cors
=
require
(
'cors'
);
const
rooms
=
require
(
'./app/room'
)
const
rooms
=
require
(
'./app/room
s
'
)
const
bigBrother
=
require
(
'./app/bigBrother'
)
const
app
=
express
();
...
...
api/app/__tests__/payments.test.js
View file @
6616d4ab
...
...
@@ -3,6 +3,7 @@ const mongoose = require ('mongoose')
const
config
=
require
(
'../config'
)
const
{
app
,
port
}
=
require
(
'../../app.js'
)
const
Payment
=
require
(
'../models/Payment'
)
const
User
=
require
(
'../models/User'
)
describe
(
'route-payments'
,
()
=>
{
const
server
=
app
.
listen
(
port
)
...
...
@@ -39,10 +40,15 @@ describe ('route-payments', () => {
}
})
afterAll
(
async
(
done
)
=>
{
try
{
await
Payment
.
findByIdAndDelete
(
payment
.
_id
)
await
mongoose
.
connection
.
close
()
server
.
close
()
done
()
}
catch
(
e
){
console
.
log
(
e
)
done
();
}
})
test
(
'Get payments list'
,
async
()
=>
{
...
...
@@ -59,7 +65,7 @@ describe ('route-payments', () => {
const
newPayment
=
{
user
:
user
.
body
.
user
,
paided
:
false
,
approved
:
fals
e
,
approved
:
tru
e
,
repeatability
:
false
,
purpose
:
'за товар'
,
payer
:
'Froot_Middle_Asia'
,
...
...
@@ -102,23 +108,6 @@ describe ('route-payments', () => {
expect
(
res
.
statusCode
).
toBe
(
200
)
expect
(
res
.
body
.
approved
).
toBe
(
false
)
})
test
(
'Paid payment'
,
async
()
=>
{
const
res
=
await
request
(
server
).
get
(
'/payments/'
+
payment
.
_id
+
'/paid'
).
set
({
'Authorization'
:
token
})
if
(
payment
.
approved
){
expect
(
res
.
statusCode
).
toBe
(
200
)
expect
(
res
.
body
.
paided
).
toBe
(
true
)
}
else
{
expect
(
res
.
statusCode
).
toBe
(
403
)
expect
(
res
.
body
.
message
).
toBe
(
'Требуется одобрение директора'
)
}
})
test
(
'Cancel paid payment'
,
async
()
=>
{
const
res
=
await
request
(
server
).
get
(
'/payments/'
+
payment
.
_id
+
'/paid/cancel'
).
set
({
'Authorization'
:
token
})
expect
(
res
.
statusCode
).
toBe
(
200
)
expect
(
res
.
body
.
paided
).
toBe
(
false
)
})
test
(
'Edit payment'
,
async
()
=>
{
const
editData
=
{
payer
:
'Froot_Бизнес'
,
...
...
@@ -134,11 +123,6 @@ describe ('route-payments', () => {
const
res
=
await
request
(
server
).
get
(
'/payments/due/today'
).
set
({
'Authorization'
:
token
})
expect
(
res
.
statusCode
).
toBe
(
200
)
})
test
(
'Get all files of payments for today'
,
async
()
=>
{
const
res
=
await
request
(
server
).
get
(
'/payments/files/today'
).
set
({
'Authorization'
:
token
})
expect
(
res
.
statusCode
).
toBe
(
200
)
expect
(
Array
.
isArray
(
res
.
body
)).
toBe
(
true
)
})
test
(
'Stoped repeatability payment'
,
async
()
=>
{
const
res
=
await
request
(
server
).
post
(
'/payments/'
+
payment
.
_id
+
'/not-repeatability'
).
set
({
'Authorization'
:
token
})
expect
(
res
.
statusCode
).
toBe
(
200
)
...
...
@@ -146,5 +130,63 @@ describe ('route-payments', () => {
expect
(
res
.
body
.
paided
).
toBe
(
false
)
}
})
describe
(
'route-payments/role-payPayment'
,
()
=>
{
let
accountant
let
accountantToken
let
accountantUser
beforeAll
(
async
(
done
)
=>
{
try
{
accountantUser
=
await
User
.
create
({
workEmail
:
'accountant@accountant.com'
,
surname
:
'Accountant'
,
name
:
'Accountant'
,
patronymic
:
'Accountant'
,
position
:
'accountant'
,
telegramName
:
'@accountant'
,
role
:
[
'viewAllPayments'
,
'stopRepeatabilityPayment'
,
'addPayment'
,
'editPayment'
,
'payPayment'
,
'viewToBePaid'
,
'viewTodayPayments'
,
'cancelPayedPayment'
,
'bookMeetingRoom'
,
'editBookedMeetingRoom'
,
'deleteBookedMeetingRoom'
,
'viewBookingsMeetingRoom'
],
phone
:
'+7 777 777 77 77'
,
password
:
'12345a'
})
const
accountantData
=
{
workEmail
:
'accountant@accountant.com'
,
password
:
'12345a'
}
accountant
=
await
request
(
server
).
post
(
'/users/sessions'
).
send
(
accountantData
);
accountantToken
=
accountant
.
body
.
user
.
token
[
0
]
done
();
}
catch
(
e
){
console
.
log
(
e
)
done
();
}
})
afterAll
(
async
(
done
)
=>
{
try
{
await
User
.
findByIdAndDelete
(
accountantUser
.
_id
)
done
()
}
catch
(
e
){
console
.
log
(
e
)
done
();
}
})
test
(
'Paid payment'
,
async
()
=>
{
const
res
=
await
request
(
server
).
get
(
'/payments/'
+
payment
.
_id
+
'/paid'
).
set
({
'Authorization'
:
accountantToken
})
if
(
payment
.
approved
){
expect
(
res
.
statusCode
).
toBe
(
200
)
expect
(
res
.
body
.
paided
).
toBe
(
true
)
}
else
{
expect
(
res
.
statusCode
).
toBe
(
403
)
expect
(
res
.
body
.
message
).
toBe
(
'Требуется одобрение директора'
)
}
})
test
(
'Cancel paid payment'
,
async
()
=>
{
const
res
=
await
request
(
server
).
get
(
'/payments/'
+
payment
.
_id
+
'/paid/cancel'
).
set
({
'Authorization'
:
accountantToken
})
expect
(
res
.
statusCode
).
toBe
(
200
)
expect
(
res
.
body
.
paided
).
toBe
(
false
)
})
test
(
'Get all files of payments for today'
,
async
()
=>
{
const
res
=
await
request
(
server
).
get
(
'/payments/files/today'
).
set
({
'Authorization'
:
accountantToken
})
expect
(
res
.
statusCode
).
toBe
(
200
)
expect
(
Array
.
isArray
(
res
.
body
)).
toBe
(
true
)
})
})
})
\ No newline at end of file
api/app/__tests__/rooms.test.js
0 → 100644
View file @
6616d4ab
const
request
=
require
(
'supertest'
)
const
mongoose
=
require
(
'mongoose'
)
const
config
=
require
(
'../config'
)
const
{
app
,
port
}
=
require
(
'../../app.js'
)
const
Room
=
require
(
'../models/Room'
)
describe
(
'route-rooms'
,
()
=>
{
const
server
=
app
.
listen
(
port
)
beforeAll
(
async
(
done
)
=>
{
try
{
await
mongoose
.
connect
(
config
.
db
.
url
+
'/'
+
config
.
db
.
name
,
{
useNewUrlParser
:
true
,
useUnifiedTopology
:
true
});
done
();
}
catch
(
e
){
console
.
log
(
e
)
done
();
}
})
afterAll
(
async
(
done
)
=>
{
try
{
await
mongoose
.
connection
.
close
()
server
.
close
()
done
()
}
catch
(
e
){
console
.
log
(
e
)
done
();
}
})
test
(
'Create new room'
,
async
()
=>
{
const
newRoom
=
{
room
:
'test room'
}
const
res
=
await
request
(
server
).
post
(
'/rooms'
).
send
(
newRoom
)
expect
(
res
.
statusCode
).
toBe
(
200
)
expect
(
res
.
body
.
room
).
toBe
(
'test room'
)
await
Room
.
findByIdAndDelete
(
res
.
body
.
_id
)
})
test
(
'Get rooms list'
,
async
()
=>
{
const
res
=
await
request
(
server
).
get
(
'/rooms'
)
expect
(
res
.
statusCode
).
toBe
(
200
)
})
test
(
'Delete room by id'
,
async
()
=>
{
const
deleteRoom
=
await
Room
.
create
({
room
:
'room to be deleted'
})
const
res
=
await
request
(
server
).
delete
(
'/rooms/'
+
deleteRoom
.
_id
)
expect
(
res
.
statusCode
).
toBe
(
200
)
expect
(
res
.
body
.
message
).
toBe
(
'Success'
)
})
})
\ No newline at end of file
api/app/config.js
View file @
6616d4ab
...
...
@@ -10,7 +10,6 @@ let host = process.env.MONGO_HOST
let
dbMongo
=
process
.
env
.
MONGO_DB
let
port
=
process
.
env
.
MONGO_PORT
let
initDb
=
process
.
env
.
MONGO_INITDB
;
module
.
exports
=
{
rootPath
,
uploadPath
:
path
.
join
(
rootPath
,
'../public/uploads'
),
...
...
@@ -19,6 +18,7 @@ module.exports = {
// name: 'test',
// name:`${dbMongo}?authSource=${initDb}`, //docker
name
:
process
.
env
.
MONGO_DB
?
`
${
dbMongo
}
?authSource=
${
initDb
}
`
:
'froot'
,
// url: 'mongodb://localhost',
// url: 'mongodb+srv://QWE123:QWE123@cluster0.rrd3k.mongodb.net', // Pasha's mongo address !!
// url:`mongodb://${user}:${password}@${host}:${port}`, //docker
...
...
api/app/middleware/auth.js
View file @
6616d4ab
...
...
@@ -2,7 +2,6 @@ const User = require("../models/User");
const
auth
=
async
(
req
,
res
,
next
)
=>
{
const
token
=
req
.
get
(
'Authorization'
);
// console.log('AUTH TOKEN*************** ', token)
if
(
!
token
)
{
// console.log('AUTH TOKEN FIRST IF TOKEN ERROR*************** ', token)
return
res
.
status
(
401
).
send
({
error
:
'No token present'
});
...
...
api/app/middleware/permit.js
View file @
6616d4ab
const
permit
=
(...
roles
)
=>
{
return
(
req
,
res
,
next
)
=>
{
return
(
req
,
res
,
next
)
=>
{
if
(
!
req
.
user
)
{
return
res
.
status
(
401
).
send
({
'message'
:
'Unauthenticated'
})
}
...
...
api/app/payments.js
View file @
6616d4ab
...
...
@@ -22,7 +22,6 @@ schedule.scheduleJob("16 21 * * *", async function(){
console
.
log
(
e
)
}
});
const
createRouter
=
()
=>
{
router
.
get
(
'/'
,
auth
,
async
(
req
,
res
)
=>
{
...
...
@@ -176,6 +175,7 @@ const createRouter = () => {
};
try
{
const
payments
=
await
Payment
.
find
(
filter
).
populate
(
'user'
,
'surname name workEmail'
);
await
helpers
.
checkRepeatability
(
payments
)
await
helpers
.
buildExcelFile
(
payments
)
res
.
send
(
payments
);
...
...
@@ -193,8 +193,9 @@ const createRouter = () => {
};
try
{
const
payments
=
await
Payment
.
find
(
filter
).
populate
(
'user'
,
'surname name workEmail'
);
let
files
=
[]
payments
.
map
(
p
=>
{
payments
&&
payments
.
map
(
p
=>
{
if
(
p
.
image
){
files
.
push
(
p
.
image
)
}
...
...
api/app/room.js
→
api/app/room
s
.js
View file @
6616d4ab
File moved
api/app/users.js
View file @
6616d4ab
...
...
@@ -5,6 +5,7 @@ const router = express.Router();
const
User
=
require
(
'./models/User'
);
const
createRouter
=
()
=>
{
router
.
get
(
'/'
,
[
auth
,
permit
(
'viewUsers'
)],
async
(
req
,
res
)
=>
{
...
...
api/index.js
View file @
6616d4ab
...
...
@@ -4,7 +4,6 @@ const User = require('./app/models/User');
const
{
app
,
port
}
=
require
(
'./app'
);
const
run
=
async
()
=>
{
if
(
process
.
env
.
NODE_ENV
!==
'test'
)
{
///// !!!чтобы отрабатывала тестовая среда - перенес сюда коннект к монго и слежение порта
await
mongoose
.
connect
(
config
.
db
.
url
+
'/'
+
config
.
db
.
name
,
{
useNewUrlParser
:
true
,
useUnifiedTopology
:
true
});
...
...
api/package.json
View file @
6616d4ab
...
...
@@ -8,7 +8,7 @@
"seed"
:
"node fixtures.js"
,
"test"
:
"mocha"
,
"start"
:
"node index.js"
,
"test:jest"
:
"NODE_ENV=test jest --detectOpenHandles --maxWorkers=1 --forceExit"
"test:jest"
:
"NODE_ENV=test jest --detectOpenHandles --
watch --
maxWorkers=1 --forceExit"
},
"jest"
:
{
"bail"
:
true
,
...
...
front/src/components/Header/Header.js
View file @
6616d4ab
...
...
@@ -21,7 +21,7 @@ const Header = ({ user }) => {
},[]);
useEffect
(()
=>
{
if
(
windowWidth
>
1
5
00
){
if
(
windowWidth
>
1
2
00
){
setState
({
menuShow
:
true
,
accauntShow
:
true
});
}
},[
windowWidth
])
...
...
@@ -62,7 +62,7 @@ const Header = ({ user }) => {
<
NavLink
to
=
"/"
>
<
img
src
=
{
logo
}
alt
=
"logo"
/>
<
/NavLink
>
<
button
className
=
{
windowWidth
>
1
5
00
?
'Header__menu--none'
:
"UserMenu__btn Header__burger"
}
onClick
=
{
menuClick
}
>
Menu
<
/button
>
<
button
className
=
{
windowWidth
>
1
2
00
?
'Header__menu--none'
:
"UserMenu__btn Header__burger"
}
onClick
=
{
menuClick
}
>
Menu
<
/button
>
<
menu
className
=
{
classNameOfMenu
}
>
{
user
&&
user
.
role
.
includes
(
"viewAllPayments"
)
&&
(
<
Fragment
>
...
...
@@ -95,7 +95,6 @@ const Header = ({ user }) => {
<
/NavLink
>
<
/MenuItem
>
)}
{
console
.
log
(
user
.
role
)}
{
user
.
role
.
includes
(
"viewAllPayments"
)
&&
(
<
MenuItem
>
...
...
@@ -154,7 +153,7 @@ const Header = ({ user }) => {
)}
<
/menu
>
<
button
className
=
{
windowWidth
>
1
5
00
?
'Header__menu--none'
:
"UserMenu__btn Header__burger"
}
onClick
=
{
accauntClick
}
>
Профиль
<
/button
>
<
button
className
=
{
windowWidth
>
1
2
00
?
'Header__menu--none'
:
"UserMenu__btn Header__burger"
}
onClick
=
{
accauntClick
}
>
Профиль
<
/button
>
<
div
className
=
{
classNameOfAccaunt
}
>
{
user
?
<
UserMenu
user
=
{
user
}
/> : <AnonymousMenu /
>
}
<
/div
>
<
/div
>
);
...
...
front/src/config.js
View file @
6616d4ab
//
export const apiURL = "http://localhost:8000";
export
const
apiURL
=
"http://162.55.54.115:8000"
;
export
const
apiURL
=
"http://localhost:8000"
;
//
export const apiURL = "http://162.55.54.115:8000";
const
allDayLocalizationMessages
=
{
"ru-RU"
:
{
...
...
front/src/containers/Payments/Payments.js
View file @
6616d4ab
...
...
@@ -169,7 +169,7 @@ const Payments = () => {
return
(
<
Fragment
>
{
user
&&
payments
.
length
?
<
div
className
=
"Payments"
>
{
user
&&
<
div
className
=
"Payments"
>
{
user
.
role
.
includes
(
'viewAllPayments'
)
?
(
<
Fragment
>
<
div
className
=
"Payments__content"
>
...
...
@@ -188,7 +188,7 @@ const Payments = () => {
<
/Fragment
>
):
<
UsersPermission
/>
}
<
/div>
: <RedirectToAuth/
>
}
<
/div>
}
<
/Fragment
>
);
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment