it('should ensure folders for an append', function(done){ var digger = Server(); var client = Client(); var warehouse = diggerlevel(db) digger.warehouse(warehouse) client.on('request', digger.reception.bind(digger)); var supplychain = client.connect('/a/b/c/d/e'); var data = client.create('folder').addClass('red').inode('f') supplychain.append(data).ship(function(answers){ warehouse.folders('/a/b/c/d/e/f', function(err, folders){ if(err) throw err folders.length.should.equal(6) folders[0].path.should.equal('/') folders[1].path.should.equal('/a') folders[2].path.should.equal('/a/b') folders[3].path.should.equal('/a/b/c') folders[4].path.should.equal('/a/b/c/d') folders[5].path.should.equal('/a/b/c/d/e') done() }) }) })
module.exports = function(leveldb){ var supplier = diggerlevel(leveldb) var digger = diggerserver() digger.warehouse(supplier) var client = diggerclient(); client.on('request', function(req, res){ digger.reception(req, res) }) return client }
it('should append some simple data', function(done){ var digger = Server(); var client = Client(); digger.warehouse(diggerlevel(db)) client.on('request', digger.reception.bind(digger)); var warehouse = client.connect('/apples'); var data = client.create('folder').addClass('red').inode('/red') var sub1 = client.create('sub').inode('/sub') var sub2 = client.create('sub2').inode('/sub2') sub1.append(sub2) data.append(sub1) var otherdata = client.create('folder').addClass('blue').inode('/blue') data.add(otherdata) warehouse.append(data).ship(function(appended){ appended.models.length.should.equal(2) warehouse('folder.red').ship(function(folder){ folder.tag().should.equal('folder') folder.hasClass('red').should.equal(true) folder.path().should.equal('/apples') folder.count().should.equal(1); done(); }) }) })
it('should append a batch of data', function(done){ var digger = Server(); var client = Client(); digger.warehouse(diggerlevel(db)) client.on('request', digger.reception.bind(digger)); var warehouse = client.connect('/cities'); var data = client.create(require(__dirname + '/fixtures/cities.json')) warehouse.append(data).ship(function(answers){ warehouse('city').ship(function(cities){ cities.count().should.equal(8) done() }) }) })