p2p-db-osm
Version:
API for p2p-db adding OpenStreetMap data types and querying.
110 lines (99 loc) • 2.38 kB
JavaScript
var test = require('tape')
var createDb = require('./lib/create-db')
test('changeset: get elements', function (t) {
var db = createDb()
var node = {
type: 'node',
changeset: '9',
lat: '-11',
lon: '-10',
timestamp: '2017-10-10T19:55:08.570Z'
}
var way = {
type: 'way',
changeset: '9',
refs: ['bob', 'dole', 'for', 'prez']
}
var relation = {
type: 'relation',
changeset: '9',
tags: {
waterway: 'river'
},
members: [
{
type: 'node',
id: '101'
}
]
}
db.osm.create(node, function (err, elm1) {
t.ifError(err)
db.osm.create(way, function (err, elm2) {
t.ifError(err)
db.osm.create(relation, function (err, elm3) {
t.ifError(err)
db.osm.getChanges('9', function (err, res) {
t.ifError(err)
res = res.map(function (x) { return x.id })
var expected = [elm1.id, elm2.id, elm3.id].sort()
t.equals(res.length, 3)
t.deepEquals(res.sort(), expected)
t.end()
})
})
})
})
})
test('changeset: multiple changesets', function (t) {
var db = createDb()
var node = {
type: 'node',
changeset: '9',
lat: '-11',
lon: '-10',
timestamp: '2017-10-10T19:55:08.570Z'
}
var way = {
type: 'way',
changeset: '9',
refs: ['bob', 'dole', 'for', 'prez']
}
var relation = {
type: 'relation',
changeset: '21',
tags: {
waterway: 'river'
},
members: [
{
type: 'node',
id: '101'
}
]
}
db.osm.create(node, function (err, elm1) {
t.ifError(err)
db.osm.create(way, function (err, elm2) {
t.ifError(err)
db.osm.create(relation, function (err, elm3) {
t.ifError(err)
db.osm.getChanges('9', function (err, res) {
t.ifError(err)
res = res.map(function (x) { return x.id })
var expected = [elm1.id, elm2.id].sort()
t.equals(res.length, 2)
t.deepEquals(res.sort(), expected)
db.osm.getChanges('21', function (err, res) {
t.ifError(err)
res = res.map(function (x) { return x.id })
var expected = [elm3.id]
t.equals(res.length, 1)
t.deepEquals(res.sort(), expected)
t.end()
})
})
})
})
})
})