roschaefer f3c31aed28 Don't expose termsAndConditionsAgreedAt
1. Don't expose `termsAndConditionsAgreedAt` as input param, because of ..why?
2. Make the `termsAndConditionsAgreedVersion` a *required* input param
   for `SignupVerification`. If new users register, they have to confirm
   the terms and conditions. I added another test to check what happens if
   the user sends `null`.
3. Sorry @ogerly for confusing you with my review here:
   https://github.com/Human-Connection/Human-Connection/pull/1556#pullrequestreview-287516516
   What I meant is that we want to simulate a user with no
   `termsAndConditionsAgreedVersion`. But of course the `variables` must
   have it set when you run the mutations. Now we have the
   exclamation mark in the input param, see point 1 ☝️
2019-09-13 01:11:46 +02:00
..
2019-05-21 02:01:00 +02:00
2019-03-20 21:00:59 +01:00
2019-03-20 21:00:59 +01:00
2019-05-18 15:43:26 +02:00
2019-03-20 21:00:59 +01:00
2019-03-20 21:00:59 +01:00
2019-09-11 02:22:08 +02:00
2019-04-15 00:58:30 +02:00
2019-03-20 21:00:59 +01:00

Backend

Installation with Docker

Run the following command to install everything through docker.

The installation takes a bit longer on the first pass or on rebuild ...

$ docker-compose up

# rebuild the containers for a cleanup
$ docker-compose up --build

Wait a little until your backend is up and running at http://localhost:4000/.

Installation without Docker

For the local installation you need a recent version of node (>= v10.12.0).

Install node dependencies with yarn:

$ cd backend
$ yarn install

Copy Environment Variables:

# in backend/
$ cp .env.template .env

Configure the new file according to your needs and your local setup. Make sure a local Neo4J instance is up and running.

Start the backend for development with:

$ yarn run dev

or start the backend in production environment with:

yarn run start

For e-mail delivery, please configure at least SMTP_HOST and SMTP_PORT in your .env configuration file.

Your backend is up and running at http://localhost:4000/ This will start the GraphQL service by default on localhost:4000 where you can issue GraphQL requests or access GraphQL Playground in the browser.

GraphQL Playground

Seed Database

If you want your backend to return anything else than an empty response, you need to seed your database:

{% tabs %} {% tab title="Docker" %}

In another terminal run:

$ docker-compose exec backend yarn run db:seed

To reset the database run:

$ docker-compose exec backend yarn run db:reset
# you could also wipe out your neo4j database and delete all volumes with:
$ docker-compose down -v

{% endtab %}

{% tab title="Without Docker" %} Run:

$ yarn run db:seed

To reset the database run:

$ yarn run db:reset

{% endtab %} {% endtabs %}

Testing

Beware: We have no multiple database setup at the moment. We clean the database after each test, running the tests will wipe out all your data!

{% tabs %} {% tab title="Docker" %}

Run the jest tests:

$ docker-compose exec backend yarn run test:jest

Run the cucumber features:

$ docker-compose exec backend yarn run test:cucumber

{% endtab %}

{% tab title="Without Docker" %}

Run the jest tests:

$ yarn run test:jest

Run the cucumber features:

$ yarn run test:cucumber

{% endtab %} {% endtabs %}