Skip to content

Commit 1e61ed6

Browse files
committed
tasks: use image-size to check svg file size in export test
1 parent 8828380 commit 1e61ed6

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@
100100
"fuse.js": "^2.2.0",
101101
"glob": "^7.0.0",
102102
"gzip-size": "^3.0.0",
103+
"image-size": "^0.5.0",
103104
"jasmine-core": "^2.4.1",
104105
"karma": "^1.1.0",
105106
"karma-browserify": "^5.0.1",

test/image/export_test.js

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
var fs = require('fs');
2+
var sizeOf = require('image-size');
23

34
var getMockList = require('./assets/get_mock_list');
45
var getRequestOpts = require('./assets/get_image_request_options');
@@ -19,7 +20,11 @@ var FORMATS = ['svg', 'pdf', 'eps'];
1920
// non-exhaustive list of mocks to test
2021
var DEFAULT_LIST = ['0', 'geo_first', 'gl3d_z-range', 'text_export', 'layout_image'];
2122

22-
// minimum satisfactory file size
23+
// return dimensions [in px]
24+
var WIDTH = 700;
25+
var HEIGHT = 500;
26+
27+
// minimum satisfactory file size [in bytes]
2328
var MIN_SIZE = 100;
2429

2530
/**
@@ -72,18 +77,32 @@ function runInBatch(mockList) {
7277
// The tests below determine whether the images are properly
7378
// exported by (only) checking the file size of the generated images.
7479
function testExport(mockName, format, t) {
75-
var requestOpts = getRequestOpts({ mockName: mockName, format: format }),
80+
var specs = {
81+
mockName: mockName,
82+
format: format,
83+
width: WIDTH,
84+
height: HEIGHT
85+
};
86+
87+
var requestOpts = getRequestOpts(specs),
7688
imagePaths = getImagePaths(mockName, format),
7789
saveImageStream = fs.createWriteStream(imagePaths.test);
7890

7991
function checkExport(err) {
8092
if(err) throw err;
8193

82-
fs.stat(imagePaths.test, function(err, stats) {
83-
var didExport = stats.size > MIN_SIZE;
94+
var didExport;
8495

85-
t.ok(didExport, mockName + ' should be properly exported as a ' + format);
86-
});
96+
if(format === 'svg') {
97+
var dims = sizeOf(imagePaths.test);
98+
didExport = (dims.width === WIDTH) && (dims.height === HEIGHT);
99+
}
100+
else {
101+
var stats = fs.statSync(imagePaths.test);
102+
didExport = stats.size > MIN_SIZE;
103+
}
104+
105+
t.ok(didExport, mockName + ' should be properly exported as a ' + format);
87106
}
88107

89108
request(requestOpts)

0 commit comments

Comments
 (0)