feat(config): Mongo Seed 2.0
Adds a more configurable and easily extended MongoDB Seed feature.
Adds additional options at the collection, and collection item level to
allow more control over how each environment config handles the seeding
feature.
Enforces seed order based on the order of the environment's seeding configuration object.
Removes the previous SeedDB config file.
Adds chalk to messages logged to the console for readability.
Refactors the Mongo Seed configuration tests.
Adds Gulp tasks to perform Mongo Seed operations for default, prod, and
test environment configurations. Also, adds accommodating npm scripts.
Upgrades Mongoose to 4.11.1
Updates Mongoose connection implementation to accommodate deprecated
features & connection options.
Also, updates the Gulp Mocha tasks to reflect changes to the Mongoose
implementation.
Fixes tests to get the database from the existing Mongoose singleton.
Derives from changes in https://github.com/meanjs/mean/pull/1816
Closes https://github.com/meanjs/mean/issues/1814
Adds a check for the existence of the seedDB config setting, before
attempting to read config.seedDB.seed setting.
Solves the problem when the seedDB config setting is missing from a
environment config, that causes the application to throw an exception at
startup.
Also, adds the seedDB setting to the Cloud-Foundry env config.
Added an options object to the database seed configuration. Currently,
the only option implemented is `logResults`; set using the seedDB env
config
options (default to "true").
Modified the definition of the env config for seedDB. It's now an
object, with
options.
Setting the logResults option is set to `false` in the core
configuration server test suite.
Also, fixed an issue with how env configs were reading the seedDB
setting from the env variables. Previously, the config was getting set
by
looking for merely the existence of the env variable (MONGO_SEED).
However,
if this setting existed but was set to "false", the seedDB would be
turned on.
Added the SeedDB user details to the env config, and seedDB options.
Added tests to the core server config test suite
should have seedDB configuration set for "regular" user
should have seedDB configuration set for admin user
should seed admin, and "regular" user accounts when NODE_ENV is set to
"test" when they already exist
should ONLY seed admin user account when NODE_ENV is set to "production"
with custom admin
should seed admin, and "regular" user accounts when NODE_ENV is set to
"test" with custom options
should NOT seed admin user account if it already exists when NODE_ENV is
set to "production"
should NOT seed "regular" user account if missing email when NODE_ENV
set to "test"
Added support for environment variables to seedDB env configs; currently
only supporting username & email.
Refactored how the SeedDB rejects were being handled