Files
P4RS3LT0NGV3/tests/test_codes_ean13.js
2026-06-24 14:12:44 -07:00

45 lines
1.7 KiB
JavaScript

#!/usr/bin/env node
const assert = require('assert');
const path = require('path');
const Ean13Utils = require(path.join(__dirname, '..', 'js', 'utils', 'ean13.js'));
assert.strictEqual(Ean13Utils.checksum('590123412345'), '7');
assert.strictEqual(Ean13Utils.checksum('400638133393'), '1');
const from12 = Ean13Utils.normalize('590123412345');
assert.strictEqual(from12.ok, true);
assert.strictEqual(from12.value, '5901234123457');
const from13 = Ean13Utils.normalize('5901234123457');
assert.strictEqual(from13.ok, true);
assert.strictEqual(from13.value, '5901234123457');
const wrongCheck = Ean13Utils.normalize('5901234123450');
assert.strictEqual(wrongCheck.ok, true);
assert.strictEqual(wrongCheck.value, '5901234123457');
const withSeparators = Ean13Utils.normalize('590-1234-12345');
assert.strictEqual(withSeparators.ok, true);
assert.strictEqual(withSeparators.value, '5901234123457');
const upcA = Ean13Utils.normalize('036000291452');
assert.strictEqual(upcA.ok, true);
assert.strictEqual(upcA.value, '0036000291452');
const tooShort = Ean13Utils.normalize('12345');
assert.strictEqual(tooShort.ok, false);
const tooLong = Ean13Utils.normalize('12345678901234');
assert.strictEqual(tooLong.ok, false);
const EAN13 = require(path.join(__dirname, '..', 'node_modules', 'jsbarcode', 'bin', 'barcodes', 'EAN_UPC', 'EAN13.js')).default;
const defaults = require(path.join(__dirname, '..', 'node_modules', 'jsbarcode', 'bin', 'options', 'defaults.js')).default;
const normalizedWrong = Ean13Utils.normalize('5901234123450');
const encoder = new EAN13(normalizedWrong.value, Object.assign({}, defaults, { displayValue: true }));
assert.strictEqual(encoder.valid(), true, 'Normalized value should pass JsBarcode validation');
console.log('EAN-13 codes tests passed');