JsBarcode.test.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. var assert = require('assert');
  2. var JsBarcode = require('../../bin/JsBarcode.js');
  3. var { createCanvas } = require("canvas");
  4. describe('Encoders', function() {
  5. it('should be able to include the encoders needed', function () {
  6. CODE128 = JsBarcode.getModule("CODE128");
  7. GENERIC = JsBarcode.getModule("GenericBarcode");
  8. });
  9. });
  10. describe('node-canvas generation', function() {
  11. it('should generate normal canvas', function () {
  12. var canvas = createCanvas();
  13. JsBarcode(canvas, "Hello");
  14. });
  15. it('checking width', function () {
  16. var canvas1 = createCanvas();
  17. var canvas2 = createCanvas();
  18. JsBarcode(canvas1, "Hello", {format: "CODE128"});
  19. JsBarcode(canvas2, "Hello", {format: "CODE39"});
  20. assert.notEqual(canvas1.width, canvas2.width);
  21. });
  22. it('should throws errors when suppose to', function () {
  23. var canvas = createCanvas();
  24. assert.throws(function(){JsBarcode(canvas, "Hello", {format: "EAN8"});});
  25. assert.throws(function(){JsBarcode("Hello", "Hello", {format: "DOESNOTEXIST"});});
  26. assert.throws(function(){JsBarcode(123, "Hello", {format: "DOESNOTEXIST"});});
  27. });
  28. it('should use the valid callback correct', function (done) {
  29. var canvas = createCanvas();
  30. JsBarcode(canvas, "Hello", {
  31. format: "CODE128",
  32. valid: function(valid){
  33. if(valid){
  34. done();
  35. }
  36. }
  37. });
  38. });
  39. it('should use false valid callback correct', function (done) {
  40. var canvas = createCanvas();
  41. JsBarcode(canvas, "Hello", {
  42. format: "pharmacode",
  43. valid: function(valid){
  44. if(!valid){
  45. done();
  46. }
  47. }
  48. });
  49. });
  50. it('should create output with same input', function () {
  51. var canvas1 = createCanvas();
  52. var canvas2 = createCanvas();
  53. JsBarcode(canvas1, "Hello", {format: "CODE128"});
  54. JsBarcode(canvas2, "Hello", {format: "CODE128"});
  55. assert.equal(canvas1.toDataURL(), canvas2.toDataURL());
  56. });
  57. it('should set background', function () {
  58. var canvas = createCanvas();
  59. var ctx = canvas.getContext("2d");
  60. JsBarcode(canvas, "Hello", {format: "CODE128", background: "#f00"});
  61. var topLeft = ctx.getImageData(0,0,1,1);
  62. assert.equal(255, topLeft.data[0]);
  63. assert.equal(0, topLeft.data[1]);
  64. assert.equal(0, topLeft.data[2]);
  65. });
  66. });
  67. describe('Text printing', function() {
  68. it('should produce different output when displaying value', function () {
  69. var canvas1 = createCanvas();
  70. var canvas2 = createCanvas();
  71. JsBarcode(canvas1, "Hello", {format: "CODE128", displayValue: false});
  72. JsBarcode(canvas2, "Hello", {format: "CODE128"});
  73. assert.notEqual(canvas1.toDataURL(), canvas2.toDataURL());
  74. });
  75. it('should produce different output when having different textAlign', function () {
  76. var canvas1 = createCanvas();
  77. var canvas2 = createCanvas();
  78. var canvas3 = createCanvas();
  79. JsBarcode(canvas1, "Hello", {format: "CODE128", displayValue: true, textAlign: "center"});
  80. JsBarcode(canvas2, "Hello", {format: "CODE128", displayValue: true, textAlign: "left"});
  81. JsBarcode(canvas3, "Hello", {format: "CODE128", displayValue: true, textAlign: "right"});
  82. assert.notEqual(canvas1.toDataURL(), canvas2.toDataURL());
  83. assert.notEqual(canvas2.toDataURL(), canvas3.toDataURL());
  84. assert.notEqual(canvas1.toDataURL(), canvas3.toDataURL());
  85. });
  86. it('should allow numbers as input', function () {
  87. var canvas = createCanvas();
  88. JsBarcode(canvas, 1234567890128, {format: "EAN13"});
  89. });
  90. });
  91. describe('Extended Arrays', function() {
  92. it('should work with extended arrays', function () {
  93. Array.prototype.test = function(){};
  94. Array.prototype._test = "test";
  95. var canvas = createCanvas();
  96. JsBarcode(canvas, "Hello");
  97. JsBarcode(canvas, "HI", {format: "CODE39"});
  98. });
  99. });
  100. describe('Generic barcode', function() {
  101. it('should not fail generic barcode', function () {
  102. var enc = new GENERIC("1234", {});
  103. assert.equal(enc.valid(), true);
  104. assert.equal(enc.encode().text, "1234");
  105. });
  106. });