Code coverage report for upstream/lib/associations/helpers.js

Statements: 91.67% (11 / 12)      Branches: 77.78% (7 / 9)      Functions: 100% (2 / 2)      Lines: 91.67% (11 / 12)     

All files » upstream/lib/associations/ » helpers.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 371   1           143     12 48     12 12                 12     12 12 12            
var Utils = require("./../utils")
 
module.exports = {
 
  addForeignKeyConstraints: function(newAttribute, source, target, options) {
    // FK constraints are opt-in: users must either rset `foreignKeyConstraints`
    // on the association, or request an `onDelete` or `onUpdate` behaviour
 
    if(options.foreignKeyConstraint || options.onDelete || options.onUpdate) {
 
      // Find primary keys: composite keys not supported with this approach
      var primaryKeys = Utils._.filter(Utils._.keys(source.rawAttributes), function(key) {
        return source.rawAttributes[key].primaryKey
      })
 
      Eif (primaryKeys.length === 1) {
        Iif (!!source.options.schema) {
          newAttribute.references = source.daoFactoryManager.sequelize.queryInterface.QueryGenerator.addSchema({
            tableName: source.tableName,
            options: {
              schema: source.options.schema,
              schemaDelimiter: source.options.schemaDelimiter
            }
          })
        } else {
          newAttribute.references = source.tableName
        }
 
        newAttribute.referencesKey = primaryKeys[0]
        newAttribute.onDelete = options.onDelete
        newAttribute.onUpdate = options.onUpdate
      }
    }
  }
 
}