add constants file, update jobs and test
This commit is contained in:
7
src/helpers/constants.js
Normal file
7
src/helpers/constants.js
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
const constants = {
|
||||||
|
JOB_STATUS_PENDING: 0,
|
||||||
|
JOB_STATUS_PROCESSING: 1,
|
||||||
|
JOB_STATUS_COMPLETED: 2,
|
||||||
|
};
|
||||||
|
|
||||||
|
export default constants;
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
import events from 'events';
|
import events from 'events';
|
||||||
import { isPlainObject, omit } from 'lodash';
|
import { isPlainObject, omit } from 'lodash';
|
||||||
|
import { JOB_STATUS_PENDING } from './helpers/constants';
|
||||||
const PENDING = 0;
|
|
||||||
|
|
||||||
export default class Job extends events.EventEmitter {
|
export default class Job extends events.EventEmitter {
|
||||||
constructor(queue, type, payload, options = {}) {
|
constructor(queue, type, payload, options = {}) {
|
||||||
@@ -15,7 +14,7 @@ export default class Job extends events.EventEmitter {
|
|||||||
this.payload = payload;
|
this.payload = payload;
|
||||||
this.timeout = options.timeout || 10000;
|
this.timeout = options.timeout || 10000;
|
||||||
this.options = omit(options, [ 'timeout' ]);
|
this.options = omit(options, [ 'timeout' ]);
|
||||||
this.status = PENDING;
|
this.status = JOB_STATUS_PENDING;
|
||||||
|
|
||||||
this.ready = this.queue.client.index({
|
this.ready = this.queue.client.index({
|
||||||
index: this.queue.index,
|
index: this.queue.index,
|
||||||
@@ -28,7 +27,7 @@ export default class Job extends events.EventEmitter {
|
|||||||
started: null,
|
started: null,
|
||||||
completed: null,
|
completed: null,
|
||||||
attempts: 0,
|
attempts: 0,
|
||||||
status: PENDING,
|
status: this.status,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.then((doc) => {
|
.then((doc) => {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import sinon from 'sinon';
|
|||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import Job from '../../lib/job';
|
import Job from '../../lib/job';
|
||||||
import * as elasticsearchMock from '../fixtures/elasticsearch';
|
import * as elasticsearchMock from '../fixtures/elasticsearch';
|
||||||
|
import { JOB_STATUS_PENDING } from '../../lib/helpers/constants';
|
||||||
|
|
||||||
describe('Job Class', function () {
|
describe('Job Class', function () {
|
||||||
let mockQueue;
|
let mockQueue;
|
||||||
@@ -100,7 +101,7 @@ describe('Job Class', function () {
|
|||||||
it('should set status as pending', function () {
|
it('should set status as pending', function () {
|
||||||
new Job(mockQueue, type, payload, options);
|
new Job(mockQueue, type, payload, options);
|
||||||
const newDoc = validateDoc(mockQueue.client.index);
|
const newDoc = validateDoc(mockQueue.client.index);
|
||||||
expect(newDoc.body).to.have.property('status', PENDING);
|
expect(newDoc.body).to.have.property('status', JOB_STATUS_PENDING);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user