@futpib/fpcalc
Version:
Calculate AcoustID audio fingerprint
81 lines (66 loc) • 1.79 kB
JavaScript
/* jshint node:true */
;
var path = require("path"),
fs = require("fs"),
test = require("tape"),
fpcalc = require("../");
var TEST_FILE = path.join(__dirname, "test.mp3");
test("get audio fingerprint", function(t) {
fpcalc(TEST_FILE, function(err, result) {
t.ifError(err);
t.ok(result.file);
t.ok(result.duration);
t.ok(result.fingerprint);
t.end();
});
});
test("bad file path", function(t) {
fpcalc("bad/path", function(err) {
t.ok(err);
t.end();
});
});
test("no file path", function(t) {
fpcalc(undefined, function(err) {
t.ok(err);
t.end();
});
});
test("non-audio file", function(t) {
fpcalc(path.join(__dirname, "/../index.js"), function(err) {
t.ok(err);
t.end();
});
});
test("fingerprint output", function(t) {
t.plan(5);
fpcalc(TEST_FILE, {raw: true}, function(err, result) {
t.ok(result.fingerprint);
t.ok(Buffer.isBuffer(result.fingerprint));
});
fpcalc(TEST_FILE, function(err, result) {
t.ok(result.fingerprint);
t.equal(typeof result.fingerprint, "string");
t.ok(/^[-_a-zA-Z0-9]+$/.test(result.fingerprint));
});
});
test("stream input", function(t) {
t.plan(5);
fpcalc(fs.createReadStream(TEST_FILE), {raw: true}, function(err, result) {
t.ok(result.fingerprint);
t.ok(Buffer.isBuffer(result.fingerprint));
});
fpcalc(fs.createReadStream(TEST_FILE), function(err, result) {
t.ok(result.fingerprint);
t.equal(typeof result.fingerprint, "string");
t.ok(/^[-_a-zA-Z0-9]+$/.test(result.fingerprint));
});
});
test("stream fignerprint is the same as file fingerprint", function(t) {
t.plan(1);
fpcalc(fs.createReadStream(TEST_FILE), function(err, streamResult) {
fpcalc(TEST_FILE, function(err, fileResult) {
t.equal(fileResult.fingerprint, streamResult.fingerprint);
});
});
});