[#61,backend/elasticsearch][m]: create, update and delete support in elasticsearch backend -- fixes #61.

This commit is contained in:
Rufus Pollock
2012-04-22 22:17:47 +01:00
parent d19337eda4
commit 1bf64c5f94
2 changed files with 91 additions and 4 deletions

View File

@@ -107,7 +107,7 @@ var sample_data = {
"took": 2
};
test("ElasticSearch", function() {
test("ElasticSearch query", function() {
var backend = new recline.Backend.ElasticSearch();
var dataset = new recline.Model.Dataset({
url: 'https://localhost:9200/my-es-db/my-es-type'
@@ -149,4 +149,64 @@ test("ElasticSearch", function() {
$.ajax.restore();
});
test("ElasticSearch write", function() {
var backend = new recline.Backend.ElasticSearch();
var dataset = new recline.Model.Dataset({
url: 'http://localhost:9200/recline-test/es-write'
},
backend
);
stop();
var id = parseInt(Math.random()*100000000).toString();
var doc = new recline.Model.Document({
id: id,
title: 'my title'
});
doc.backend = backend;
doc.dataset = dataset;
dataset.currentDocuments.add(doc);
var jqxhr = doc.save();
jqxhr.done(function(data) {
ok(data.ok);
equal(data._id, id);
equal(data._type, 'es-write');
equal(data._version, 1);
// update
doc.set({title: 'new title'});
var jqxhr = doc.save();
jqxhr.done(function(data) {
equal(data._version, 2);
// delete
var jqxhr = doc.destroy();
jqxhr.done(function(data) {
ok(data.ok);
doc = null;
// try to get ...
var olddoc = new recline.Model.Document({id: id});
equal(olddoc.get('title'), null);
olddoc.dataset = dataset;
olddoc.backend = backend;
var jqxhr = olddoc.fetch();
jqxhr.done(function(data) {
// should not be here
ok(false, 'Should have got 404');
}).error(function(error) {
equal(error.status, 404);
equal(typeof olddoc.get('title'), 'undefined');
start();
});
});
});
}).fail(function(error) {
console.log(error);
ok(false, 'Basic request failed - is ElasticSearch running locally on port 9200 (required for this test!)');
start();
});
});
})(this.jQuery);