Code coverage report for lib/replicate/gen-replication-id.js

Statements: 100% (10 / 10)      Branches: 100% (2 / 2)      Functions: 100% (4 / 4)      Lines: 100% (10 / 10)      Ignored: none     

All files » lib/replicate/ » gen-replication-id.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    1       1 977 977 948 944   944       944 944           1
'use strict';
 
var utils = require('../utils');
 
// TODO: check CouchDB's replication id generation
// Generate a unique id particular to this replication
function genReplicationId(src, target, opts) {
  var filterFun = opts.filter ? opts.filter.toString() : '';
  return src.id().then(function (src_id) {
    return target.id().then(function (target_id) {
      var queryData = src_id + target_id + filterFun +
        JSON.stringify(opts.query_params) + opts.doc_ids;
      return utils.MD5(queryData).then(function (md5) {
        // can't use straight-up md5 alphabet, because
        // the char '/' is interpreted as being for attachments,
        // and + is also not url-safe
        md5 = md5.replace(/\//g, '.').replace(/\+/g, '_');
        return '_local/' + md5;
      });
    });
  });
}
 
module.exports = genReplicationId;