/**
 * @preserve libheif.js HEIF decoder
 * (c)2017 struktur AG, http://www.struktur.de, opensource@struktur.de
 *
 * This file is part of libheif
 * https://github.com/strukturag/libheif
 *
 * libheif is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation, either version 3 of
 * the License, or (at your option) any later version.
 *
 * libheif is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with libheif.  If not, see <http://www.gnu.org/licenses/>.
 */

const assert = require('assert');
const fs = require('fs');

console.log('Running libheif JavaScript tests ...');

const libheif = require('../libheif.js')();

// Test Embind API.
console.log('Loaded libheif.js', libheif.heif_get_version());

// Test internal C API.
assert(libheif.heif_get_version_number_major() === 1, 'libheif major version should be 1')

// Test enum values.
assert(libheif.heif_error_Ok.value === 0, 'heif_error_Ok should be 0')

// Decode the example file and make sure at least one image is returned.
const data = fs.readFileSync('examples/example.heic');
const decoder = new libheif.HeifDecoder();
const image_data = decoder.decode(data);

console.log('Loaded images:', image_data.length);
assert(image_data.length > 0, "Should have loaded images")