From e284fffdee1dc2e4894e1a448b9c84ed88dc1f9a Mon Sep 17 00:00:00 2001 From: HardiReady Date: Sat, 24 Mar 2018 19:04:22 +0100 Subject: [PATCH] correct apib config and add dredd test data import/export + working run --- README.md | 2 +- api/apib/army-management/users.apib | 5 ++++- api/apib/auth/login.apib | 2 +- api/apib/auth/signup.apib | 2 +- api/apib/data_structures/_auth.apib | 2 +- api/apib/data_structures/_user.apib | 2 +- api/apib/dredd/data/app_user.json | 1 + api/apib/dredd/data/awarding.json | 0 api/apib/dredd/data/campaign.json | 0 api/apib/dredd/data/decoration.json | 0 api/apib/dredd/data/logBudget.json | 0 api/apib/dredd/data/logFlag.json | 0 api/apib/dredd/data/logKill.json | 0 api/apib/dredd/data/logPoints.json | 0 api/apib/dredd/data/logRespawn.json | 0 api/apib/dredd/data/logRevive.json | 0 api/apib/dredd/data/logTransport.json | 0 api/apib/dredd/data/player.json | 0 api/apib/dredd/data/promotion.json | 0 api/apib/dredd/data/rank.json | 0 api/apib/dredd/data/squad.json | 0 api/apib/dredd/data/user.json | 1 + api/apib/dredd/data/war.json | 0 api/apib/dredd/populate-data.sh | 29 +++++++++++++++++++++++++++ api/package.json | 2 +- api/routes/authenticate.js | 2 +- package.json | 3 ++- 27 files changed, 44 insertions(+), 9 deletions(-) create mode 100644 api/apib/dredd/data/app_user.json create mode 100644 api/apib/dredd/data/awarding.json create mode 100644 api/apib/dredd/data/campaign.json create mode 100644 api/apib/dredd/data/decoration.json create mode 100644 api/apib/dredd/data/logBudget.json create mode 100644 api/apib/dredd/data/logFlag.json create mode 100644 api/apib/dredd/data/logKill.json create mode 100644 api/apib/dredd/data/logPoints.json create mode 100644 api/apib/dredd/data/logRespawn.json create mode 100644 api/apib/dredd/data/logRevive.json create mode 100644 api/apib/dredd/data/logTransport.json create mode 100644 api/apib/dredd/data/player.json create mode 100644 api/apib/dredd/data/promotion.json create mode 100644 api/apib/dredd/data/rank.json create mode 100644 api/apib/dredd/data/squad.json create mode 100644 api/apib/dredd/data/user.json create mode 100644 api/apib/dredd/data/war.json create mode 100755 api/apib/dredd/populate-data.sh diff --git a/README.md b/README.md index bb94140..5b1d078 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ In addition, it sets up the mongo deamon to start up automatically with the syst For production setup run the script, described in _Setup for development_, adding the parameter `prod` - ./docs/opt-cc-environment/3rd-party-install.sh prod + ./docs/opt-cc-environment/3rd-party-install.sh prod This adds the [`pm2` process manager](http://pm2.keymetrics.io/) to be installed and start the _opt-cc_ server as `pm2` process. Run the `sudo` command printed as last output to configure the `pm2` process for automatic start on the system. diff --git a/api/apib/army-management/users.apib b/api/apib/army-management/users.apib index 60d441a..3d047a7 100644 --- a/api/apib/army-management/users.apib +++ b/api/apib/army-management/users.apib @@ -1,7 +1,10 @@ -### GET User [GET /users/:id] +### GET User [GET /users/{id}] Get single army member information ++ Parameters + + id: `5ab68d42f547ed304064e5f7` (string, required) - unique id of army-member + + Response 200 + Attributes (User) diff --git a/api/apib/auth/login.apib b/api/apib/auth/login.apib index 9d13aed..e0a4023 100644 --- a/api/apib/auth/login.apib +++ b/api/apib/auth/login.apib @@ -2,7 +2,7 @@ Generate a token which can be used to make API requests. -+ Request Generate Token ++ Request Generate Token (application/json) + Attributes (Login) diff --git a/api/apib/auth/signup.apib b/api/apib/auth/signup.apib index 3dc1036..5f3027b 100644 --- a/api/apib/auth/signup.apib +++ b/api/apib/auth/signup.apib @@ -2,7 +2,7 @@ Create a new application user account. -+ Request Create Account ++ Request Create Account (application/json) + Attributes (Registration) diff --git a/api/apib/data_structures/_auth.apib b/api/apib/data_structures/_auth.apib index 1caf9da..cdafe3b 100644 --- a/api/apib/data_structures/_auth.apib +++ b/api/apib/data_structures/_auth.apib @@ -3,7 +3,7 @@ User related entity for creating a token using application credentials ## Properties -+ username: `hardiready` (string, required) - username of the app-user ++ username: `testuser` (string, required) - username of the app-user + password: `password` (string, required) - password of the app-user # LoginResponse (object) diff --git a/api/apib/data_structures/_user.apib b/api/apib/data_structures/_user.apib index 67de2a9..9d94d1d 100644 --- a/api/apib/data_structures/_user.apib +++ b/api/apib/data_structures/_user.apib @@ -2,7 +2,7 @@ A participant managed in the system ## Properties -+ _id: `5918d2ca574b0b1d820a0b24` (string, required) - unique id of the army member ++ _id: `5ab68d42f547ed304064e5f7` (string, required) - unique id of the army member + username: `Jagernaut` - the displayed username of the army member + rankLvl: 22 (number, required) - rank level representing the rank + squadId (Squad, required) - populated squad which the army member is part of diff --git a/api/apib/dredd/data/app_user.json b/api/apib/dredd/data/app_user.json new file mode 100644 index 0000000..706e70b --- /dev/null +++ b/api/apib/dredd/data/app_user.json @@ -0,0 +1 @@ +{"_id":{"$oid":"5ab68ceef547ed304064e5f6"},"squad":null,"permission":3,"activated":true,"username":"testuser","secret":"my secret","password":"$2a$10$wvgBbcckHrFu8Ctw8hSPNuFLoBy4sRubioyiK1NabOC0UgYD.KITi","timestamp":{"$date":"2018-03-24T17:37:50.668Z"},"updatedAt":{"$date":"2018-03-24T17:37:50.668Z"},"__v":0} diff --git a/api/apib/dredd/data/awarding.json b/api/apib/dredd/data/awarding.json new file mode 100644 index 0000000..e69de29 diff --git a/api/apib/dredd/data/campaign.json b/api/apib/dredd/data/campaign.json new file mode 100644 index 0000000..e69de29 diff --git a/api/apib/dredd/data/decoration.json b/api/apib/dredd/data/decoration.json new file mode 100644 index 0000000..e69de29 diff --git a/api/apib/dredd/data/logBudget.json b/api/apib/dredd/data/logBudget.json new file mode 100644 index 0000000..e69de29 diff --git a/api/apib/dredd/data/logFlag.json b/api/apib/dredd/data/logFlag.json new file mode 100644 index 0000000..e69de29 diff --git a/api/apib/dredd/data/logKill.json b/api/apib/dredd/data/logKill.json new file mode 100644 index 0000000..e69de29 diff --git a/api/apib/dredd/data/logPoints.json b/api/apib/dredd/data/logPoints.json new file mode 100644 index 0000000..e69de29 diff --git a/api/apib/dredd/data/logRespawn.json b/api/apib/dredd/data/logRespawn.json new file mode 100644 index 0000000..e69de29 diff --git a/api/apib/dredd/data/logRevive.json b/api/apib/dredd/data/logRevive.json new file mode 100644 index 0000000..e69de29 diff --git a/api/apib/dredd/data/logTransport.json b/api/apib/dredd/data/logTransport.json new file mode 100644 index 0000000..e69de29 diff --git a/api/apib/dredd/data/player.json b/api/apib/dredd/data/player.json new file mode 100644 index 0000000..e69de29 diff --git a/api/apib/dredd/data/promotion.json b/api/apib/dredd/data/promotion.json new file mode 100644 index 0000000..e69de29 diff --git a/api/apib/dredd/data/rank.json b/api/apib/dredd/data/rank.json new file mode 100644 index 0000000..e69de29 diff --git a/api/apib/dredd/data/squad.json b/api/apib/dredd/data/squad.json new file mode 100644 index 0000000..e69de29 diff --git a/api/apib/dredd/data/user.json b/api/apib/dredd/data/user.json new file mode 100644 index 0000000..45b6e36 --- /dev/null +++ b/api/apib/dredd/data/user.json @@ -0,0 +1 @@ +{"_id":{"$oid":"5ab68d42f547ed304064e5f7"},"rankLvl":0,"squadId":null,"username":"user1","timestamp":{"$date":"2018-03-24T17:39:14.841Z"},"updatedAt":{"$date":"2018-03-24T17:39:14.841Z"},"__v":0} diff --git a/api/apib/dredd/data/war.json b/api/apib/dredd/data/war.json new file mode 100644 index 0000000..e69de29 diff --git a/api/apib/dredd/populate-data.sh b/api/apib/dredd/populate-data.sh new file mode 100755 index 0000000..0232f00 --- /dev/null +++ b/api/apib/dredd/populate-data.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +########## IMPORT EXPORT/SCRIPT FOR DREDD TEST DATA ############ +###----------------------------------------------------------### +###------------------ HOW TO USE THIS FILE ------------------### +###----------------------------------------------------------### +### 1. start express server with `npm run start-test` ### +### 2. import data by executing script: `./populate-data.sh` ### +### 3. change data in app as you need for tests ### +### 4. export data state with: `./populate-data.sh save` ### +################################################################ + +# execute script in its location folder +cd $(dirname $0) + +# array of available collection names +col=(app_user awarding campaign decoration logBudget logFlag logKill logPoints logRespawn logRevive logTransport player promotion rank squad user war ) + +for i in "${col[@]}" +do + # provide date for restore process, if data import is needed + if [ "$1" == "save" ] + then + echo -e "$(date "+%Y-%m-%dT%T.%3N%z")\tTable: ${i}" + mongoexport --db cc-test --collection $i --out data/${i}.json; + else + mongoimport --db cc-test --collection $i --drop --file data/${i}.json + fi +done diff --git a/api/package.json b/api/package.json index 728bd33..8b040f0 100644 --- a/api/package.json +++ b/api/package.json @@ -14,7 +14,7 @@ "start-test": "DEBUG='cc:*' NODE_ENV=test node server.js", "api:compile-docs": "$(npm bin)/hercule apib/dev-doc.apib -o apib/documentation.apib", "api:publish-docs": "$(npm bin)/aglio --theme-variables slate -i ./apib/documentation.apib -o ../public/api-docs.html", - "api:test-docs": "$(npm bin)/dredd", + "api:test-docs": "npm run api:docs && ./apib/dredd/populate-data.sh && $(npm bin)/dredd", "api:docs": "npm run api:compile-docs && npm run api:publish-docs" }, "dependencies": { diff --git a/api/routes/authenticate.js b/api/routes/authenticate.js index 22040a4..a7754b6 100644 --- a/api/routes/authenticate.js +++ b/api/routes/authenticate.js @@ -78,7 +78,7 @@ authenticate.route('/signup') .post((req, res, next) => { create(req.body) .then(() => { - res.sendStatus(200); + res.sendStatus(201); }) .catch((err) => { res.status(400).send(err); diff --git a/package.json b/package.json index 0eaab0e..59608ba 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,8 @@ "test": "npm test --prefix ./api", "e2e": "npm run deploy-static && concurrently \"npm run start-test --prefix ./api\" \"wait-on -t 60000 http://localhost:3001/ && npm run e2e --prefix ./static\" --success first --kill-others", "start-e2e": "npm run deploy-static && npm run start-test --prefix ./api", - "test-e2e": "npm run e2e --prefix ./static" + "test-e2e": "npm run e2e --prefix ./static", + "test-api": "npm run api:test-docs --prefix ./api" }, "dependencies": {}, "devDependencies": {