Skip to content

Commit 6072006

Browse files
fix clean up
1 parent 395b750 commit 6072006

File tree

7 files changed

+36
-51
lines changed

7 files changed

+36
-51
lines changed

ReadMe.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ Configuration for testing is at `config/test.js`, only add such new configuratio
8484
- COPILOT_CREDENTIALS_PASSWORD: The user's password with copilot role
8585
- USER_CREDENTIALS_USERNAME: The user's username with user role
8686
- USER_CREDENTIALS_PASSWORD: The user's password with user role
87-
- POSTMAN_ROLE_NAME_PREFIX: the role name prefix for every `ResourceRole` record
87+
- AUTOMATED_TESTING_NAME_PREFIX: the role name prefix for every `ResourceRole` record
8888
- MOCK_BUS_API_BY_NOCK: indicates whether Nock is used for mocking Bus API.
8989

9090
## Available commands
@@ -229,4 +229,4 @@ npm run test:newman:clear
229229

230230
## Verification
231231

232-
Refer to the verification document `Verification.md`.
232+
Refer to the verification document `Verification.md`.

app-routes.js

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ module.exports = (app) => {
5858
} else {
5959
// User
6060
req.authUser.userId = String(req.authUser.userId)
61+
console.log(req.authUser)
6162
if (!req.authUser.roles || !helper.checkIfExists(def.access, req.authUser.roles)) {
6263
next(new errors.ForbiddenError('You are not allowed to perform this action!'))
6364
} else {

config/default.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -63,5 +63,7 @@ module.exports = {
6363
RESOURCE_CREATE_TOPIC: process.env.RESOURCE_CREATE_TOPIC || 'challenge.action.resource.create',
6464
RESOURCE_DELETE_TOPIC: process.env.RESOURCE_DELETE_TOPIC || 'challenge.action.resource.delete',
6565
RESOURCE_ROLE_CREATE_TOPIC: process.env.RESOURCE_ROLE_CREATE_TOPIC || 'challenge.action.resource.role.create',
66-
RESOURCE_ROLE_UPDATE_TOPIC: process.env.RESOURCE_ROLE_UPDATE_TOPIC || 'challenge.action.resource.role.update'
66+
RESOURCE_ROLE_UPDATE_TOPIC: process.env.RESOURCE_ROLE_UPDATE_TOPIC || 'challenge.action.resource.role.update',
67+
68+
AUTOMATED_TESTING_NAME_PREFIX: process.env.AUTOMATED_TESTING_NAME_PREFIX || 'POSTMANE2E-',
6769
}

config/test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@ module.exports = {
1717
COPILOT_CREDENTIALS_PASSWORD: process.env.COPILOT_CREDENTIALS_PASSWORD || '',
1818
USER_CREDENTIALS_USERNAME: process.env.USER_CREDENTIALS_USERNAME || '',
1919
USER_CREDENTIALS_PASSWORD: process.env.USER_CREDENTIALS_PASSWORD || '',
20-
POSTMAN_ROLE_NAME_PREFIX: process.env.POSTMAN_ROLE_NAME_PREFIX || 'POSTMANE2E-',
20+
AUTOMATED_TESTING_NAME_PREFIX: process.env.AUTOMATED_TESTING_NAME_PREFIX || 'POSTMANE2E-',
2121
MOCK_BUS_API_BY_NOCK: process.env.MOCK_BUS_API_BY_NOCK ? process.env.MOCK_BUS_API_BY_NOCK === 'true' : true
2222
}

src/services/CleanUpService.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ const deleteFromDBById = async (modelName, id) => {
7272
const cleanUpTestData = async () => {
7373
logger.info('clear the test data from postman test!')
7474
let roles = await helper.scanAll('ResourceRole')
75-
roles = _.filter(roles, r => (r.name.startsWith(config.POSTMAN_ROLE_NAME_PREFIX)))
75+
roles = _.filter(roles, r => (r.name.startsWith(config.AUTOMATED_TESTING_NAME_PREFIX)))
7676
for (const role of roles) {
7777
let roleId = role.id
7878
let rolePhaseDeps = await helper.scanAll('ResourceRolePhaseDependency')

test/postman/ClearPostmanData.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ clear the test data from postman test completed!
3434
info: Done!
3535
```
3636
## Strategy
37-
1. Setup the `POSTMAN_ROLE_NAME_PREFIX` from the test environment. This prefix should be a name that will never be used
37+
1. Setup the `AUTOMATED_TESTING_NAME_PREFIX` from the test environment. This prefix should be a name that will never be used
3838
set as part of the role name. e.g. 'POSTMANE2E-'. In this case, the created `ResourceRole` will have a name like 'POSTMANE2E-submitter'.
3939

4040
2. Choose either one solution for mocking the Bus API. We can not ignore this, becuase in production environment, it is
@@ -45,7 +45,7 @@ b. You can use use Postman's mock server. You can refer to https://drive.google.
4545
for details. You need to update the environment variable `BUSAPI_URL` to your Postman mock server.
4646

4747
3. Steps of clearing the test data from Postman tests.
48-
* Find all `ResourceRole` record whose names are starting with `POSTMAN_ROLE_NAME_PREFIX`.
48+
* Find all `ResourceRole` record whose names are starting with `AUTOMATED_TESTING_NAME_PREFIX`.
4949
* For each `ResourceRole` record, find all `ResourceRolePhaseDependency` records whose `resourceRoleId` are the same
5050
as the `id` of `RecourceRole`. Delete those `ResourceRolePhaseDependency` records.
5151
* For each `ResourceRole` record, find all `Resource` records whose `roleId` are the same
@@ -66,4 +66,4 @@ b. You can use use Postman's mock server. You can refer to https://drive.google.
6666
* Existing production data should not be affected by the tests. You need to suggest how to avoid this possible issue.
6767
_Check the strategy section. All testing data are removed at last._
6868
* If possible, we should be able to differentiate the test data from the actual data so we can filter it out from the search results of the production API. Please suggest how to achieve this.
69-
_Check the strategy section. We can easy find all `ResourceRole` records with the given role name prefix. Then we can find all the related `ResourceRolePhaseDependency` and `Resource`._
69+
_Check the strategy section. We can easy find all `ResourceRole` records with the given role name prefix. Then we can find all the related `ResourceRolePhaseDependency` and `Resource`._

test/postman/resource-api.postman_environment.json

+25-43
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
{
22
"_": {
33
"postman_variable_scope": "environment",
4-
"postman_exported_at": "2021-05-12T17:21:36.173Z",
4+
"postman_exported_at": "2021-05-13T11:09:00.610Z",
55
"postman_exported_using": "Newman/5.2.2"
66
},
77
"id": "8972a3df-731f-4475-b089-ccbb28735083",
88
"name": "resource-api",
99
"values": [
1010
{
1111
"type": "any",
12-
"value": "https://api.topcoder-dev.com/v5",
12+
"value": "http://localhost:3000/v5",
1313
"key": "URL"
1414
},
1515
{
@@ -24,17 +24,17 @@
2424
},
2525
{
2626
"type": "any",
27-
"value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlcyI6WyJDb25uZWN0IFN1cHBvcnQiLCJ0ZXN0Um9sZSIsImFhYSIsInRvbnlfdGVzdF8xIiwiQ29ubmVjdCBNYW5hZ2VyIiwiQ29ubmVjdCBBZG1pbiIsImNvcGlsb3QiLCJDb25uZWN0IENvcGlsb3QgTWFuYWdlciIsIlRvcGNvZGVyIFVzZXIiLCJhZG1pbmlzdHJhdG9yIiwidS1iYWhuIl0sImlzcyI6Imh0dHBzOi8vYXBpLnRvcGNvZGVyLWRldi5jb20iLCJoYW5kbGUiOiJUb255SiIsImV4cCI6MTYyMDg0MDc0NSwidXNlcklkIjoiODU0Nzg5OSIsImlhdCI6MTYyMDg0MDE0NSwiZW1haWwiOiJhamVmdHNAdG9wY29kZXIuY29tIiwianRpIjoiMWRkOTkxZGYtYzhhNC00MjJmLTkxY2UtMWI3NDgzZjQ2NmEzIn0.tpGhiHChM_5A-gVFfK-TBtgHGhMlIZ9KJ7W3zcoy5Uw",
27+
"value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlcyI6WyJDb25uZWN0IFN1cHBvcnQiLCJ0ZXN0Um9sZSIsImFhYSIsInRvbnlfdGVzdF8xIiwiQ29ubmVjdCBNYW5hZ2VyIiwiQ29ubmVjdCBBZG1pbiIsImNvcGlsb3QiLCJDb25uZWN0IENvcGlsb3QgTWFuYWdlciIsIlRvcGNvZGVyIFVzZXIiLCJhZG1pbmlzdHJhdG9yIiwidS1iYWhuIl0sImlzcyI6Imh0dHBzOi8vYXBpLnRvcGNvZGVyLWRldi5jb20iLCJoYW5kbGUiOiJUb255SiIsImV4cCI6MTYyMDkwNDcyMCwidXNlcklkIjoiODU0Nzg5OSIsImlhdCI6MTYyMDkwNDEyMCwiZW1haWwiOiJhamVmdHNAdG9wY29kZXIuY29tIiwianRpIjoiN2ExYTNmZjMtNTBhZi00MGY1LWEwN2ItN2ZhYjU4YmM4YTgyIn0.mnXtBhgBJjbm4a8SQwgVioNa_rLHSEq102GXHpeLf-w",
2828
"key": "admin_token"
2929
},
3030
{
3131
"type": "any",
32-
"value": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5VSkZORGd4UlRVME5EWTBOVVkzTlRkR05qTXlRamxETmpOQk5UYzVRVUV3UlRFeU56TTJRUSJ9.eyJpc3MiOiJodHRwczovL3RvcGNvZGVyLWRldi5hdXRoMC5jb20vIiwic3ViIjoiRWtFOXFVM0V5NmhkSndPc0YxWDBkdXdza3FjRHVFbFdAY2xpZW50cyIsImF1ZCI6Imh0dHBzOi8vbTJtLnRvcGNvZGVyLWRldi5jb20vIiwiaWF0IjoxNjIwODQwMTQxLCJleHAiOjE2MjA5MjY1NDEsImF6cCI6IkVrRTlxVTNFeTZoZEp3T3NGMVgwZHV3c2txY0R1RWxXIiwic2NvcGUiOiJyZWFkOmNoYWxsZW5nZXMgcmVhZDpncm91cHMgcmVhZDpzdWJtaXNzaW9uIHJlYWQ6cmV2aWV3X3R5cGUgcmVhZDpyZXZpZXdfc3VtbWF0aW9uIHJlYWQ6cmV2aWV3IHJlYWQ6cHJvamVjdCByZWFkOmJ1c190b3BpY3Mgd3JpdGU6YnVzX2FwaSByZWFkOmVtYWlsX3RlbXBsYXRlcyByZWFkOnVzZXJfcHJvZmlsZXMgcmVhZDpyb2xlcyByZWFkOnJlc291cmNlcyB3cml0ZTpyZXNvdXJjZXMgZGVsZXRlOnJlc291cmNlcyB1cGRhdGU6cmVzb3VyY2VzIGFsbDpyZXNvdXJjZXMiLCJndHkiOiJjbGllbnQtY3JlZGVudGlhbHMifQ.n5yC4p7HIpAWIqR0MIKsdVw8S5xZnbNkfR033mdnkIpg1HWPl-8-lqm6t4hKGZyZKkgXYaGfldCYW2zKYoKKBBBNckrx41SNqYwD_QjmaMavtejRKbYDnIge-GIN4HcMVvamUSi7rmAlhIRJOI2GCtMYehga_plUYTANkkLzBLBnHXUsz3QlUbLF3V_AxNN3KmWJCQODYMe2A7nd2hBUBG-mViXsZkNPqf0mOwvjVoXKO2-TDsEKW05YX66xjGbEgMye8VqFLUnTRg8NAO0k77PVplEmXjNEV601GGTy4MZs2AI1Q_b3t4xQzPY5pbKNiVwtdGh-rNk7_EkYsPwTCA",
32+
"value": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5VSkZORGd4UlRVME5EWTBOVVkzTlRkR05qTXlRamxETmpOQk5UYzVRVUV3UlRFeU56TTJRUSJ9.eyJpc3MiOiJodHRwczovL3RvcGNvZGVyLWRldi5hdXRoMC5jb20vIiwic3ViIjoiRWtFOXFVM0V5NmhkSndPc0YxWDBkdXdza3FjRHVFbFdAY2xpZW50cyIsImF1ZCI6Imh0dHBzOi8vbTJtLnRvcGNvZGVyLWRldi5jb20vIiwiaWF0IjoxNjIwOTA0MTE2LCJleHAiOjE2MjA5OTA1MTYsImF6cCI6IkVrRTlxVTNFeTZoZEp3T3NGMVgwZHV3c2txY0R1RWxXIiwic2NvcGUiOiJyZWFkOmNoYWxsZW5nZXMgcmVhZDpncm91cHMgcmVhZDpzdWJtaXNzaW9uIHJlYWQ6cmV2aWV3X3R5cGUgcmVhZDpyZXZpZXdfc3VtbWF0aW9uIHJlYWQ6cmV2aWV3IHJlYWQ6cHJvamVjdCByZWFkOmJ1c190b3BpY3Mgd3JpdGU6YnVzX2FwaSByZWFkOmVtYWlsX3RlbXBsYXRlcyByZWFkOnVzZXJfcHJvZmlsZXMgcmVhZDpyb2xlcyByZWFkOnJlc291cmNlcyB3cml0ZTpyZXNvdXJjZXMgZGVsZXRlOnJlc291cmNlcyB1cGRhdGU6cmVzb3VyY2VzIGFsbDpyZXNvdXJjZXMiLCJndHkiOiJjbGllbnQtY3JlZGVudGlhbHMifQ.nekDOWG7XyFxQeXfR_HlRH4Giw0nAIiv3uvXDKa4rUp-aerSXsYz1JDnk_ehCP9cVs4Tf8eK9_zKN9yvD06zpWu4RgMgJpvcdCAXZRarxh457uUrfyuBPfBnYM8gy3rYtNjH0CBdGJBdFxp3NXXtp4goB6-Z7g2NJMXaXhD95KLS5hTiIM8dEjRk67Z720chSObOve2t_UQttuoumZL8mjFIr77zpjSi5pVzh_WXhhZFIpY2JA4b0nl2QiQJlEwVHO4COwbEOi-uMjjgDUcFi4gVwXARWbs9MXSNUnrU3p89gPoYIYRpaWvpi9p1Cnf68UX3FPDd5qxCWMsP5y1rKg",
3333
"key": "M2M_TOKEN"
3434
},
3535
{
3636
"type": "any",
37-
"value": "f8f03802-0e26-4a04-a0fc-6c058d0ea065",
37+
"value": "c184446e-e0bc-46ca-a1ed-e0f67b3490c8",
3838
"key": "COPILOT_RESOURCE_ROLE_ID"
3939
},
4040
{
@@ -84,90 +84,72 @@
8484
},
8585
{
8686
"type": "any",
87-
"value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlcyI6WyJDb25uZWN0IENvcGlsb3QiLCJjb3BpbG90IiwiVG9wY29kZXIgVXNlciJdLCJpc3MiOiJodHRwczovL2FwaS50b3Bjb2Rlci1kZXYuY29tIiwiaGFuZGxlIjoiVENDb25uQ29waWxvdCIsImV4cCI6MTYyMDg0MDc0OCwidXNlcklkIjoiNDAxNTg5OTQiLCJpYXQiOjE2MjA4NDAxNDgsImVtYWlsIjoidG9wY29kZXJjb25uZWN0K0NvcGlsb3RAZ21haWwuY29tIiwianRpIjoiMDBkNDY2NDYtZmRhOC00MTJlLTg2MGEtYjMzMzk2M2IyYmYxIn0.EVyg988ik9XUyweG7pl0KYLuouhxNFObn-OyP-sEyM8",
87+
"value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlcyI6WyJDb25uZWN0IENvcGlsb3QiLCJjb3BpbG90IiwiVG9wY29kZXIgVXNlciJdLCJpc3MiOiJodHRwczovL2FwaS50b3Bjb2Rlci1kZXYuY29tIiwiaGFuZGxlIjoiVENDb25uQ29waWxvdCIsImV4cCI6MTYyMDkwNDcyMiwidXNlcklkIjoiNDAxNTg5OTQiLCJpYXQiOjE2MjA5MDQxMjIsImVtYWlsIjoidG9wY29kZXJjb25uZWN0K0NvcGlsb3RAZ21haWwuY29tIiwianRpIjoiYmIwZjkzODUtMjg2NS00MGU0LWFmMDktYWMyZDdkYzAzMGY0In0.kNWyR9rLZDvphX7HkdkwLEtqZfupkd-yCGBggYFPICY",
8888
"key": "copilot_token"
8989
},
9090
{
9191
"type": "any",
92-
"value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlcyI6WyJjb3BpbG90Il0sImlzcyI6Imh0dHBzOi8vYXBpLnRvcGNvZGVyLWRldi5jb20iLCJoYW5kbGUiOiJhcmdvbGl0ZSIsImV4cCI6MTYyMDg0MDc1MSwidXNlcklkIjoiMjg3NjE0IiwiaWF0IjoxNjIwODQwMTUxLCJlbWFpbCI6ImVtYWlsQGRvbWFpbi5jb20ueiIsImp0aSI6ImYzM2I0M2E0LWU3MGEtNGQ0ZS05MmRiLTljODg3NjM3YWIzMCJ9.9BTyeA8LDQmkG8xAObvCnuziYJe5y1MhhHqNnYprYgE",
92+
"value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlcyI6WyJjb3BpbG90Il0sImlzcyI6Imh0dHBzOi8vYXBpLnRvcGNvZGVyLWRldi5jb20iLCJoYW5kbGUiOiJhcmdvbGl0ZSIsImV4cCI6MTYyMDkwNDcyNSwidXNlcklkIjoiMjg3NjE0IiwiaWF0IjoxNjIwOTA0MTI1LCJlbWFpbCI6ImVtYWlsQGRvbWFpbi5jb20ueiIsImp0aSI6IjQwN2YzNDUyLTFlNDEtNGExYS05YTRkLWU0ZDJiMDM5MjU3ZCJ9.Kdnv9MffG5y3uvyS8dM8KjKcgPyl0KmtguW4jvim8CI",
9393
"key": "user_token"
9494
},
9595
{
9696
"type": "any",
9797
"value": {
98-
"name": "POSTMANE2E-co-pilot",
99-
"fullReadAccess": true,
100-
"fullWriteAccess": false,
101-
"isActive": true,
102-
"selfObtainable": false,
103-
"httpCode": 200
98+
"jwtToken": "Bearer invalid",
99+
"httpCode": 401,
100+
"message": "Invalid Token."
104101
},
105102
"key": "0"
106103
},
107104
{
108105
"type": "any",
109106
"value": {
110-
"name": "POSTMANE2E-Observer",
111-
"fullReadAccess": true,
112-
"fullWriteAccess": true,
113-
"isActive": false,
114-
"selfObtainable": false,
115-
"httpCode": 200
107+
"jwtToken": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlcyI6WyJUb3Bjb2RlciBVc2VyIiwiQ29ubmVjdCBTdXBwb3J0IiwiYWRtaW5pc3RyYXRvciIsInRlc3RSb2xlIiwiYWFhIiwidG9ueV90ZXN0XzEiLCJDb25uZWN0IE1hbmFnZXIiLCJDb25uZWN0IEFkbWluIiwiY29waWxvdCIsIkNvbm5lY3QgQ29waWxvdCBNYW5hZ2VyIl0sImlzcyI6Imh0dHBzOi8vYXBpLnRvcGNvZGVyLWRldi5jb20iLCJoYW5kbGUiOiJUb255SiIsImV4cCI6MTU1MTA2MzIxMSwidXNlcklkIjoiODU0Nzg5OSIsImlhdCI6MTU1MTA1MzIxMSwiZW1haWwiOiJ0amVmdHMrZml4QHRvcGNvZGVyLmNvbSIsImp0aSI6ImY5NGQxZTI2LTNkMGUtNDZjYS04MTE1LTg3NTQ1NDRhMDhmMSJ9.97-pjuSGGqDAqK2FG2yi_3nmzB7ZMXQwtG0bi8_PlKk",
108+
"httpCode": 401,
109+
"message": "Failed to authenticate token."
116110
},
117111
"key": "1"
118112
},
119113
{
120114
"type": "any",
121115
"value": {
122-
"name": "POSTMANE2E-submitter",
123-
"fullReadAccess": true,
124-
"fullWriteAccess": true,
125-
"isActive": true,
126-
"selfObtainable": true,
127-
"httpCode": 200
116+
"jwtToken": "Bearer {{copilot_token}}",
117+
"httpCode": 403,
118+
"message": "You are not allowed to perform this action!"
128119
},
129120
"key": "2"
130121
},
131122
{
132123
"type": "any",
133124
"value": {
134-
"name": "POSTMANE2E-reviewer",
135-
"fullReadAccess": false,
136-
"fullWriteAccess": false,
137-
"isActive": true,
138-
"selfObtainable": false,
139-
"httpCode": 200
125+
"jwtToken": "Bearer {{user_token}}",
126+
"httpCode": 403,
127+
"message": "You are not allowed to perform this action!"
140128
},
141129
"key": "3"
142130
},
143131
{
144132
"type": "any",
145133
"value": {
146-
"invalid": "invalid",
147-
"fullReadAccess": true,
148-
"fullWriteAccess": false,
149-
"selfObtainable": false,
150-
"isActive": true,
151-
"httpCode": 400
134+
"httpCode": 401,
135+
"message": "No token provided."
152136
},
153137
"key": "4"
154138
},
155139
{
156140
"type": "any",
157141
"value": {
158-
"name": "POSTMANE2E-failure-test",
142+
"name": "POSTMANE2E-failure-test-m2m",
159143
"fullReadAccess": true,
160144
"fullWriteAccess": false,
161-
"selfObtainable": false,
162-
"isActive": false,
163145
"httpCode": 400
164146
},
165147
"key": "5"
166148
},
167149
{
168150
"type": "any",
169151
"value": {
170-
"name": "POSTMANE2E-submitter",
152+
"name": "POSTMANE2E-submitter-m2m",
171153
"fullReadAccess": true,
172154
"fullWriteAccess": true,
173155
"isActive": true,
@@ -178,6 +160,6 @@
178160
}
179161
],
180162
"_postman_variable_scope": "environment",
181-
"_postman_exported_at": "2021-05-12T17:22:31.673Z",
163+
"_postman_exported_at": "2021-05-13T11:09:07.583Z",
182164
"_postman_exported_using": "Newman/5.2.2"
183-
}
165+
}

0 commit comments

Comments
 (0)