mocha docker postgres
mocha testhelper for integration tests with postgres using docker.
Usage:
; // will patch the mocha Context prototype var someModule = ; ;
A call to this.dockerPostgres()
will start a docker container (unless we already
have one that fits) , and will set the value this.conString to the postgres url
needed to connect to that database.
The method returns a promise, and that promise will not resolve until the postgres database is ready to accept connections.
You get a completely fresh database after each call to this.dockerPostgres
so
you will need to run your migrations in a before hook after that.
If you want to have a completely fresh database for each test, you can make the
before
hook into a beforeEach
. It will reuse the same postgres container,
but create new databases for each invocation of the method - which makes it a lot
less time consuming.
On my developer work station it takes about 4 seconds for postgres to start up, and that is only done once per test run.