serenity-datasource

Common datasource module for serenity applications

Usage no npm install needed!

<script type="module">
  import serenityDatasource from 'https://cdn.skypack.dev/serenity-datasource';
</script>

README

Serenity common datasource module

This module build on top of sequelize ORM. It reads all the sequelize schema definations from a directory and initialize each schema, and exposes them as sequelize Models via a common object.

How to install ?

Install via npm and git

npm install serenity-node-datasource

How to use?

Include the lc1-node-datasource into your application using require

var serenityDatasource = require('serenity-node-datasource');

Instantiate datasource using new operator passing in the congifuration object.

var datasource = new serenityDatasource(config);

Errors during instantiation has to be handled by the applicaiton

Configuration

Configuration object should define datasource configuration inner object with a mandatory properties defined below

  • modelsDirectory: This directory path has to be relative to current process.pwd() path which is currently running. Generally application would be run from the application root directory so in that case this path would be relative to application root.

    NOTE: Path is case sensitive and must not end with slash

  • pgURL: postgresql connection string

  • dbOptions (optional DB options as supported by sequelize) See sequelize docs for more inof

modelsDirectory and pgURL is mandatory and dbOptions is optional

Sample config object

datasource: {
  modelsDirectory: <STRING> <REQUIRED> './api/models',
  pgURL: <STRING> <REQUIRED> 'postgres://postgres@localhost:5432/travis_ci_test',
  dbOptions: <OBJECT> <OPTIONAL> {}
}

Examples

var config = {
    modelsDirectory: './api/models',
    pgURL: 'postgres://postgres@localhost:5432/challengeapi'
};
var serenityDatasource = require('serenity-node-datasource');
var datasource = new serenityDatasource(config);
var Challenge = datasource.Challenge;
// use the Challenge model