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
Idea proposed by @sparshy #1204
Suggestions, rules and tests from Trustroots @simison
Added validations on user server model
Added client side validations
Added relevant tests on user server tests
Added relevant tests on user e2e tests
Fixes#1204
* replacing file-stream-rotator with a better logging mechanism using winston which can be extended later for other use cases and integrations
* refactoring logger mechanism, accomodating for tests and environment variable configurations
* only enabling morgan logger if config.log.format option was defined, and disabling the app.log file transport option for the test environment
* disabling all kind of logging when in test enviroment
Adds the log options, and format to the Morgan middleware in the Express
configuration.
These options are defined in the environment configurations.
The implementation derived from https://github.com/meanjs/mean/pull/254
by @lirantal, which somehow got overlooked when merging 0.4.0 into
master.
Added tests for the Logger configuration.
Added the log settings to the Test env config.
Added environment variables for the log settings in the Test &
Production env configs.
Moved the Morgan Express middleware outside of the NODE_ENV ===
'development' check. Morgan should be used in all environments, and use
the settings set in each env config.
Changed the wording of the Stream option comments in the env configs.
Added Rotating Logs functionality, and refactored the log Stream
options. Added a new npm package, FileStreamRotator, for use with
Morgan's rotating logs functionality.
Also, refactored the log configuration tests to be more maintainable.
Added more tests, and refactored test suite to use mock-fs.
Added the timeout option to the Mocha grunt task; set to 10000.
Removed the individual test suite timeouts, for all server tests.
Also, added global timeout for Mocha gulp task.
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
Added a timeout of 10000 ms to each server test file. This is an attempt
to solve the timeout issues that we're experiencing with the Mocha
tests. Especially, this is hoping to address the build fails that are
caused by such timeouts.
Issue is described in https://github.com/meanjs/mean/issues/955