-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmocha.out
More file actions
199 lines (181 loc) · 19.1 KB
/
mocha.out
File metadata and controls
199 lines (181 loc) · 19.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
> sobch@1.0.0 test
> c8 --config .c8rc mocha -C test -t 30000 --exit
{"level":"info","message":"Using FIRE_BASE_CONFIG from environment variable","module":"config"}
{"level":"info","message":"Using SERVICE_ACCOUNT from environment variable","module":"config"}
{"level":"info","message":"Using EMAIL from environment variable","module":"config"}
{"level":"info","message":"Using PASSWORD from environment variable","module":"config"}
{"level":"info","message":"Using ACC_PASSWORD from environment variable","module":"config"}
{"level":"info","message":"Using TEST_PASSWORD from environment variable","module":"config"}
{"level":"info","message":"Using ACC_PASSWORD2 from environment variable","module":"config"}
{"level":"info","message":"Using WEAK_PASSWORD from environment variable","module":"config"}
Server can start
✔ running init
{"level":"info","message":"Server is running on port 8000","module":"main","url":"http://0.0.0.0:8000/"}
login endpoint
{"endPoint":"/login","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"error":{"code":"auth/wrong-password","customData":{},"name":"FirebaseError"},"level":"error","message":"Failed to login Invalid Credentials","module":"login"}
✔ invalid password responds with status 400 (588ms)
{"endPoint":"/login","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"error":{"code":"auth/user-not-found","customData":{},"name":"FirebaseError"},"level":"error","message":"Failed to login Invalid Credentials","module":"login"}
✔ invalid email responds with status 400 (660ms)
{"endPoint":"/login","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"level":"info","message":"Logged in","module":"login","user":"VfULdqBkeYXXtjP0xK6lVvYQTIW2"}
✔ valid credentials responds with status 200 (651ms)
non-admin login
{"endPoint":"/login","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"level":"info","message":"Logged in","module":"login","user":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}
✔ setting non-admin accessToken (604ms)
My devices endpoint
{"endPoint":"/my-devices","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"request received on /api/my-devices","method":"POST","module":"main","time":"2022-06-14T23:03:21.081Z","user":{"email":"s.el.sayed.aly@student.rug.nl","uid":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}}
{"level":"info","message":"OTP MATCHES!","module":"my-devices"}
✔ User can link Device (381ms)
{"endPoint":"/my-devices","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"request received on /api/my-devices","method":"GET","module":"main","time":"2022-06-14T23:03:21.386Z","user":{"email":"s.el.sayed.aly@student.rug.nl","uid":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}}
✔ user can get his devices (127ms)
Edit a device endpoint
{"endPoint":"/alter","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"request received on /api/alter/31","method":"PUT","module":"main","time":"2022-06-14T23:03:21.513Z","user":{"email":"s.el.sayed.aly@student.rug.nl","uid":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}}
{"device":{"config":{"active":false,"max":25,"min":15,"room":"somewhere man"},"currentTemp":28.15,"id":"31","model":"Sobch DHT-33","otp":"PYFL-TUVB-MGEE-SYIP","owners":["1CUMvWFlucbIddCwslwEsY5qlQb2","yDU8z6Mizch1g4PMQHvWseYD8yF3","a2szgwUYHnUMInbc6cdiwXHeUN73","9GJaxXLYP5SaQDurokIpX2Yu79v1","C2y79Se9cXbPgJ6vQBQRMyEN53o2","r1bucucbP2SJ8TfwlPAlVsSwBQ33","sdWA2bBTtRZXTbZm8Tm7O6OeKba2","DadagQ51hSMNOhS6LcQepQyM4Mo1","MZiSYfePi2bDT6yakY7p8yqAmtr1","1dvAx78n6oUad6rn7390iA7YztS2","URLXxE2SaMPe6c33UCsYwyg6rOz2","UF3lohcWBGXhrMDjEVlUl1xqtmW2","MP43Ieh6ySUJ0jD7TkSPCoZAbd72","nkVpuhFrj1aPaNPJWSqFxxsEULj1","cKJS6IQrayM9EUt4Zb7IFgHVjBC3"]},"level":"info","message":"Success device updated","module":"alter","user":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}
1
✔ user can alter his chosen device (206ms)
{"endPoint":"/alter","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"request received on /api/alter/0","method":"PUT","module":"main","time":"2022-06-14T23:03:21.718Z","user":{"email":"s.el.sayed.aly@student.rug.nl","uid":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}}
{"level":"info","message":"Unauthorized user does not exist","module":"alter","user":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}
✔ user cannot alter a device that they do not own (58ms)
{"endPoint":"/my-devices","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"request received on /api/my-devices","method":"POST","module":"main","time":"2022-06-14T23:03:21.777Z","user":{"email":"s.el.sayed.aly@student.rug.nl","uid":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}}
{"level":"info","message":"Unauthorized request to add device","module":"my-devices"}
✔ user cannot alter a device with incorrect / unmatching credentials
{"endPoint":"/my-devices","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"request received on /api/my-devices","method":"POST","module":"main","time":"2022-06-14T23:03:21.805Z","user":{"email":"s.el.sayed.aly@student.rug.nl","uid":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}}
{"level":"info","message":"Unauthorized request to add device","module":"my-devices"}
✔ Wrong otp/id Add Device (46ms)
{"endPoint":"/my-devices","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"request received on /api/my-devices","method":"POST","module":"main","time":"2022-06-14T23:03:21.851Z","user":{"email":"s.el.sayed.aly@student.rug.nl","uid":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}}
{"level":"error","message":{},"module":"my-devices"}
✔ Empty Request Add device
get device stats endpoint
{"endPoint":"/stats","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"request received on /api/stats/31","method":"GET","module":"main","time":"2022-06-14T23:03:21.855Z","user":{"email":"s.el.sayed.aly@student.rug.nl","uid":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}}
{"level":"info","message":{"config":{"active":false,"max":25,"min":15,"room":"somewhere man"},"currentTemp":28.15,"id":"31","model":"Sobch DHT-33","otp":"PYFL-TUVB-MGEE-SYIP","owners":["1CUMvWFlucbIddCwslwEsY5qlQb2","yDU8z6Mizch1g4PMQHvWseYD8yF3","a2szgwUYHnUMInbc6cdiwXHeUN73","9GJaxXLYP5SaQDurokIpX2Yu79v1","C2y79Se9cXbPgJ6vQBQRMyEN53o2","r1bucucbP2SJ8TfwlPAlVsSwBQ33","sdWA2bBTtRZXTbZm8Tm7O6OeKba2","DadagQ51hSMNOhS6LcQepQyM4Mo1","MZiSYfePi2bDT6yakY7p8yqAmtr1","1dvAx78n6oUad6rn7390iA7YztS2","URLXxE2SaMPe6c33UCsYwyg6rOz2","UF3lohcWBGXhrMDjEVlUl1xqtmW2","MP43Ieh6ySUJ0jD7TkSPCoZAbd72","nkVpuhFrj1aPaNPJWSqFxxsEULj1","cKJS6IQrayM9EUt4Zb7IFgHVjBC3"]},"module":"stats"}
31 31
✔ user can get device stats (646ms)
{"endPoint":"/stats","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"unauthorized request received on /api/stats/31","method":"GET","module":"main","time":"2022-06-14T23:03:22.503Z"}
✔ user unauthorized to get device stats
Delete a device endpoint
{"endPoint":"/alter","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"request received on /api/alter/31","method":"DELETE","module":"main","time":"2022-06-14T23:03:22.508Z","user":{"email":"s.el.sayed.aly@student.rug.nl","uid":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}}
{"deviceId":"31","level":"info","message":"Success device deleted","module":"alter","user":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}
✔ user can delete a device that they own (108ms)
{"endPoint":"/alter","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"request received on /api/alter/0","method":"DELETE","module":"main","time":"2022-06-14T23:03:22.618Z","user":{"email":"s.el.sayed.aly@student.rug.nl","uid":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}}
{"level":"info","message":"Unauthorized user does not own this device","module":"alter","user":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}
✔ user cannot delete a device that they do not own (43ms)
My profile endpoint
{"endPoint":"/profile","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"request received on /api/profile/","method":"GET","module":"main","time":"2022-06-14T23:03:22.662Z","user":{"email":"s.el.sayed.aly@student.rug.nl","uid":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}}
{"level":"info","message":"Profile details returned successfully","module":"profile"}
✔ User can get their profile
{"endPoint":"/profile","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"request received on /api/profile/cKJS6IQrayM9EUt4Zb7IFgHVjBC3","method":"GET","module":"main","time":"2022-06-14T23:03:22.686Z","user":{"email":"s.el.sayed.aly@student.rug.nl","uid":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}}
✔ Non-Admin cannot get user profile information, response = 401
{"endPoint":"/profile","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"request received on /api/profile/1111","method":"GET","module":"main","time":"2022-06-14T23:03:22.712Z","user":{"email":"mo.alshakoush@gmail.com","uid":"VfULdqBkeYXXtjP0xK6lVvYQTIW2"}}
{"level":"info","message":"Profile details returned successfully ","module":"profile","requested":"1111","requester":"VfULdqBkeYXXtjP0xK6lVvYQTIW2"}
✔ Admin cannot get user profile information if non-existent profile = null (98ms)
{"endPoint":"/profile","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"unauthorized request received on /api/profile/","method":"GET","module":"main","time":"2022-06-14T23:03:22.810Z"}
✔ User cannot get his/her information if not logged in
logout endpoint
{"endPoint":"/logout","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"request received on /api/logout","method":"POST","module":"main","time":"2022-06-14T23:03:22.814Z","user":{"email":"mo.alshakoush@gmail.com","uid":"VfULdqBkeYXXtjP0xK6lVvYQTIW2"}}
{"level":"info","message":"Logged out","module":"logout","user":"VfULdqBkeYXXtjP0xK6lVvYQTIW2"}
✔ logout endpoint works
register endpoint
{"endPoint":"/register","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
✔ register endpoint works (715ms)
{"endPoint":"/register","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"level":"error","message":{"code":"auth/email-already-in-use","customData":{"_tokenResponse":{"error":{"code":400,"errors":[{"domain":"global","message":"EMAIL_EXISTS","reason":"invalid"}],"message":"EMAIL_EXISTS"}},"appName":"[DEFAULT]"},"name":"FirebaseError"},"module":"register"}
✔ email already in use (435ms)
{"endPoint":"/register","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"level":"info","message":"Success - Verification email sent","module":"register","user":"XYK2aOpOvDXfRoWAq6xegydLBmn1"}
{"level":"error","message":{"code":"auth/weak-password","customData":{"appName":"[DEFAULT]"},"name":"FirebaseError"},"module":"register"}
✔ weak password (252ms)
{"endPoint":"/register","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"level":"error","message":{"code":"auth/invalid-email","customData":{},"name":"FirebaseError"},"module":"register"}
✔ invalid email (256ms)
login endpoint for account delete
{"endPoint":"/login","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"level":"info","message":"Logged in","module":"login","user":"XYK2aOpOvDXfRoWAq6xegydLBmn1"}
✔ valid credentials responds with status 200 (978ms)
{"endPoint":"/register","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"request received on /api/register","method":"DELETE","module":"main","time":"2022-06-14T23:03:25.460Z","user":{"email":"testendpoint@test.com","uid":"XYK2aOpOvDXfRoWAq6xegydLBmn1"}}
{"level":"info","message":"Success - Account deleted","module":"register"}
✔ delete account works (1069ms)
Edit-Profile endpoint
{"endPoint":"/profile","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"request received on /api/profile/","method":"PUT","module":"main","time":"2022-06-14T23:03:26.532Z","user":{"email":"s.el.sayed.aly@student.rug.nl","uid":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}}
{"level":"info","message":"User information updated","module":"profile"}
{"level":"info","message":"Success - Information updated","module":"profile"}
✔ User can edit his/her address (50ms)
{"endPoint":"/profile","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"request received on /api/profile/","method":"PUT","module":"main","time":"2022-06-14T23:03:26.584Z","user":{"email":"s.el.sayed.aly@student.rug.nl","uid":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}}
{"level":"info","message":"Success - Information updated","module":"profile"}
✔ User can edit his/her information blank and unchanged
{"endPoint":"/profile","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"unauthorized request received on /api/profile/","method":"PUT","module":"main","time":"2022-06-14T23:03:26.611Z"}
✔ User cannot edit his/her information if not logged in
{"endPoint":"/profile","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"request received on /api/profile/","method":"PUT","module":"main","time":"2022-06-14T23:03:26.616Z","user":{"email":"s.el.sayed.aly@student.rug.nl","uid":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}}
{"level":"info","message":"email updated","module":"profile"}
{"level":"info","message":"Success - Information updated","module":"profile"}
✔ User can edit his/her email (811ms)
{"endPoint":"/login","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"level":"info","message":"Logged in","module":"login","user":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}
✔ try and login with new email (644ms)
{"endPoint":"/profile","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"request received on /api/profile/","method":"PUT","module":"main","time":"2022-06-14T23:03:28.073Z","user":{"email":"pain@gmail.com","uid":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}}
{"level":"info","message":"email updated","module":"profile"}
{"level":"info","message":"Success - Information updated","module":"profile"}
✔ User can edit his/her email, continuation.. (820ms)
{"endPoint":"/login","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"level":"info","message":"Logged in","module":"login","user":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}
✔ try and login with old email again (712ms)
{"endPoint":"/profile","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"request received on /api/profile/","method":"PUT","module":"main","time":"2022-06-14T23:03:29.605Z","user":{"email":"s.el.sayed.aly@student.rug.nl","uid":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}}
{"level":"info","message":"User's password has been succesfully updated","module":"profile"}
{"level":"info","message":"Success - Information updated","module":"profile"}
✔ User can edit his/her password (618ms)
{"endPoint":"/login","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"level":"info","message":"Logged in","module":"login","user":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}
✔ try and login with new password (770ms)
{"endPoint":"/profile","ip":"::ffff:127.0.0.1","level":"info","message":"Request received","module":"main"}
{"ip":"::ffff:127.0.0.1","level":"info","message":"request received on /api/profile/","method":"PUT","module":"main","time":"2022-06-14T23:03:30.995Z","user":{"email":"s.el.sayed.aly@student.rug.nl","uid":"cKJS6IQrayM9EUt4Zb7IFgHVjBC3"}}
{"level":"info","message":"User's password has been succesfully updated","module":"profile"}
{"level":"info","message":"Success - Information updated","module":"profile"}
✔ User can edit his/her password, back to normal (686ms)
37 passing (13s)
--------------------|---------|----------|---------|---------|--------------------------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
--------------------|---------|----------|---------|---------|--------------------------------------
All files | 75.8 | 55.48 | 72.22 | 75.8 |
lib | 85.71 | 68.96 | 66.66 | 85.71 |
config.js | 82.84 | 75 | 63.63 | 82.84 | ...1,133-134,145-173,192-198,203-205
firebase.js | 100 | 40 | 100 | 100 | 44
web | 90.58 | 73.68 | 100 | 90.58 |
server.js | 90.58 | 73.68 | 100 | 90.58 | 59,89-90,93-94,105-113,159-160
web/routes | 88.88 | 100 | 100 | 88.88 |
index.js | 88.88 | 100 | 100 | 88.88 | 11-12
web/routes/auth | 76.85 | 76.92 | 100 | 76.85 |
login.js | 59.25 | 75 | 100 | 59.25 | 11,38-47,62-64,74-103
logout.js | 91.17 | 66.66 | 100 | 91.17 | 26-28
register.js | 91 | 81.81 | 100 | 91 | 29-32,67-68,89-91
web/routes/devices | 69.66 | 37.7 | 50 | 69.66 |
alter.js | 73.28 | 28 | 100 | 73.28 | ...-81,94-97,100-103,116-118,124-126
my-devices.js | 69.59 | 47.82 | 50 | 69.59 | ...1,113-116,144-150,157-162,164-166
stats.js | 64.36 | 38.46 | 100 | 64.36 | ...-44,50-51,55-58,69-70,74-78,80-81
web/routes/users | 55.89 | 46.42 | 100 | 55.89 |
profile.js | 55.89 | 46.42 | 100 | 55.89 | ...2,158-159,163-170,176-178,185-190
--------------------|---------|----------|---------|---------|--------------------------------------