screenshotHandlerTest.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. var should = require('chai').should();
  2. var ScreenshotHandler = require('../../lib/screenshotHandler');
  3. var fs = require('fs');
  4. var path = require('path');
  5. var rimraf = require('rimraf');
  6. describe('screenshotHandler', function() {
  7. var imagePath = path.join(__dirname, '../fixtures/logo-large.png');
  8. var screenshot, jimpImage;
  9. it('should open an image and return an jimp object', function(done) {
  10. ScreenshotHandler.openImage(imagePath)
  11. .then(function(image) {
  12. jimpImage = image;
  13. jimpImage.should.be.an('object');
  14. jimpImage.bitmap.width.should.equal(620);
  15. jimpImage.bitmap.height.should.equal(104);
  16. done();
  17. })
  18. .fail(function(err) {
  19. done(err);
  20. });
  21. });
  22. it('should resize an jimp image', function(done) {
  23. ScreenshotHandler.resizeImage(jimpImage, 310)
  24. .then(function(image) {
  25. jimpImage = image;
  26. jimpImage.bitmap.width.should.equal(310);
  27. jimpImage.bitmap.height.should.equal(52);
  28. done();
  29. })
  30. .fail(function(err) {
  31. done(err);
  32. });
  33. });
  34. it('should transform a jimp image into a buffer', function(done) {
  35. ScreenshotHandler.toBuffer(jimpImage)
  36. .then(function(buffer) {
  37. buffer.should.be.an.instanceof(Buffer);
  38. done();
  39. })
  40. .fail(function(err) {
  41. done(err);
  42. });
  43. });
  44. it('should create the tmp folder if it doesn\'t exist', function(done) {
  45. // Delete tmp folder if it exists
  46. rimraf.sync("/some/directory");
  47. // The function we want to test
  48. ScreenshotHandler.createTmpScreenshotFolder()
  49. .then(function(buffer) {
  50. fs.existsSync(path.join(__dirname, '../../tmp')).should.equal(true);
  51. done();
  52. })
  53. .fail(function(err) {
  54. done(err);
  55. });
  56. });
  57. it('should return the tmp folder path', function() {
  58. ScreenshotHandler.getTmpFileRelativePath().should.equal('tmp/temp-screenshot.png');
  59. });
  60. });