test.js 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. var base64ToImage = require('../index');
  2. var should = require('should');
  3. var fs = require('fs');
  4. describe('Base64 to image', function () {
  5. it('should throw an error when base64 argument is null', function (done) {
  6. var base64Info = function(){
  7. base64ToImage(null, '/opt', {'fileName':'test'});
  8. };
  9. base64Info.should.throw('Missing mandatory arguments base64 string and/or path string');
  10. done();
  11. });
  12. it('should throw an error when path argument is null', function (done) {
  13. var base64Info = function(){
  14. base64ToImage(null, null, {'fileName':'test'});
  15. };
  16. base64Info.should.throw('Missing mandatory arguments base64 string and/or path string');
  17. done();
  18. });
  19. it('should throw an error when an invalid base64 argument is passed', function (done) {
  20. var base64Info = function(){
  21. base64ToImage('invalid string', '/opt', {'fileName':'test'});
  22. };
  23. base64Info.should.throw('Invalid base64 string');
  24. done();
  25. });
  26. it('should decode base64 and save image to disk', function (done) {
  27. var base64Str = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAADsElEQVQ4Eb3BfUzUdRzA8c/9ft/fwYWWgLWdIE6Gcy4lBmLIfAofFhpsSFQWwSxWmthEkocciKQmpweesAHJk5gIRCYXB17xJKDmUNOpm1qtiazWfF6TNNB3ra3NOWv1j6+XPB6nxV9uSKwa8Eq39ocWyhnJk33ysvwqz8h/Nii+Mijb5bZ2xXojlKS+FuKOVRH441ziD5QT0Bc5+GxbyjJJE4v8k10iU5onaxlBTaZ+vwHB59Y4lh1xUdAMQVcXMubOeCIGk8lqP8uH9T+zpKKmx9LoHSCP4hRVeDJYxzFXpyVEozpMYU8wKM5IYdLlyZhGBDXkQfBADPbW29g+g5WOn0rlYTNFLP2iLpTGa7j8FS2TNDpNih7R6fcU4kuErW9ZiPohDUfXNUrcUHQANu2GVNu1BHnQeqUiDyj9nj1Cp2+sTqtVJ3O1ibFHhOm1QlaKsPeNOWw4dZFy12/Uz45nt/04didkV98/JXl4yt+KlMrbZdb5wmTQFqTR9qSBI1ojar+GuiPUhWg4txyi4jDYd35Dp4cne8rPY3fBtqyuEee4aZnlIob8yeQW1V0VqajzVzRM0WgZpdGtG3R5CwvqrRweH0RF003KeqBo+RZ6Jk6l1H2P7Zs6aFUG55XOUcMIlUQRa6+mXS+bFk6bj5m6QKEpbD65H/ezeeMeMtfO5NCMV9h5EIrdUBE8j/bYVBwdUBwchcs3gBpPLy4oNUvylczs9npqqGRiOF+P0fjcV1EVmcz7ZWfIbBjGOTWahhWf4HCBvfoK+0d705TvxlZ5iU8to6iMTqPUwzL0vYcESZ6IeU3Ea/PWhcfdrQ2cjtNspl2ERh/FiqxYWq3+lHzQwmp3P2tzCuj0Hkdl4z02r6qh2dePouh0GkXOImKWv+ShLUy0976eupf1r26hInwprX5TyXk7iqMiHDaNwjbLzLuLhfrgMUS3Z5C1eCmuCWGUBT5Ph8gOedDs2MwlcSm7WJ7TS+q278guGqBg4zlqYtPZG/YE1TM0yv11LonBVz5C3gSh2zyaNmUMHzOM6fKwBQkf2RLTnKzKP8m6wstsKBvhnS/PYRrWsVwXwttMpGXrFCUpXnAoTpg9R04bhkMebZ6KSSzOT04/+PuagotkOX4ht2yIud/mYBl+GkEQBMGM182ArY1+fiHHRQz5Ny8ll8xPWuvev3LDiVvptkFyC+/yXFcScl3uq6sebv/Ts14UwST/R8ybtROT0zoWLcrY/p7a55kvHTJHREzyOPwBUd786O/7n3YAAAAASUVORK5CYII=';
  28. var path = __dirname + '/';
  29. var optionalObj = {'fileName':'image_test'};
  30. var fileSaved = false;
  31. var imageInfo = base64ToImage(base64Str, path, optionalObj);
  32. if (fs.existsSync('test/image_test.png')) {
  33. fileSaved = true;
  34. }
  35. fileSaved.should.true;
  36. imageInfo.should.have.property('imageType', 'png');
  37. imageInfo.should.have.property('fileName', 'image_test.png');
  38. done();
  39. });
  40. });