diff --git a/src/job.js b/src/job.js index 49aeac0..6b44cd1 100644 --- a/src/job.js +++ b/src/job.js @@ -20,6 +20,7 @@ export default class Job extends events.EventEmitter { this.index = index; this.jobtype = type; this.payload = payload; + this.created_by = options.created_by || null; this.timeout = options.timeout || 10000; this.maxAttempts = options.max_attempts || 3; this.priority = Math.max(Math.min(options.priority || 10, 20), -20); @@ -37,6 +38,7 @@ export default class Job extends events.EventEmitter { jobtype: this.jobtype, payload: this.payload, priority: this.priority, + created_by: this.created_by, timeout: this.timeout, process_expiration: new Date(0), // use epoch so the job query works created_at: new Date(), @@ -87,6 +89,7 @@ export default class Job extends events.EventEmitter { index: this.index, type: this.doctype, jobtype: this.jobtype, + created_by: this.created_by, payload: this.payload, timeout: this.timeout, max_attempts: this.maxAttempts, diff --git a/test/fixtures/elasticsearch.js b/test/fixtures/elasticsearch.js index 8112c20..c7df356 100644 --- a/test/fixtures/elasticsearch.js +++ b/test/fixtures/elasticsearch.js @@ -32,6 +32,7 @@ Client.prototype.get = function (params = {}, source = {}) { const _source = Object.assign({ jobtype: 'jobtype', + created_by: null, payload: { id: 'sample-job-1', now: 'Mon Apr 25 2016 14:13:04 GMT-0700 (MST)' diff --git a/test/src/job.js b/test/src/job.js index c0d6dea..b11e7f5 100644 --- a/test/src/job.js +++ b/test/src/job.js @@ -14,6 +14,7 @@ const Job = module; const maxPriority = 20; const minPriority = -20; const defaultPriority = 10; +const defaultCreatedBy = null; describe('Job Class', function () { let client; @@ -90,6 +91,24 @@ describe('Job Class', function () { }); }); + + it('should index the created_by value', function () { + const createdBy = 'user_identifier'; + const job = new Job(client, index, type, payload, Object.assign({ created_by: createdBy }, options)); + return job.ready.then(() => { + const newDoc = validateDoc(client.index); + expect(newDoc.body).to.have.property('created_by', createdBy); + }); + }); + + it('should index default created_by value', function () { + const job = new Job(client, index, type, payload, options); + return job.ready.then(() => { + const newDoc = validateDoc(client.index); + expect(newDoc.body).to.have.property('created_by', defaultCreatedBy); + }); + }); + it('should index timeout value from options', function () { const job = new Job(client, index, type, payload, options); return job.ready.then(() => {