diff --git a/bin/digest b/bin/digest index 30089ed..b81a8ba 100755 --- a/bin/digest +++ b/bin/digest @@ -3,7 +3,12 @@ var omnivore = require('..'); var path = require('path'); -var filepath = path.resolve(__dirname, process.argv[2]); +if (!process.argv[2]) { + console.log('Please provide the path to geodata'); + process.exit(1); +} + +var filepath = process.argv[2]; omnivore.digest(filepath, function(err, metadata) { if (err) throw err; diff --git a/index.js b/index.js index 35da831..d6fb402 100644 --- a/index.js +++ b/index.js @@ -31,7 +31,7 @@ function digest(file, callback) { */ function getMetadata(file, callback) { var metadata = {}; - //Get filsize from fs.stats + //Get filesize from fs.stats fs.stat(file, function(err, stats) { if (err) return callback(invalid('Error getting stats from file. File might not exist.')); var filesize = stats['size']; diff --git a/test/digest-bin.test.js b/test/digest-bin.test.js new file mode 100644 index 0000000..eb90fab --- /dev/null +++ b/test/digest-bin.test.js @@ -0,0 +1,27 @@ +var tape = require('tape'), + path = require('path'), + fs = require('fs'), + cp = require('child_process'); + testData = path.dirname(require.resolve('mapnik-test-data')), + mapnik_omnivore = require('../index.js'); + +var expectedMetadata_world_merc = JSON.parse(fs.readFileSync(path.resolve('test/fixtures/metadata_world_merc.json'))); + +tape('[digest bin] should return expected metadata', function(assert) { + var file = path.join(testData,'data/shp/world_merc/world_merc.shp'); + var command = path.join(__dirname,"../bin/digest"); + command += " " + file; + cp.exec(command,{}, function(err,stdout,stderr) { + if (err) return done(err); + assert.ok(err === null); + try { + assert.deepEqual(JSON.parse(stdout), expectedMetadata_world_merc); + } catch (err) { + console.log(err); + console.log("Expected mapnik-omnivore metadata has changed. Writing new metadata to file."); + fs.writeFileSync(path.resolve('test/fixtures/metadata_world_merc.json'), JSON.stringify(metadata)); + } + assert.end(); + }); +}); +