p2p-db-osm
Version:
API for p2p-db adding OpenStreetMap data types and querying.
86 lines (73 loc) • 1.61 kB
JavaScript
var test = require('tape')
var createDb = require('./lib/create-db')
test('create nodes', function (t) {
var db = createDb()
t.plan(1)
var nodes = [
{
type: 'node',
changeset: '9',
lat: '-11',
lon: '-10',
timestamp: '2017-10-10T19:55:08.570Z'
},
{
type: 'node',
changeset: '9',
lat: '-11',
lon: '-10'
}
]
var batch = nodes.map(function (node) {
return {
type: 'put',
value: node
}
})
db.osm.batch(batch, function (err) {
t.error(err)
// TODO: do a hyperdb#createHistoryStream to check for entries
})
})
test('create + update nodes', function (t) {
var db = createDb()
t.plan(7)
var nodes = [
{
type: 'node',
changeset: '9',
lat: '-11',
lon: '-10',
timestamp: '2017-10-10T19:55:08.570Z'
},
{
type: 'node',
changeset: '9',
lat: '-11',
lon: '-10'
}
]
db.osm.create(nodes[0], function (err, node) {
t.error(err)
nodes[0].lat = '75'
var batch = nodes.map(function (elm, idx) {
return {
type: 'put',
id: idx === 0 ? node.id : undefined,
value: elm
}
})
db.osm.batch(batch, function (err) {
t.error(err)
db.osm.get(node.id, function (err, elements) {
t.error(err)
t.equals(elements.length, 1)
var element = elements[0]
t.equals(element.id, node.id)
t.ok(element.version)
t.equals(element.lat, '75')
})
// TODO: do a hyperdb#createHistoryStream to check for entries
})
})
})