require('sqlite3').verbose(); var fs = require('fs'); var tape = require('tape'); var MBTiles = require('..'); var fixtures = { plain_1: __dirname + '/fixtures/plain_1.mbtiles', empty: __dirname + '/fixtures/empty.mbtiles' }; try { fs.unlinkSync(fixtures.empty); } catch (err) {} tape('get metadata', function(assert) { new MBTiles(fixtures.plain_1, function(err, mbtiles) { assert.ifError(err); mbtiles.getInfo(function(err, data) { assert.ifError(err); assert.deepEqual({ name: 'plain_1', description: 'demo description', version: '1.0.3', scheme: 'tms', minzoom: 0, maxzoom: 4, formatter: null, center: [ 0, 7.500000001278025, 2 ], bounds: [ -179.9999999749438, -69.99999999526695, 179.9999999749438, 84.99999999782301 ], // Test that json data is merged in. level1: { level2: 'property' }, // These aren't part of TileJSON, but exist in an MBTiles file. filesize: 561152, type: 'baselayer', id: 'plain_1', basename: 'plain_1.mbtiles' }, data); assert.end(); }); }); }); tape('get/put metadata from empty file', function(assert) { var info = { version: '1.0.0', level1: { level2: 'property' }, custom: [ 'custom list' ] }; new MBTiles(fixtures.empty, function(err, mbtiles) { assert.ifError(err); mbtiles.getInfo(function(err, data) { assert.ifError(err); assert.deepEqual({ basename: "empty.mbtiles", filesize: 0, id: "empty", scheme: "tms" }, data); mbtiles.putInfo(info, function(err) { assert.ok(err); assert.equal(err.message, 'MBTiles not in write mode'); mbtiles.startWriting(function(err) { assert.ifError(err); mbtiles.putInfo(info, function(err) { assert.ifError(err); mbtiles.stopWriting(function(err) { assert.ifError(err); mbtiles.getInfo(function(err, data) { assert.ifError(err); assert.deepEqual({ basename: "empty.mbtiles", filesize: 0, id: "empty", scheme: "tms", version: "1.0.0", level1: { level2: "property" }, custom: [ 'custom list' ] }, data); assert.end(); }); }); }); }); }); }); }); });