check in create_index module, with tests
This commit is contained in:
39
src/helpers/create_index.js
Normal file
39
src/helpers/create_index.js
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
var schema = {
|
||||||
|
payload: { type: 'object', enabled: false },
|
||||||
|
priority: { type: 'short' },
|
||||||
|
process_timeout: { type: 'long' },
|
||||||
|
process_expiration: { type: 'date' },
|
||||||
|
created_at: { type: 'date' },
|
||||||
|
started_at: { type: 'date' },
|
||||||
|
completed_at: { type: 'date' },
|
||||||
|
attempts: { type: 'short' },
|
||||||
|
max_attempts: { type: 'short' },
|
||||||
|
status: { type: 'string', index: 'not_analyzed' },
|
||||||
|
output_content_type: { type: 'string', index: 'not_analyzed' },
|
||||||
|
output: { type: 'object', enabled: false }
|
||||||
|
};
|
||||||
|
|
||||||
|
export default function createIndex(client, indexName) {
|
||||||
|
const indexBody = {
|
||||||
|
mappings: {
|
||||||
|
_default_: {
|
||||||
|
properties: schema
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return client.indices.exists({
|
||||||
|
index: indexName,
|
||||||
|
})
|
||||||
|
.then((exists) => {
|
||||||
|
if (!exists) {
|
||||||
|
return client.indices.create({
|
||||||
|
ignore: 400,
|
||||||
|
index: indexName,
|
||||||
|
body: indexBody
|
||||||
|
})
|
||||||
|
.then(() => true);
|
||||||
|
}
|
||||||
|
return exists;
|
||||||
|
});
|
||||||
|
}
|
||||||
40
test/src/helpers/create_index.js
Normal file
40
test/src/helpers/create_index.js
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
import expect from 'expect.js';
|
||||||
|
import sinon from 'sinon';
|
||||||
|
import createIndex from '../../../lib/helpers/create_index';
|
||||||
|
import elasticsearchMock from '../../fixtures/elasticsearch';
|
||||||
|
|
||||||
|
describe('Create Index', function () {
|
||||||
|
let client;
|
||||||
|
let createSpy;
|
||||||
|
|
||||||
|
beforeEach(function () {
|
||||||
|
client = new elasticsearchMock.Client();
|
||||||
|
createSpy = sinon.spy(client.indices, 'create');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create the index', function () {
|
||||||
|
const indexName = 'test-index';
|
||||||
|
const result = createIndex(client, indexName);
|
||||||
|
|
||||||
|
return result
|
||||||
|
.then(function () {
|
||||||
|
sinon.assert.callCount(createSpy, 1);
|
||||||
|
expect(createSpy.getCall(0).args[0]).to.have.property('index', indexName);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create the default mappings', function () {
|
||||||
|
const indexName = 'test-index';
|
||||||
|
const result = createIndex(client, indexName);
|
||||||
|
|
||||||
|
return result
|
||||||
|
.then(function () {
|
||||||
|
const payload = createSpy.getCall(0).args[0];
|
||||||
|
sinon.assert.callCount(createSpy, 1);
|
||||||
|
expect(payload).to.have.property('body');
|
||||||
|
expect(payload.body).to.have.property('mappings');
|
||||||
|
expect(payload.body.mappings).to.have.property('_default_');
|
||||||
|
expect(payload.body.mappings._default_).to.have.property('properties');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user